Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:40:02 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "EXF_OPTIONS.h"
7f861c1808 Patr*0002 
51d1182012 Jean*0003 C--  File exf_swapffields.F: Routines to swap 2 fields
                0004 C--   Contents
                0005 C--   o EXF_SWAPFFIELDS
                0006 C--   o EXF_SWAPFFIELDS_3D
                0007 C--   o EXF_SWAPFFIELDS_XZ
                0008 C--   o EXF_SWAPFFIELDS_YZ
7f861c1808 Patr*0009 
51d1182012 Jean*0010 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7f861c1808 Patr*0011 
51d1182012 Jean*0012       SUBROUTINE EXF_SWAPFFIELDS(
                0013      O                            ffld0,
                0014      U                            ffld1,
                0015      I                            myThid )
                0016 
                0017 C     ==================================================================
                0018 C     SUBROUTINE exf_SwapFFields
                0019 C     ==================================================================
                0020 C
                0021 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0022 C
                0023 C     started: Christian Eckert eckert@mit.edu  30-Jun-1999
                0024 C
                0025 C     changed: Christian Eckert eckert@mit.edu  14-Jan-2000
                0026 C
                0027 C              - Restructured the code in order to create a package
                0028 C                for the MITgcmUV.
                0029 C
                0030 C              Christian Eckert eckert@mit.edu  12-Feb-2000
                0031 C
                0032 C              - Changed Routine names (package prefix: exf_)
                0033 C
                0034 C     ==================================================================
                0035 C     SUBROUTINE exf_SwapFFields
                0036 C     ==================================================================
                0037 
                0038       IMPLICIT NONE
                0039 
                0040 C     == global variables ==
7f861c1808 Patr*0041 #include "EEPARAMS.h"
                0042 #include "SIZE.h"
                0043 
51d1182012 Jean*0044 C     == routine arguments ==
                0045       _RL ffld0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0046       _RL ffld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0047       INTEGER myThid
7f861c1808 Patr*0048 
51d1182012 Jean*0049 C     == local variables ==
                0050       INTEGER bi, bj
                0051       INTEGER i, j
7f861c1808 Patr*0052 
51d1182012 Jean*0053 C     == end of interface ==
7f861c1808 Patr*0054 
51d1182012 Jean*0055       DO bj=myByLo(myThid),myByHi(myThid)
                0056         DO bi=myBxLo(myThid),myBxHi(myThid)
                0057           DO j = 1,sNy
                0058             DO i = 1,sNx
7f861c1808 Patr*0059               ffld0(i,j,bi,bj) = ffld1(i,j,bi,bj)
                0060               ffld1(i,j,bi,bj) = 0. _d 0
51d1182012 Jean*0061             ENDDO
                0062           ENDDO
                0063         ENDDO
                0064       ENDDO
7f861c1808 Patr*0065 
51d1182012 Jean*0066       RETURN
                0067       END
7f861c1808 Patr*0068 
51d1182012 Jean*0069 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
de416ebcde Patr*0070 
51d1182012 Jean*0071       SUBROUTINE EXF_SWAPFFIELDS_3D(
                0072      O                            ffld0,
                0073      U                            ffld1,
                0074      I                            nNz, myThid )
de416ebcde Patr*0075 
51d1182012 Jean*0076 C     ==================================================================
                0077 C     SUBROUTINE exf_SwapFFields_3d
                0078 C     ==================================================================
                0079 C
                0080 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0081 C
                0082 C     ==================================================================
                0083 C     SUBROUTINE exf_SwapFFields
                0084 C     ==================================================================
de416ebcde Patr*0085 
51d1182012 Jean*0086       IMPLICIT NONE
de416ebcde Patr*0087 
51d1182012 Jean*0088 C     == global variables ==
de416ebcde Patr*0089 #include "EEPARAMS.h"
                0090 #include "SIZE.h"
                0091 
51d1182012 Jean*0092 C     == routine arguments ==
                0093 C     nNz   :: number of levels to process
                0094       INTEGER nNz
                0095       _RL ffld0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
                0096       _RL ffld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
                0097       INTEGER myThid
de416ebcde Patr*0098 
51d1182012 Jean*0099 C     == local variables ==
                0100       INTEGER bi, bj
                0101       INTEGER i, j, k
de416ebcde Patr*0102 
51d1182012 Jean*0103 C     == end of interface ==
de416ebcde Patr*0104 
51d1182012 Jean*0105       DO bj=myByLo(myThid),myByHi(myThid)
                0106         DO bi=myBxLo(myThid),myBxHi(myThid)
                0107           DO k = 1,nNz
                0108             DO j = 1,sNy
                0109               DO i = 1,sNx
de416ebcde Patr*0110                 ffld0(i,j,k,bi,bj) = ffld1(i,j,k,bi,bj)
                0111                 ffld1(i,j,k,bi,bj) = 0. _d 0
