Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:38:51 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
f1e33a6eed Gael*0001 #include "CTRL_OPTIONS.h"
                0002 
                0003 C--  File CTRL_SWAPFFIELDS.F: Routines to swap 2 fields
                0004 C--   Contents
                0005 C--   o CTRL_SWAPFFIELDS
                0006 C--   o CTRL_SWAPFFIELDS_3D
                0007 C--   o CTRL_SWAPFFIELDS_XZ
                0008 C--   o CTRL_SWAPFFIELDS_YZ
                0009 
                0010 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0011 
                0012       SUBROUTINE CTRL_SWAPFFIELDS(
                0013      O                            ffld0,
                0014      U                            ffld1,
                0015      I                            myThid )
                0016 
                0017 C     ==================================================================
                0018 C     SUBROUTINE CTRL_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 CTRL_SWAPFFIELDS
                0036 C     ==================================================================
                0037 
                0038       IMPLICIT NONE
                0039 
                0040 C     == global variables ==
                0041 #include "EEPARAMS.h"
                0042 #include "SIZE.h"
                0043 
                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
                0048 
                0049 C     == local variables ==
                0050       INTEGER bi, bj
                0051       INTEGER i, j
                0052 
                0053 C     == end of interface ==
                0054 
                0055       DO bj=myByLo(myThid),myByHi(myThid)
                0056         DO bi=myBxLo(myThid),myBxHi(myThid)
                0057           DO j = 1,sNy
                0058             DO i = 1,sNx
                0059               ffld0(i,j,bi,bj) = ffld1(i,j,bi,bj)
c7fe4a4990 Dani*0060             ENDDO
                0061           ENDDO
                0062         ENDDO
                0063       ENDDO
                0064 
                0065       DO bj=myByLo(myThid),myByHi(myThid)
                0066         DO bi=myBxLo(myThid),myBxHi(myThid)
                0067           DO j = 1,sNy
                0068             DO i = 1,sNx
