Back to home page

MITgcm

 
 

    


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

view on githubraw file Latest commit 65754df4 on 2023-11-04 17:55:24 UTC
7bfe6112e8 Jean*0001 #include "CTRL_OPTIONS.h"
94a8024bbe Jean*0002 #ifdef ALLOW_GMREDI
                0003 # include "GMREDI_OPTIONS.h"
                0004 #endif
c69ccc91fb antn*0005 #ifdef ALLOW_SEAICE
                0006 # include "SEAICE_OPTIONS.h"
                0007 #endif
7b8b86ab99 Timo*0008 #ifdef ALLOW_SHELFICE
                0009 # include "SHELFICE_OPTIONS.h"
                0010 #endif
16cc32c739 Mart*0011 #ifdef ALLOW_STREAMICE
                0012 # include "STREAMICE_OPTIONS.h"
                0013 #endif
11c3150c71 Mart*0014 #ifdef ALLOW_DIC
                0015 # include "DIC_OPTIONS.h"
                0016 #endif
698b6992ee Jean*0017 
ffe95b3b07 Patr*0018 CBOP
74e877655a Jean*0019 C     !ROUTINE: CTRL_MAP_INI_GENARR
ffe95b3b07 Patr*0020 C     !INTERFACE:
74e877655a Jean*0021       SUBROUTINE CTRL_MAP_INI_GENARR( myThid )
ffe95b3b07 Patr*0022 
                0023 C     !DESCRIPTION: \bv
74e877655a Jean*0024 C     *=================================================================
                0025 C     | SUBROUTINE CTRL_MAP_INI_GENARR
                0026 C     | Add the generic arrays of the
                0027 C     | control vector to the model state and update the tile halos.
4d72283393 Mart*0028 C     | The control vector is defined in the header file "CTRL.h".
74e877655a Jean*0029 C     *=================================================================
ffe95b3b07 Patr*0030 C     \ev
                0031 
                0032 C     !USES:
74e877655a Jean*0033       IMPLICIT NONE
ffe95b3b07 Patr*0034 
74e877655a Jean*0035 C     == global variables ==
ffe95b3b07 Patr*0036 #include "SIZE.h"
                0037 #include "EEPARAMS.h"
                0038 #include "PARAMS.h"
                0039 #include "GRID.h"
                0040 #include "DYNVARS.h"
                0041 #include "FFIELDS.h"
c04085ad02 Patr*0042 #include "CTRL_SIZE.h"
4d72283393 Mart*0043 #include "CTRL.h"
edcd27be69 Mart*0044 #include "CTRL_DUMMY.h"
a6350907f1 Jean*0045 #include "CTRL_FIELDS.h"
c04085ad02 Patr*0046 #include "CTRL_GENARR.h"
94a8024bbe Jean*0047 #ifdef ALLOW_GMREDI
                0048 # include "GMREDI.h"
                0049 #endif
ffe95b3b07 Patr*0050 #ifdef ALLOW_PTRACERS
                0051 # include "PTRACERS_SIZE.h"
698b6992ee Jean*0052 # include "PTRACERS_PARAMS.h"
ffe95b3b07 Patr*0053 # include "PTRACERS_FIELDS.h"
                0054 #endif
c69ccc91fb antn*0055 #ifdef ALLOW_SEAICE
                0056 # include "SEAICE_SIZE.h"
                0057 # include "SEAICE.h"
                0058 #endif
7b8b86ab99 Timo*0059 #ifdef ALLOW_SHELFICE
                0060 # include "SHELFICE.h"
                0061 #endif
16cc32c739 Mart*0062 #ifdef ALLOW_STREAMICE
                0063 # include "STREAMICE.h"
                0064 #endif
11c3150c71 Mart*0065 #if (defined ALLOW_DIC && defined DIC_BIOTIC)
                0066 # include "DIC_VARS.h"
                0067 #endif
ffe95b3b07 Patr*0068 
                0069 C     !INPUT/OUTPUT PARAMETERS:
a78204c019 Mart*0070 C     == routine arguments ==
74e877655a Jean*0071       INTEGER myThid
ffe95b3b07 Patr*0072 
698b6992ee Jean*0073 #if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS))
                0074 C     !FUNCTIONS:
                0075       INTEGER  ILNBLNK
                0076       EXTERNAL ILNBLNK
                0077 #endif
                0078 