51d1182012 Jean*0112               ENDDO
                0113             ENDDO
                0114           ENDDO
                0115         ENDDO
                0116       ENDDO
de416ebcde Patr*0117 
51d1182012 Jean*0118       RETURN
                0119       END
7f861c1808 Patr*0120 
51d1182012 Jean*0121 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7f861c1808 Patr*0122 
51d1182012 Jean*0123       SUBROUTINE EXF_SWAPFFIELDS_XZ(
                0124      O                               ffld0,
                0125      U                               ffld1,
                0126      I                               nNz, myThid )
                0127 
                0128 C     ==================================================================
                0129 C     SUBROUTINE exf_swapffields_xz
                0130 C     ==================================================================
                0131 C
                0132 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0133 C
                0134 C     started: heimbach@mit.edu 01-May-2001
                0135 C
                0136 C     ==================================================================
                0137 C     SUBROUTINE exf_swapffields_xz
                0138 C     ==================================================================
                0139 
                0140       IMPLICIT NONE
                0141 
                0142 C     == global variables ==
7f861c1808 Patr*0143 #include "EEPARAMS.h"
                0144 #include "SIZE.h"
                0145 
51d1182012 Jean*0146 C     == routine arguments ==
                0147 C     nNz   :: number of levels to process
                0148       INTEGER nNz
                0149       _RL ffld0(1-OLx:sNx+OLx,nNz,nSx,nSy)
                0150       _RL ffld1(1-OLx:sNx+OLx,nNz,nSx,nSy)
                0151       INTEGER myThid
7f861c1808 Patr*0152 
51d1182012 Jean*0153 C     == local variables ==
                0154       INTEGER bi, bj
                0155       INTEGER i, k
7f861c1808 Patr*0156 
51d1182012 Jean*0157 C     == end of interface ==
7f861c1808 Patr*0158 
51d1182012 Jean*0159       DO bj=myByLo(myThid),myByHi(myThid)
                0160         DO bi=myBxLo(myThid),myBxHi(myThid)
                0161           DO k = 1,nNz
                0162             DO i = 1,sNx
7f861c1808 Patr*0163               ffld0(i,k,bi,bj) = ffld1(i,k,bi,bj)
                0164               ffld1(i,k,bi,bj) = 0. _d 0
51d1182012 Jean*0165             ENDDO
                0166           ENDDO
                0167         ENDDO
                0168       ENDDO
7f861c1808 Patr*0169 
51d1182012 Jean*0170       RETURN
                0171       END
7f861c1808 Patr*0172 
51d1182012 Jean*0173 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7f861c1808 Patr*0174 
51d1182012 Jean*0175       SUBROUTINE EXF_SWAPFFIELDS_YZ(
                0176      O                               ffld0,
                0177      U                               ffld1,
                0178      I                               nNz, myThid )
                0179 
                0180 C     ==================================================================
                0181 C     SUBROUTINE exf_swapffields_yz
                0182 C     ==================================================================
                0183 C
                0184 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0185 C
                0186 C     started: heimbach@mit.edu 01-May-2001
                0187 C
                0188 C     ==================================================================
                0189 C     SUBROUTINE exf_swapffields_yz
                0190 C     ==================================================================
                0191 
                0192       IMPLICIT NONE
                0193 
                0194 C     == global variables ==
7f861c1808 Patr*0195 #include "EEPARAMS.h"
                0196 #include "SIZE.h"
                0197 
51d1182012 Jean*0198 C     == routine arguments ==
                0199 C     nNz   :: number of levels to process
                0200       INTEGER nNz
                0201       _RL ffld0(1-OLy:sNy+OLy,nNz,nSx,nSy)
                0202       _RL ffld1(1-OLy:sNy+OLy,nNz,nSx,nSy)
                0203       INTEGER myThid
7f861c1808 Patr*0204 
51d1182012 Jean*0205 C     == local variables ==
                0206       INTEGER bi, bj
                0207       INTEGER j, k
7f861c1808 Patr*0208 
51d1182012 Jean*0209 C     == end of interface ==
7f861c1808 Patr*0210 
51d1182012 Jean*0211       DO bj=myByLo(myThid),myByHi(myThid)
                0212         DO bi=myBxLo(myThid),myBxHi(myThid)
                0213           DO k = 1,nNz
                0214             DO j = 1,sNy
7f861c1808 Patr*0215               ffld0(j,k,bi,bj) = ffld1(j,k,bi,bj)
                0216               ffld1(j,k,bi,bj) = 0. _d 0
51d1182012 Jean*0217             ENDDO
                0218           ENDDO
                0219         ENDDO
                0220       ENDDO
fe50289ca9 Dimi*0221 
51d1182012 Jean*0222       RETURN
                0223       END