f1e33a6eed Gael*0069               ffld1(i,j,bi,bj) = 0. _d 0
                0070             ENDDO
                0071           ENDDO
                0072         ENDDO
                0073       ENDDO
                0074 
                0075       RETURN
                0076       END
                0077 
                0078 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0079 
                0080       SUBROUTINE CTRL_SWAPFFIELDS_3D(
                0081      O                            ffld0,
                0082      U                            ffld1,
                0083      I                            nNz, myThid )
                0084 
                0085 C     ==================================================================
                0086 C     SUBROUTINE CTRL_SWAPFFIELDS_3d
                0087 C     ==================================================================
                0088 C
                0089 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0090 C
                0091 C     ==================================================================
                0092 C     SUBROUTINE CTRL_SWAPFFIELDS
                0093 C     ==================================================================
                0094 
                0095       IMPLICIT NONE
                0096 
                0097 C     == global variables ==
                0098 #include "EEPARAMS.h"
                0099 #include "SIZE.h"
                0100 
                0101 C     == routine arguments ==
                0102 C     nNz   :: number of levels to process
                0103       INTEGER nNz
                0104       _RL ffld0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
                0105       _RL ffld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
                0106       INTEGER myThid
                0107 
                0108 C     == local variables ==
                0109       INTEGER bi, bj
                0110       INTEGER i, j, k
                0111 
                0112 C     == end of interface ==
                0113 
                0114       DO bj=myByLo(myThid),myByHi(myThid)
                0115         DO bi=myBxLo(myThid),myBxHi(myThid)
                0116           DO k = 1,nNz
                0117             DO j = 1,sNy
                0118               DO i = 1,sNx
                0119                 ffld0(i,j,k,bi,bj) = ffld1(i,j,k,bi,bj)
                0120                 ffld1(i,j,k,bi,bj) = 0. _d 0
                0121               ENDDO
                0122             ENDDO
                0123           ENDDO
                0124         ENDDO
                0125       ENDDO
                0126 
                0127       RETURN
                0128       END
                0129 
                0130 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0131 
                0132       SUBROUTINE CTRL_SWAPFFIELDS_XZ(
                0133      O                               ffld0,
                0134      U                               ffld1,
                0135      I                               nNz, myThid )
                0136 
                0137 C     ==================================================================
                0138 C     SUBROUTINE CTRL_SWAPFFIELDS_xz
                0139 C     ==================================================================
                0140 C
                0141 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0142 C
                0143 C     started: heimbach@mit.edu 01-May-2001
                0144 C
                0145 C     ==================================================================
                0146 C     SUBROUTINE CTRL_SWAPFFIELDS_xz
                0147 C     ==================================================================
                0148 
                0149       IMPLICIT NONE
                0150 
                0151 C     == global variables ==
                0152 #include "EEPARAMS.h"
                0153 #include "SIZE.h"
                0154 
                0155 C     == routine arguments ==
                0156 C     nNz   :: number of levels to process
                0157       INTEGER nNz
                0158       _RL ffld0(1-OLx:sNx+OLx,nNz,nSx,nSy)
                0159       _RL ffld1(1-OLx:sNx+OLx,nNz,nSx,nSy)
                0160       INTEGER myThid
                0161 
                0162 C     == local variables ==
                0163       INTEGER bi, bj
                0164       INTEGER i, k
                0165 
                0166 C     == end of interface ==
                0167 
                0168       DO bj=myByLo(myThid),myByHi(myThid)
                0169         DO bi=myBxLo(myThid),myBxHi(myThid)
                0170           DO k = 1,nNz
                0171             DO i = 1,sNx
                0172               ffld0(i,k,bi,bj) = ffld1(i,k,bi,bj)
                0173               ffld1(i,k,bi,bj) = 0. _d 0
                0174             ENDDO
                0175           ENDDO
                0176         ENDDO
                0177       ENDDO
                0178 
                0179       RETURN
                0180       END
                0181 
                0182 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0183 
                0184       SUBROUTINE CTRL_SWAPFFIELDS_YZ(
                0185      O                               ffld0,
                0186      U                               ffld1,
                0187      I                               nNz, myThid )
                0188 
                0189 C     ==================================================================
                0190 C     SUBROUTINE CTRL_SWAPFFIELDS_yz
                0191 C     ==================================================================
                0192 C
                0193 C     o Copy a forcing field ffld1 to ffld0 and set ffld0 to zero.
                0194 C
                0195 C     started: heimbach@mit.edu 01-May-2001
                0196 C
                0197 C     ==================================================================
                0198 C     SUBROUTINE CTRL_SWAPFFIELDS_yz
                0199 C     ==================================================================
                0200 
                0201       IMPLICIT NONE
                0202 
                0203 C     == global variables ==
                0204 #include "EEPARAMS.h"
                0205 #include "SIZE.h"
                0206 
                0207 C     == routine arguments ==
                0208 C     nNz   :: number of levels to process
                0209       INTEGER nNz
                0210       _RL ffld0(1-OLy:sNy+OLy,nNz,nSx,nSy)
                0211       _RL ffld1(1-OLy:sNy+OLy,nNz,nSx,nSy)
                0212       INTEGER myThid
                0213 
                0214 C     == local variables ==
                0215       INTEGER bi, bj
                0216       INTEGER j, k
                0217 
                0218 C     == end of interface ==
                0219 
                0220       DO bj=myByLo(myThid),myByHi(myThid)
                0221         DO bi=myBxLo(myThid),myBxHi(myThid)
                0222           DO k = 1,nNz
                0223             DO j = 1,sNy
                0224               ffld0(j,k,bi,bj) = ffld1(j,k,bi,bj)
                0225               ffld1(j,k,bi,bj) = 0. _d 0
                0226             ENDDO
                0227           ENDDO
                0228         ENDDO
                0229       ENDDO
                0230 
                0231       RETURN
                0232       END