416fa3402d Gael*0079 C     !LOCAL VARIABLES:
a78204c019 Mart*0080 C     == local variables ==
bb18285007 Gael*0081 #if (defined (ALLOW_GENARR2D_CONTROL) || defined(ALLOW_GENARR3D_CONTROL))
698b6992ee Jean*0082       INTEGER iarr
96b006450c dngo*0083       CHARACTER*(MAX_LEN_FNAM) temp_genarr_fnam
bb18285007 Gael*0084 #endif
                0085 #ifdef ALLOW_GENARR2D_CONTROL
c69ccc91fb antn*0086       INTEGER igen_etan, igen_bdrag, igen_geoth
                0087 # ifdef ALLOW_SEAICE
                0088       INTEGER igen_siarea, igen_siheff
                0089 # endif
7b8b86ab99 Timo*0090 # ifdef ALLOW_SHELFICE
                0091       INTEGER igen_shiCoeffT, igen_shiCoeffS, igen_shiCDrag
9f5240b52a Jean*0092       INTEGER i, j, bi, bj
                0093 #  ifdef SHI_ALLOW_GAMMAFRICT
                0094       INTEGER k2
7b8b86ab99 Timo*0095       LOGICAL dragThermoEqualMom
9f5240b52a Jean*0096 #  endif
7b8b86ab99 Timo*0097 # endif
16cc32c739 Mart*0098 #ifdef ALLOW_STREAMICE
96b006450c dngo*0099       INTEGER igen_b_glen, igen_rlow_streamice
                0100       INTEGER igen_beta, igen_bdot_streamice
                0101       INTEGER igen_bdot_max_streamice
                0102       INTEGER igen_h_streamice
16cc32c739 Mart*0103 # endif
11c3150c71 Mart*0104 # if (defined ALLOW_DIC && defined DIC_BIOTIC)
                0105       INTEGER igen_alpha
                0106 # endif
bb18285007 Gael*0107 #endif /* ALLOW_GENARR2D_CONTROL */
                0108 #ifdef ALLOW_GENARR3D_CONTROL
698b6992ee Jean*0109       INTEGER igen_theta0, igen_salt0
                0110       INTEGER igen_kapgm, igen_kapredi, igen_diffkr
                0111 # if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL))
                0112       INTEGER igen_uvel0, igen_vvel0
                0113 # endif
                0114 # ifdef ALLOW_PTRACERS
                0115       INTEGER iPtr, iLen
                0116       INTEGER igen_ptr(PTRACERS_num)
                0117 # endif
bb18285007 Gael*0118 #endif /* ALLOW_GENARR3D_CONTROL */
416fa3402d Gael*0119 CEOP
                0120 
b938a3c63b antn*0121 #ifdef ALLOW_DEBUG
                0122       IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_INI_GENARR', myThid )
                0123 #endif
416fa3402d Gael*0124 #ifdef ALLOW_GENARR2D_CONTROL
                0125 C--   generic 2D control variables
                0126 
164786015a Gael*0127       igen_etan=0
416fa3402d Gael*0128       igen_bdrag=0
                0129       igen_geoth=0
c69ccc91fb antn*0130 #ifdef ALLOW_SEAICE
                0131       igen_siarea=0
                0132       igen_siheff=0
                0133 #endif
7b8b86ab99 Timo*0134 #ifdef ALLOW_SHELFICE
                0135       igen_shiCoeffT=0
                0136       igen_shiCoeffS=0
                0137       igen_shiCDrag=0
                0138 #endif
16cc32c739 Mart*0139 #ifdef ALLOW_STREAMICE
                0140       igen_b_glen=0
96b006450c dngo*0141       igen_rlow_streamice=0
                0142       igen_beta=0
                0143       igen_bdot_streamice=0
                0144       igen_bdot_max_streamice=0
16cc32c739 Mart*0145       igen_h_streamice=0
                0146 #endif
416fa3402d Gael*0147       DO iarr = 1, maxCtrlArr2D
698b6992ee Jean*0148        IF (xx_genarr2d_weight(iarr).NE.' ') THEN
96b006450c dngo*0149         temp_genarr_fnam = xx_genarr2d_file(iarr)
                0150         IF (temp_genarr_fnam(1:7).EQ.'xx_etan')
