Back to home page

MITgcm

 
 

    


File indexing completed on 2023-11-05 05:10:16 UTC

view on githubraw file Latest commit 65754df4 on 2023-11-04 17:55:24 UTC
7bfe6112e8 Jean*0001 #include "CTRL_OPTIONS.h"
b4daa24319 Shre*0002 #ifdef ALLOW_TAPENADE
                0003 # ifdef ALLOW_GMREDI
                0004 #  include "GMREDI_OPTIONS.h"
                0005 # endif
                0006 #endif /* ALLOW_TAPENADE */
042be14492 Patr*0007 
11c3150c71 Mart*0008 CBOP
                0009 C     !ROUTINE: CTRL_INIT_VARIABLES
                0010 C     !INTERFACE:
                0011       SUBROUTINE CTRL_INIT_VARIABLES( myThid )
                0012 C     !DESCRIPTION: \bv
042be14492 Patr*0013 c     ==================================================================
11c3150c71 Mart*0014 c     SUBROUTINE CTRL_INIT_VARIABLES
042be14492 Patr*0015 c     ==================================================================
                0016 c
                0017 c     o Set parts of the vector of control variables and initialize the
                0018 c       rest to zero.
                0019 c
                0020 c     started: heimbach@mit.edu 25-Mar-2002
                0021 c
                0022 c     ==================================================================
11c3150c71 Mart*0023 c     SUBROUTINE CTRL_INIT_VARIABLES
042be14492 Patr*0024 c     ==================================================================
11c3150c71 Mart*0025 C     \ev
                0026 C     !USES:
                0027       IMPLICIT NONE
                0028 C     == Global variables ===
042be14492 Patr*0029 #include "EEPARAMS.h"
                0030 #include "SIZE.h"
                0031 #include "PARAMS.h"
8290df867f Gael*0032 #ifdef ALLOW_CTRL
                0033 # include "CTRL_SIZE.h"
4d72283393 Mart*0034 # include "CTRL.h"
8290df867f Gael*0035 # include "CTRL_FIELDS.h"
                0036 # include "CTRL_GENARR.h"
                0037 #endif
042be14492 Patr*0038 
b4daa24319 Shre*0039 #ifdef ALLOW_TAPENADE
                0040 # include "DYNVARS.h"
                0041 # ifdef ALLOW_GMREDI
                0042 #  include "GMREDI.h"
                0043 # endif
                0044 # ifdef ALLOW_CTRL
edcd27be69 Mart*0045 #  include "CTRL_DUMMY.h"
b4daa24319 Shre*0046 # endif
                0047 # ifdef ALLOW_PTRACERS
                0048 #  include "PTRACERS_SIZE.h"
                0049 #  include "PTRACERS_FIELDS.h"
                0050 # endif
                0051 # ifdef ALLOW_SHELFICE
                0052 #  include "SHELFICE.h"
                0053 # endif
                0054 # ifdef ALLOW_STREAMICE
                0055 #  include "STREAMICE.h"
                0056 # endif
                0057 # ifdef ALLOW_SEAICE
                0058 #  include "SEAICE_SIZE.h"
                0059 #  include "SEAICE.h"
                0060 # endif
                0061 #endif /* ALLOW_TAPENADE */
                0062 
11c3150c71 Mart*0063 C     !INPUT/OUTPUT PARAMETERS:
                0064 C     == Routine arguments ==
                0065 C     myThid :: Thread number for this instance of the routine.
                0066       INTEGER myThid
042be14492 Patr*0067 
8290df867f Gael*0068 #ifdef ALLOW_CTRL
                0069 
11c3150c71 Mart*0070 C     !LOCAL VARIABLES:
                0071 C     == Local variables
                0072       INTEGER bi,bj
                0073       INTEGER k
cf705a6c8e Mart*0074 #ifdef ALLOW_BOTTOMDRAG_CONTROL
11c3150c71 Mart*0075       INTEGER i,j
                0076 #endif
042be14492 Patr*0077 c     == end of interface ==
11c3150c71 Mart*0078 CEOP
042be14492 Patr*0079 
b938a3c63b antn*0080 #ifdef ALLOW_DEBUG
                0081       IF (debugMode) CALL DEBUG_ENTER('CTRL_INIT_VARIABLES',myThid)
                0082 #endif
                0083 
11c3150c71 Mart*0084 #ifdef ALLOW_BOTTOMDRAG_CONTROL
                0085       DO bj = myByLo(myThid),myByHi(myThid)
                0086         DO bi = myBxLo(myThid),myBxHi(myThid)
                0087           DO j = 1-OLy,sNy+OLy
                0088             DO i = 1-OLx,sNx+OLx
                0089               bottomDragFld(i,j,bi,bj) = 0. _d 0
                0090             ENDDO
                0091           ENDDO
                0092         ENDDO
                0093       ENDDO
                0094 #endif
bc12ca2c8b Patr*0095 
042be14492 Patr*0096 #ifdef ALLOW_OBCS_CONTROL
a6350907f1 Jean*0097       IF (useOBCS) CALL CTRL_INIT_OBCS_VARIABLES( myThid )
042be14492 Patr*0098 #endif
                0099 
5a6aad2f1f Gael*0100 C--   Map the control variables onto the model state.
                0101 C-    Needs to be called after few {PKG}_init_varia (e.g., PTRACERS_INIT_VARIA)
a323132f22 Gael*0102 #if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL))
b938a3c63b antn*0103 # ifdef ALLOW_DEBUG
                0104       IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI_GENARR',myThid)
                0105 # endif
5a6aad2f1f Gael*0106       CALL CTRL_MAP_INI_GENARR( myThid )
                0107 #endif
a323132f22 Gael*0108 #ifdef ALLOW_GENTIM2D_CONTROL
b938a3c63b antn*0109 # ifdef ALLOW_DEBUG
                0110       IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI_GENTIM2D',myThid)
                0111 # endif
a323132f22 Gael*0112       CALL CTRL_MAP_INI_GENTIM2D( myThid )
                0113 #endif
8290df867f Gael*0114 
                0115 #ifdef ALLOW_GENTIM2D_CONTROL
11c3150c71 Mart*0116       DO bj = myByLo(myThid),myByHi(myThid)
                0117         DO bi = myBxLo(myThid),myBxHi(myThid)
                0118           DO k=1,maxCtrlTim2D
b0d5942158 Gael*0119             objf_gentim2d(bi,bj,k)     = 0. _d 0
                0120             num_gentim2d(bi,bj,k)      = 0. _d 0
11c3150c71 Mart*0121           ENDDO
                0122         ENDDO
                0123       ENDDO
8290df867f Gael*0124 #endif
                0125 #ifdef ALLOW_GENARR2D_CONTROL
11c3150c71 Mart*0126       DO bj = myByLo(myThid),myByHi(myThid)
                0127         DO bi = myBxLo(myThid),myBxHi(myThid)
                0128           DO k=1,maxCtrlArr2D
8290df867f Gael*0129             objf_genarr2d(bi,bj,k)    = 0. _d 0
                0130             num_genarr2d(bi,bj,k)    = 0. _d 0
11c3150c71 Mart*0131           ENDDO
                0132         ENDDO
                0133       ENDDO
8290df867f Gael*0134 #endif
                0135 #ifdef ALLOW_GENARR3D_CONTROL
11c3150c71 Mart*0136       DO bj = myByLo(myThid),myByHi(myThid)
                0137         DO bi = myBxLo(myThid),myBxHi(myThid)
                0138           DO k=1,maxCtrlArr3D
8290df867f Gael*0139             objf_genarr3d(bi,bj,k)    = 0. _d 0
                0140             num_genarr3d(bi,bj,k)    = 0. _d 0
11c3150c71 Mart*0141           ENDDO
                0142         ENDDO
                0143       ENDDO
8290df867f Gael*0144 #endif
b6f5c14800 Gael*0145 
b938a3c63b antn*0146 #ifdef ALLOW_DEBUG
                0147       IF (debugMode) CALL DEBUG_LEAVE('CTRL_INIT_VARIABLES',myThid)
                0148 #endif
8290df867f Gael*0149 #endif /* ALLOW_CTRL */
                0150 
a6350907f1 Jean*0151       RETURN
                0152       END