164786015a Gael*0151      &     igen_etan=iarr
96b006450c dngo*0152         IF (temp_genarr_fnam(1:13).EQ.'xx_bottomdrag')
164786015a Gael*0153      &     igen_bdrag=iarr
96b006450c dngo*0154         IF (temp_genarr_fnam(1:13).EQ.'xx_geothermal')
164786015a Gael*0155      &     igen_geoth=iarr
c69ccc91fb antn*0156 #ifdef ALLOW_SEAICE
96b006450c dngo*0157         IF (temp_genarr_fnam(1:9).EQ.'xx_siarea')
c69ccc91fb antn*0158      &     igen_siarea=iarr
96b006450c dngo*0159         IF (temp_genarr_fnam(1:9).EQ.'xx_siheff')
c69ccc91fb antn*0160      &     igen_siheff=iarr
                0161 #endif
7b8b86ab99 Timo*0162 #ifdef ALLOW_SHELFICE
                0163 # ifndef SHI_ALLOW_GAMMAFRICT
96b006450c dngo*0164         IF (temp_genarr_fnam(1:12).EQ.'xx_shicoefft')
7b8b86ab99 Timo*0165      &     igen_shiCoeffT=iarr
96b006450c dngo*0166         IF (temp_genarr_fnam(1:12).EQ.'xx_shicoeffs')
7b8b86ab99 Timo*0167      &     igen_shiCoeffS=iarr
                0168 # else
96b006450c dngo*0169         IF (temp_genarr_fnam(1:11).EQ.'xx_shicdrag')
7b8b86ab99 Timo*0170      &     igen_shiCDrag=iarr
                0171 # endif
                0172 #endif
16cc32c739 Mart*0173 #ifdef ALLOW_STREAMICE
96b006450c dngo*0174         IF (temp_genarr_fnam(1:8).EQ.'xx_bglen')
16cc32c739 Mart*0175      &     igen_b_glen=iarr
96b006450c dngo*0176         IF (temp_genarr_fnam(1:17).EQ.'xx_rlow_streamice')
                0177      &     igen_h_streamice=iarr
                0178         IF (temp_genarr_fnam(1:7).EQ.'xx_beta')
                0179      &     igen_beta=iarr
                0180         IF (temp_genarr_fnam(1:7).EQ.'xx_bdot')
                0181      &     igen_bdot_streamice=iarr
                0182         IF (temp_genarr_fnam(1:11).EQ.'xx_bdot_max')
                0183      &     igen_bdot_max_streamice=iarr
                0184         IF (temp_genarr_fnam(1:11).EQ.'xx_h_streamice')
16cc32c739 Mart*0185      &     igen_h_streamice=iarr
                0186 #endif
11c3150c71 Mart*0187 #if (defined ALLOW_DIC && defined DIC_BIOTIC)
96b006450c dngo*0188         IF (temp_genarr_fnam(1:11).EQ.'xx_alpha')
11c3150c71 Mart*0189      &     igen_alpha=iarr
                0190 #endif
698b6992ee Jean*0191        ENDIF
416fa3402d Gael*0192       ENDDO
                0193 
698b6992ee Jean*0194       IF (igen_etan.GT.0) THEN
                0195         CALL CTRL_MAP_GENARR2D( etaN, igen_etan, myThid )
                0196       ENDIF
416fa3402d Gael*0197 #ifdef ALLOW_BOTTOMDRAG_CONTROL
698b6992ee Jean*0198       IF (igen_bdrag.GT.0)
                0199      &  CALL CTRL_MAP_GENARR2D( bottomDragFld, igen_bdrag, myThid )
416fa3402d Gael*0200 #endif
                0201 #ifdef ALLOW_GEOTHERMAL_FLUX
698b6992ee Jean*0202       IF (igen_geoth.GT.0)
                0203      &  CALL CTRL_MAP_GENARR2D( geothermalFlux, igen_geoth, myThid )
416fa3402d Gael*0204 #endif
c69ccc91fb antn*0205 
                0206 #ifdef ALLOW_SEAICE
                0207       IF (igen_siarea.GT.0)
                0208      &  CALL CTRL_MAP_GENARR2D(AREA,igen_siarea,myThid)
                0209       IF (igen_siheff.GT.0)
                0210      &  CALL CTRL_MAP_GENARR2D(HEFF,igen_siheff,myThid)
                0211 #endif
7b8b86ab99 Timo*0212 #ifdef ALLOW_SHELFICE
                0213 # ifndef SHI_ALLOW_GAMMAFRICT
                0214       IF (igen_shiCoeffT.GT.0)
a78204c019 Mart*0215      &  CALL CTRL_MAP_GENARR2D(shiTransCoeffT,igen_shiCoeffT,myThid)
7b8b86ab99 Timo*0216 
                0217       IF (igen_shiCoeffS.GT.0)
a78204c019 Mart*0218      &  CALL CTRL_MAP_GENARR2D(shiTransCoeffS,igen_shiCoeffS,myThid)
7b8b86ab99 Timo*0219 
                0220 C--   xx_shiCoeffS not used, but shiCoeffT is adjusted by xx_shicoefft
                0221       IF ((igen_shiCoeffS.EQ.0).AND.(igen_shiCoeffT.GT.0)) THEN
                0222        DO bj = myByLo(myThid), myByHi(myThid)
                0223         DO bi = myBxLo(myThid), myBxHi(myThid)
                0224          DO j = 1-OLy,sNy+OLy
                0225           DO i = 1-OLx,sNx+OLx
                0226            shiTransCoeffS(i,j,bi,bj) =
                0227      &       SHELFICEsaltToHeatRatio*shiTransCoeffT(i,j,bi,bj)
                0228           ENDDO
                0229          ENDDO
                0230         ENDDO
                0231        ENDDO
                0232 C--   xx_shiCoeffT not used, but shiCoeffS is adjusted by xx_shicoeffs
                0233       ELSEIF ((igen_shiCoeffT.EQ.0).AND.(igen_shiCoeffS.GT.0)) THEN
                0234        DO bj = myByLo(myThid), myByHi(myThid)
                0235         DO bi = myBxLo(myThid), myBxHi(myThid)
                0236          DO j = 1-OLy,sNy+OLy
                0237           DO i = 1-OLx,sNx+OLx
                0238            shiTransCoeffT(i,j,bi,bj) =
                0239      &       shiTransCoeffS(i,j,bi,bj)/SHELFICEsaltToHeatRatio
                0240           ENDDO
                0241          ENDDO
                0242         ENDDO
                0243        ENDDO
                0244       ENDIF
9f5240b52a Jean*0245 # else /* SHI_ALLOW_GAMMAFRICT */
7b8b86ab99 Timo*0246       dragThermoEqualMom = .FALSE.
c69ccc91fb antn*0247       IF (igen_shiCDrag.GT.0) THEN
                0248         CALL CTRL_MAP_GENARR2D(shiCDragFld,igen_shiCDrag,myThid)
7b8b86ab99 Timo*0249 C--     Set drag coefficient used in momentum equal to thermodynamic,
                0250 C--      u* drag coefficient
c69ccc91fb antn*0251         DO k2 = 1, maxCtrlProc
                0252          IF (xx_genarr2d_preproc_c(k2,igen_shiCDrag)(1:3).EQ.'mom')
                0253      &      dragThermoEqualMom = .TRUE.
                0254         ENDDO
                0255       ENDIF
7b8b86ab99 Timo*0256       IF (dragThermoEqualMom) THEN
                0257        DO bj = myByLo(myThid), myByHi(myThid)
                0258         DO bi = myBxLo(myThid), myBxHi(myThid)
                0259          DO j = 1-OLy,sNy+OLy
                0260           DO i = 1-OLx,sNx+OLx
                0261            shiDragQuadFld(i,j,bi,bj) = shiCDragFld(i,j,bi,bj)
                0262           ENDDO
                0263          ENDDO
                0264         ENDDO
                0265        ENDDO
                0266       ENDIF
                0267 # endif /* SHI_ALLOW_GAMMAFRICT */
                0268 #endif /* ALLOW_SHELFICE */
96b006450c dngo*0269 
16cc32c739 Mart*0270 #ifdef ALLOW_STREAMICE
96b006450c dngo*0271       IF (igen_bdot_max_streamice.GT.0) THEN
                0272 #ifdef ALLOW_OPENAD
                0273        streamice_bdot_maxmelt_v(1,1,1,1) =
                0274      &  streamice_bdot_maxmelt_v(1,1,1,1) +
                0275      &  0.0 * xx_genarr2d_dummy(igen_bdot_max_streamice)
                0276 #endif
                0277        CALL CTRL_MAP_GENARR2D( streamice_bdot_maxmelt_v,
                0278      &  igen_bdot_max_streamice, myThid )
                0279       ENDIF
                0280       IF (igen_bdot_streamice.GT.0) THEN
                0281 #ifdef ALLOW_OPENAD
                0282        bdot_streamice(1,1,1,1) = bdot_streamice(1,1,1,1) +
                0283      &  0.0 * xx_genarr2d_dummy(igen_bdot_streamice)
                0284 #endif
                0285        CALL CTRL_MAP_GENARR2D( bdot_streamice, igen_bdot_streamice,
                0286      &  myThid )
                0287       ENDIF
                0288       IF (igen_beta.GT.0) THEN
                0289 #ifdef ALLOW_OPENAD
                0290        C_basal_friction(1,1,1,1) = C_basal_friction(1,1,1,1) +
                0291      &  0.0 * xx_genarr2d_dummy(igen_beta)
                0292 #endif
                0293        CALL CTRL_MAP_GENARR2D( C_basal_friction, igen_beta, myThid )
                0294       ENDIF
                0295       IF (igen_rlow_streamice.GT.0) THEN
                0296 #ifdef ALLOW_OPENAD
                0297        r_low_si(1,1,1,1) = r_low_si(1,1,1,1) +
                0298      &  0.0 * xx_genarr2d_dummy(igen_rlow_streamice)
                0299 #endif
                0300        CALL CTRL_MAP_GENARR2D( r_low_si, igen_rlow_streamice, myThid )
                0301       ENDIF
                0302       IF (igen_b_glen.GT.0) THEN
                0303 #ifdef ALLOW_OPENAD
                0304        B_glen(1,1,1,1) = B_glen(1,1,1,1) +
                0305      &  0.0 * xx_genarr2d_dummy(igen_b_glen)
                0306 #endif
                0307        CALL CTRL_MAP_GENARR2D( B_glen, igen_b_glen, myThid )
                0308       ENDIF
                0309       IF (igen_h_streamice.GT.0) THEN
                0310 #ifdef ALLOW_OPENAD
                0311        h_streamice(1,1,1,1) = h_streamice(1,1,1,1) +
                0312      &  0.0 * xx_genarr2d_dummy(igen_h_streamice)
                0313 #endif
                0314        CALL CTRL_MAP_GENARR2D( h_streamice, igen_h_streamice, myThid )
                0315       ENDIF
16cc32c739 Mart*0316 #endif /* ALLOW_STREAMICE */
96b006450c dngo*0317 
11c3150c71 Mart*0318 #if (defined ALLOW_DIC && defined DIC_BIOTIC)
                0319       IF (igen_alpha.GT.0)
                0320      &  CALL CTRL_MAP_GENARR2D( alpha, igen_alpha, myThid )
                0321 #endif
416fa3402d Gael*0322 
                0323 #endif /* ALLOW_GENARR2D_CONTROL */
                0324 
                0325 #ifdef ALLOW_GENARR3D_CONTROL
                0326 C--   generic 3D control variables
                0327 
                0328       igen_theta0=0
                0329       igen_salt0=0
                0330       igen_kapgm=0
                0331       igen_kapredi=0
                0332       igen_diffkr=0
698b6992ee Jean*0333 # if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL))
77f894c517 Timo*0334       igen_uvel0=0
                0335       igen_vvel0=0
698b6992ee Jean*0336 # endif
                0337 # ifdef ALLOW_PTRACERS
                0338       DO iPtr = 1, PTRACERS_num
                0339         igen_ptr(iPtr) = 0
                0340       ENDDO
                0341 # endif /* ALLOW_PTRACERS */
416fa3402d Gael*0342       DO iarr = 1, maxCtrlArr3D
698b6992ee Jean*0343        IF (xx_genarr3d_weight(iarr).NE.' ') THEN
                0344         IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta')
164786015a Gael*0345      &     igen_theta0=iarr
698b6992ee Jean*0346         IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt')
164786015a Gael*0347      &     igen_salt0=iarr
698b6992ee Jean*0348         IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm')
164786015a Gael*0349      &     igen_kapgm=iarr
698b6992ee Jean*0350         IF (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi')
164786015a Gael*0351      &     igen_kapredi=iarr
698b6992ee Jean*0352         IF (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr')
164786015a Gael*0353      &     igen_diffkr=iarr
698b6992ee Jean*0354 # if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL))
                0355         IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel')
6b2230d510 Ou W*0356      &     igen_uvel0=iarr
698b6992ee Jean*0357         IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel')
6b2230d510 Ou W*0358      &     igen_vvel0=iarr
698b6992ee Jean*0359 # endif
                0360 # ifdef ALLOW_PTRACERS
                0361         IF ( usePTRACERS ) THEN
                0362           iLen = ILNBLNK(xx_genarr3d_file(iarr))
                0363           IF ( iLen.EQ.7 .AND.
                0364      &         xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN
                0365             READ(xx_genarr3d_file(iarr)(7:7),*) iPtr
                0366             IF ( iPtr.GE.1 .AND. iPtr.LE.PTRACERS_numInUse )
                0367      &                  igen_ptr(iPtr) = iarr
                0368           ENDIF
                0369         ENDIF
                0370 # endif /* ALLOW_PTRACERS */
                0371        ENDIF
416fa3402d Gael*0372       ENDDO
                0373 
698b6992ee Jean*0374       IF (igen_theta0.GT.0)
                0375      &  CALL CTRL_MAP_GENARR3D( theta, igen_theta0, myThid )
                0376       IF (igen_salt0.GT.0)
                0377      &  CALL CTRL_MAP_GENARR3D( salt, igen_salt0, myThid )
94a8024bbe Jean*0378 # if ( defined ALLOW_KAPGM_CONTROL && defined GM_READ_K3D_GM )
698b6992ee Jean*0379       IF (igen_kapgm.GT.0)
94a8024bbe Jean*0380      &  CALL CTRL_MAP_GENARR3D( GM_inpK3dGM, igen_kapgm, myThid )
698b6992ee Jean*0381 # endif
94a8024bbe Jean*0382 # if ( defined ALLOW_KAPREDI_CONTROL && defined GM_READ_K3D_REDI )
698b6992ee Jean*0383       IF (igen_kapredi.GT.0)
94a8024bbe Jean*0384      &  CALL CTRL_MAP_GENARR3D( GM_inpK3dRedi, igen_kapredi, myThid )
698b6992ee Jean*0385 # endif
                0386 # if ( defined ALLOW_DIFFKR_CONTROL && defined ALLOW_3D_DIFFKR )
                0387       IF (igen_diffkr.GT.0)
                0388      &  CALL CTRL_MAP_GENARR3D( diffKr, igen_diffkr, myThid )
                0389 # endif
                0390 
                0391 # ifdef ALLOW_PTRACERS
                0392 CADJ loop = parallel
                0393       DO iPtr = 1, PTRACERS_num
                0394         IF ( igen_ptr(iPtr).GT.0 ) THEN
                0395           CALL CTRL_MAP_GENARR3D( pTracer(1-OLx,1-OLy,1,1,1,iPtr),
                0396      &                            igen_ptr(iPtr), myThid )
                0397         ENDIF
                0398       ENDDO
                0399 # endif /* ALLOW_PTRACERS */
                0400 
                0401 # if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL))
                0402       IF (igen_uvel0.GT.0 .AND. igen_vvel0.GT.0) THEN
                0403         CALL CTRL_MAP_GENARR3D( uVel, igen_uvel0, myThid )
                0404         CALL CTRL_MAP_GENARR3D( vVel, igen_vvel0, myThid )
                0405         CALL EXCH_UV_XYZ_RL( uVel, vVel, .TRUE., myThid )
                0406       ENDIF
                0407 # endif
416fa3402d Gael*0408 
                0409 #endif /* ALLOW_GENARR3D_CONTROL */
                0410 
b938a3c63b antn*0411 #ifdef ALLOW_DEBUG
                0412       IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_INI_GENARR', myThid )
                0413 #endif
                0414 
416fa3402d Gael*0415       RETURN
                0416       END