File indexing completed on 2026-07-18 05:08:28 UTC
view on githubraw file Latest commit e4aef62d on 2026-07-17 20:50:17 UTC
7bfe6112e8 Jean*0001 #include "CTRL_OPTIONS.h"
cf705a6c8e Mart*0002 #include "AD_CONFIG.h"
0003 #ifdef ALLOW_ECCO
0004 # include "ECCO_OPTIONS.h"
0005 #endif
94a8024bbe Jean*0006 #ifdef ALLOW_GMREDI
0007 # include "GMREDI_OPTIONS.h"
0008 #endif
bf759c6109 Gael*0009 #ifdef ALLOW_EXF
0010 # include "EXF_OPTIONS.h"
0011 #endif
7b8b86ab99 Timo*0012 #ifdef ALLOW_SHELFICE
0013 # include "SHELFICE_OPTIONS.h"
0014 #endif
cb406db96c Ou W*0015 #ifdef ALLOW_OBCS
0016 # include "OBCS_OPTIONS.h"
0017 #endif
042be14492 Patr*0018
698b6992ee Jean*0019
0020
0021
042be14492 Patr*0022 SUBROUTINE CTRL_CHECK( myThid )
698b6992ee Jean*0023
0024
0025
d592a6ea2a Jean*0026
698b6992ee Jean*0027
d592a6ea2a Jean*0028
698b6992ee Jean*0029
0030
0031
0032
042be14492 Patr*0033 IMPLICIT NONE
0034
0035
0036 #include "SIZE.h"
0037 #include "EEPARAMS.h"
0038 #include "PARAMS.h"
5cf4364659 Mart*0039 #include "CTRL_SIZE.h"
4d72283393 Mart*0040 #include "CTRL.h"
54efc7cf00 Gael*0041 #ifdef ALLOW_EXF
0042 # include "EXF_PARAM.h"
0043 #endif
954f010844 Gael*0044 #include "CTRL_GENARR.h"
042be14492 Patr*0045
698b6992ee Jean*0046
6b47d550f4 Mart*0047
042be14492 Patr*0048 INTEGER myThid
0049
e4aef62d49 Mart*0050 #if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS)) \
0051 || defined ALLOW_GENTIM2D_CONTROL
698b6992ee Jean*0052
0053 INTEGER ILNBLNK
0054 EXTERNAL ILNBLNK
0055 #endif
0056
0057
6b47d550f4 Mart*0058
042be14492 Patr*0059 CHARACTER*(MAX_LEN_MBUF) msgBuf
698b6992ee Jean*0060 INTEGER errCount
0061 #if ( defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENARR3D_CONTROL || defined ALLOW_GENTIM2D_CONTROL )
9f5240b52a Jean*0062 INTEGER iarr
0063 #endif
0064 #if ( defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENARR3D_CONTROL )
0065 INTEGER k2
954f010844 Gael*0066 #endif
698b6992ee Jean*0067 #if ( defined ALLOW_GENARR3D_CONTROL && defined ALLOW_PTRACERS )
0068 INTEGER iLen, iPtr, ascii_1
e4aef62d49 Mart*0069 #elif defined ALLOW_GENTIM2D_CONTROL
0070 INTEGER iLen
698b6992ee Jean*0071 #endif
cf705a6c8e Mart*0072 #ifdef ECCO_CTRL_DEPRECATED
0073 INTEGER ioUnit
0074 CHARACTER*(16) w_sfx
0075 #endif
698b6992ee Jean*0076
954f010844 Gael*0077
698b6992ee Jean*0078
0079
0080 _BEGIN_MASTER(myThid)
0081 errCount = 0
0082
0083 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0084 & ' --> Starts to check CTRL set-up'
042be14492 Patr*0085 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
d592a6ea2a Jean*0086 & SQUEEZE_RIGHT, myThid )
042be14492 Patr*0087
0088 #ifdef ALLOW_TANGENTLINEAR_RUN
698b6992ee Jean*0089 IF ( yadmark .NE. 'g_' ) THEN
0090 WRITE(msgBuf,'(A)')
042be14492 Patr*0091 & 'yadmark very likely wrong in data.ctrl for case '
698b6992ee Jean*0092 CALL PRINT_ERROR( msgBuf, myThid )
0093 WRITE(msgBuf,'(A)')
042be14492 Patr*0094 & 'ALLOW_TANGENTLINEAR_RUN; should be g_ '
698b6992ee Jean*0095 CALL PRINT_ERROR( msgBuf, myThid )
0096 errCount = errCount + 1
0097 ENDIF
d592a6ea2a Jean*0098 #endif
0099
6b47d550f4 Mart*0100 #ifdef ALLOW_GENTIM2D_CONTROL
cf705a6c8e Mart*0101 IF ( .NOT.useCAL ) THEN
e4aef62d49 Mart*0102 DO iarr = 1, maxCtrlTim2D
0103 IF ( xx_gentim2d_period(iarr) .NE. 0. _d 0 ) THEN
0104 iLen = ILNBLNK(xx_gentim2d_file(iarr))
0105 WRITE(msgBuf,'(3A)') '** WARNING ** CTRL_CHECK: '
0106 & //'xx_gentim2d_period .ne. 0. for ',
0107 & xx_gentim2d_file(iarr)(1:iLen),
0108 & ' is unsafe without pkg/cal (currently: useCAL=F)'
0109 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0110 & SQUEEZE_RIGHT, myThid )
0111 ENDIF
0112 ENDDO
6b47d550f4 Mart*0113 ENDIF
0114 #endif
0115
954f010844 Gael*0116 #ifndef ALLOW_OPENAD
0117
0118 #ifdef ALLOW_GENARR2D_CONTROL
698b6992ee Jean*0119 DO iarr = 1, maxCtrlArr2D
0120 IF (((xx_genarr2d_weight(iarr).NE.' ').AND.
954f010844 Gael*0121 & (xx_genarr2d_file(iarr).EQ.' ')).OR.
0122 & ((xx_genarr2d_weight(iarr).EQ.' ').AND.
698b6992ee Jean*0123 & (xx_genarr2d_file(iarr).NE.' '))) THEN
0124 WRITE(msgBuf,'(3A)') 'CTRL_CHECK: ',
954f010844 Gael*0125 & 'Cannot define xx_genarr2d_weight or xx_genarr2d_file ',
0126 & 'separately'
698b6992ee Jean*0127 CALL PRINT_ERROR( msgBuf, myThid )
0128 errCount = errCount + 1
0129 ENDIF
0130 ENDDO
0131 #endif /* ALLOW_GENARR2D_CONTROL */
954f010844 Gael*0132
0133 #ifdef ALLOW_GENARR3D_CONTROL
698b6992ee Jean*0134 DO iarr = 1, maxCtrlArr3D
0135 IF (((xx_genarr3d_weight(iarr).NE.' ').AND.
954f010844 Gael*0136 & (xx_genarr3d_file(iarr).EQ.' ')).OR.
0137 & ((xx_genarr3d_weight(iarr).EQ.' ').AND.
698b6992ee Jean*0138 & (xx_genarr3d_file(iarr).NE.' '))) THEN
0139 WRITE(msgBuf,'(3A)') 'CTRL_CHECK: ',
954f010844 Gael*0140 & 'Cannot define xx_genarr3d_weight or xx_genarr3d_file ',
0141 & 'separately'
698b6992ee Jean*0142 CALL PRINT_ERROR( msgBuf, myThid )
0143 errCount = errCount + 1
0144 ENDIF
0145 ENDDO
0146 # ifdef ALLOW_PTRACERS
0147
0148 IF ( usePTRACERS ) THEN
0149 DO iarr = 1, maxCtrlArr3D
0150 iLen = ILNBLNK(xx_genarr3d_file(iarr))
0151 IF ( iLen.EQ.7 .AND.
0152 & xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN
0153 ascii_1 = ICHAR( xx_genarr3d_file(iarr)(7:7) )
0154
0155 IF ( ascii_1.GE.49 .AND. ascii_1.LE.57 ) THEN
0156 READ(xx_genarr3d_file(iarr)(7:7),*) iPtr
0157 WRITE(msgBuf,'(2A,I4,A)') 'CTRL_CHECK: ',
0158 & 'pTracer #', iPtr, ' in Gen-CTRL'
0159 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0160 & SQUEEZE_RIGHT, myThid )
0161 ELSE
0162 WRITE(msgBuf,'(4A)') 'CTRL_CHECK: ',
0163 & 'Gen-CTRL file "', xx_genarr3d_file(iarr)(1:iLen), '"'
0164 CALL PRINT_ERROR( msgBuf, myThid )
0165 WRITE(msgBuf,'(2A,I3,A)') 'CTRL_CHECK: <-- ',
0166 & 'do not match any pTr number (ascii=', ascii_1, ')'
0167 CALL PRINT_ERROR( msgBuf, myThid )
0168 errCount = errCount + 1
0169 ENDIF
0170 ENDIF
0171 ENDDO
0172 ENDIF
0173 # endif /* ALLOW_PTRACERS */
0174 #endif /* ALLOW_GENARR3D_CONTROL */
954f010844 Gael*0175
0176 #ifdef ALLOW_GENTIM2D_CONTROL
698b6992ee Jean*0177 DO iarr = 1, maxCtrlTim2D
0178 IF (((xx_gentim2d_weight(iarr).NE.' ').AND.
954f010844 Gael*0179 & (xx_gentim2d_file(iarr).EQ.' ')).OR.
0180 & ((xx_gentim2d_weight(iarr).EQ.' ').AND.
698b6992ee Jean*0181 & (xx_gentim2d_file(iarr).NE.' '))) THEN
0182 WRITE(msgBuf,'(3A)') 'CTRL_CHECK: ',
954f010844 Gael*0183 & 'Cannot define xx_gentim2d_weight or xx_gentim2d_file ',
0184 & 'separately'
698b6992ee Jean*0185 CALL PRINT_ERROR( msgBuf, myThid )
0186 errCount = errCount + 1
0187 ENDIF
0188 ENDDO
0189 #endif /* ALLOW_GENTIM2D_CONTROL */
954f010844 Gael*0190
698b6992ee Jean*0191 #endif /* ndef ALLOW_OPENAD */
954f010844 Gael*0192
d592a6ea2a Jean*0193 #ifdef ALLOW_DIFFKR_CONTROL
0194
698b6992ee Jean*0195 # ifndef ALLOW_3D_DIFFKR
0196 WRITE(msgBuf,'(A)')
d592a6ea2a Jean*0197 & 'Needs to define ALLOW_3D_DIFFKR to use DIFFKR_CONTROL'
698b6992ee Jean*0198 CALL PRINT_ERROR( msgBuf, myThid )
0199 errCount = errCount + 1
0200 # endif
d592a6ea2a Jean*0201 #endif /* ALLOW_DIFFKR_CONTROL */
042be14492 Patr*0202
94a8024bbe Jean*0203 #ifdef ALLOW_KAPGM_CONTROL
0204
0205 # ifndef GM_READ_K3D_GM
0206 WRITE(msgBuf,'(A)')
0207 & 'Needs to define GM_READ_K3D_GM to use KAPGM_CONTROL'
0208 CALL PRINT_ERROR( msgBuf, myThid )
0209 errCount = errCount + 1
0210 # endif
0211 #endif /* ALLOW_KAPGM_CONTROL */
0212
0213 #ifdef ALLOW_KAPREDI_CONTROL
0214
0215 # ifndef GM_READ_K3D_REDI
0216 WRITE(msgBuf,'(A)')
0217 & 'Needs to define GM_READ_K3D_REDI to use KAPREDI_CONTROL'
0218 CALL PRINT_ERROR( msgBuf, myThid )
0219 errCount = errCount + 1
0220 # endif
0221 #endif /* ALLOW_KAPREDI_CONTROL */
0222
94069ed3c1 Gael*0223 #ifndef ALLOW_PACKUNPACK_METHOD2
0224 # ifndef EXCLUDE_CTRL_PACK
698b6992ee Jean*0225 IF ( useSingleCpuIO ) THEN
94069ed3c1 Gael*0226 WRITE(msgBuf,'(3A)') '** WARNING ** CTRL_CHECK: ',
0227 & 'relying on mdsio_gl.F to pack/unpack the control',
0228 & 'vector is unsafe when useSingleCpuIO is true.'
6b47d550f4 Mart*0229 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
94069ed3c1 Gael*0230 & SQUEEZE_RIGHT, myThid )
698b6992ee Jean*0231 ENDIF
94069ed3c1 Gael*0232 # endif
698b6992ee Jean*0233 #endif /* ndef ALLOW_PACKUNPACK_METHOD2 */
94069ed3c1 Gael*0234
0235 #ifdef ALLOW_PACKUNPACK_METHOD2
698b6992ee Jean*0236 # ifndef EXCLUDE_CTRL_PACK
cda1c18f72 Jean*0237 # ifdef ALLOW_OBCS_CONTROL
698b6992ee Jean*0238 WRITE(msgBuf,'(2A)')
94069ed3c1 Gael*0239 & 'ALLOW_PACKUNPACK_METHOD2 does not work with',
0240 & 'open boundary controls (see verif/obcs_ctrl).'
698b6992ee Jean*0241 CALL PRINT_ERROR( msgBuf, myThid )
0242 errCount = errCount + 1
0243 # endif
0244 # endif /* ndef EXCLUDE_CTRL_PACK */
0245 #endif /* ALLOW_PACKUNPACK_METHOD2 */
0246
cb406db96c Ou W*0247 #if ( defined ALLOW_OBCSN_CONTROL &&
0248 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0249 & 'CPP-flag ALLOW_OBCSN_CONTROL is defined,'
0250 CALL PRINT_ERROR( msgBuf, myThid )
0251 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0252 & 'but CPP-flag ALLOW_OBCS_NORTH is not defined.'
0253 CALL PRINT_ERROR( msgBuf, myThid )
0254 errCount = errCount + 1
0255 #endif
0256
0257 #if ( defined ALLOW_OBCSS_CONTROL &&
0258 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0259 & 'CPP-flag ALLOW_OBCSS_CONTROL is defined,'
0260 CALL PRINT_ERROR( msgBuf, myThid )
0261 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0262 & 'but CPP-flag ALLOW_OBCS_SOUTH is not defined.'
0263 CALL PRINT_ERROR( msgBuf, myThid )
0264 errCount = errCount + 1
0265 #endif
0266
0267 #if ( defined ALLOW_OBCSE_CONTROL &&
0268 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0269 & 'CPP-flag ALLOW_OBCSE_CONTROL is defined,'
0270 CALL PRINT_ERROR( msgBuf, myThid )
0271 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0272 & 'but CPP-flag ALLOW_OBCS_EAST is not defined.'
0273 CALL PRINT_ERROR( msgBuf, myThid )
0274 errCount = errCount + 1
0275 #endif
0276
0277 #if ( defined ALLOW_OBCSW_CONTROL &&
0278 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0279 & 'CPP-flag ALLOW_OBCSW_CONTROL is defined,'
0280 CALL PRINT_ERROR( msgBuf, myThid )
0281 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0282 & 'but CPP-flag ALLOW_OBCS_WEST is not defined.'
0283 CALL PRINT_ERROR( msgBuf, myThid )
0284 errCount = errCount + 1
0285 #endif
0286
11c3150c71 Mart*0287 #ifdef ALLOW_HFLUXM_CONTROL
0288 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0289 & 'CPP-flag ALLOW_HFLUXM_CONTROL has been retired.'
0290 CALL PRINT_ERROR( msgBuf, myThid )
0291 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0292 & 'tutorial_global_oce_optim, which was the only experiment'
0293 CALL PRINT_ERROR( msgBuf, myThid )
0294 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0295 & 'that used this flag, now uses the generic control xx_qnet'
0296 CALL PRINT_ERROR( msgBuf, myThid )
0297 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0298 & 'to achieve the same thing.'
0299 CALL PRINT_ERROR( msgBuf, myThid )
cf705a6c8e Mart*0300 errCount = errCount + 1
11c3150c71 Mart*0301 #endif /* ALLOW_HFLUXM_CONTROL */
0302
edcd27be69 Mart*0303 #ifdef ALLOW_HFACC_CONTROL
0304 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0305 & 'CPP-flag ALLOW_HFACC_CONTROL has been retired.'
0306 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0307 errCount = errCount + 1
0308 #endif
0309 #ifdef ALLOW_HFACC3D_CONTROL
0310 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0311 & 'CPP-flag ALLOW_HFACC3D_CONTROL has been retired.'
0312 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0313 errCount = errCount + 1
0314 #endif
0315
7b8b86ab99 Timo*0316 #ifdef ALLOW_GENARR2D_CONTROL
edcd27be69 Mart*0317
7b8b86ab99 Timo*0318 DO iarr = 1, maxCtrlArr2D
0319 DO k2 = 1, maxCtrlProc
0320 IF ( (xx_genarr2d_preproc(k2,iarr).EQ.'noscaling') .AND.
0321 & (xx_genarr2d_preproc_c(k2,iarr).EQ.'log10ctrl') ) THEN
0322 WRITE(msgBuf,'(A)')
0323 & 'CTRL_CHECK: conflicting preproc_c & preproc flags '
0324 CALL PRINT_ERROR( msgBuf, myThid )
0325 WRITE(msgBuf,'(A,I2,A)')
0326 & 'log10ctrl and noscaling set for xx_genarr2d(',iarr,').'
0327 CALL PRINT_ERROR( msgBuf, myThid )
cf705a6c8e Mart*0328 errCount = errCount + 1
7b8b86ab99 Timo*0329 ENDIF
0330 ENDDO
0331 ENDDO
0332 # ifdef ALLOW_SHELFICE
0333 # ifdef SHI_ALLOW_GAMMAFRICT
0334
0335 DO iarr = 1, maxCtrlArr2D
0336 IF ( (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicoeff')) THEN
0337 WRITE(msgBuf,'(2A,I2,A)')
0338 & 'shiTransCoeffT or S set as control variable for ',
0339 & 'xx_genarr2d(', iarr,'). '
0340 CALL PRINT_ERROR( msgBuf, myThid )
0341 WRITE(msgBuf,'(2A)')
0342 & 'Cannot use shiTransCoeffT/S when SHI_ALLOW_GAMMAFRICT ',
0343 & 'is defined'
0344 CALL PRINT_ERROR( msgBuf, myThid )
cf705a6c8e Mart*0345 errCount = errCount + 1
7b8b86ab99 Timo*0346 ENDIF
0347 ENDDO
0348 # else
0349
0350
0351
0352 DO iarr = 1, maxCtrlArr2D
0353 IF ( (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicdrag')) THEN
0354 WRITE(msgBuf,'(2A,I2,A)')
0355 & 'shiCDrag set as control variable for ',
0356 & 'xx_genarr2d(', iarr,'). '
0357 CALL PRINT_ERROR( msgBuf, myThid )
0358 WRITE(msgBuf,'(2A)')
0359 & 'Cannot use shiCDrag when SHI_ALLOW_GAMMAFRICT ',
0360 & 'is NOT defined'
0361 CALL PRINT_ERROR( msgBuf, myThid )
cf705a6c8e Mart*0362 errCount = errCount + 1
7b8b86ab99 Timo*0363 ENDIF
0364 ENDDO
0365 # endif /* SHI_ALLOW_GAMMAFRICT */
0366 # endif /* ALLOW_SHELFICE */
0367 #endif /* ALLOW_GENARR2D_CONTROL */
0368
0369 #ifdef ALLOW_GENARR3D_CONTROL
edcd27be69 Mart*0370
7b8b86ab99 Timo*0371 DO iarr = 1, maxCtrlArr3D
0372 DO k2 = 1, maxCtrlProc
0373 IF ( (xx_genarr3d_preproc(k2,iarr).EQ.'noscaling') .AND.
0374 & (xx_genarr3d_preproc_c(k2,iarr).EQ.'log10ctrl') ) THEN
0375 WRITE(msgBuf,'(A)')
0376 & 'CTRL_CHECK: conflicting preproc_c & preproc flags '
0377 CALL PRINT_ERROR( msgBuf, myThid )
0378 WRITE(msgBuf,'(A,I2,A)')
0379 & 'log10ctrl and noscaling set for xx_genarr2d(',iarr,'). '
0380 CALL PRINT_ERROR( msgBuf, myThid )
cf705a6c8e Mart*0381 errCount = errCount + 1
7b8b86ab99 Timo*0382 ENDIF
0383 ENDDO
0384 ENDDO
0385 #endif
0386
cf705a6c8e Mart*0387 #ifdef ECCO_CTRL_DEPRECATED
0388 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: CPP-flag ECCO_CTRL_DEPRECATED',
0389 & ' is no longer available.'
0390 CALL PRINT_ERROR( msgBuf, myThid )
0391 ioUnit = errorMessageUnit
0392 w_sfx = '** WARNING ** : '
0393 WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ',
0394 & 'Along with ECCO_CTRL_DEPRECATED a long list'
0395 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0396 WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ',
0397 & ' of CPP-flags have no effect anymore:'
0398 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0399
0400 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_APRESSURE_CONTROL'
0401 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0402 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_APRESSURE_COST_CONTRIBUTION'
0403 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0404 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_AQH_CONTROL'
0405 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0406 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ARGO_SALT_COST_CONTRIBUTION'
0407 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0408 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ARGO_THETA_COST_CONTRIBUTION'
0409 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0410 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ATEMP_CONTROL'
0411 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0412 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ATM_MEAN_CONTROL'
0413 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0414 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_AUTODIFF_INIT_OLD'
0415 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0416 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_BOTTOMDRAG_CONTROL_NONGENERIC'
0417 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0418 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_BOTTOMDRAG_COST_CONTRIBUTION'
0419 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0420 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_BP_COST_CONTRIBUTION'
0421 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0422 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_CTDS_COST_CONTRIBUTION'
0423 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0424 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_CTDT_COST_CONTRIBUTION'
0425 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0426 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_CTRL_SMOOTH'
0427 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0428 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DAILYSCAT_COST_CONTRIBUTION'
0429 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0430 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DAILYSST_COST_CONTRIBUTION'
0431 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0432
0433 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DIFFKR_COST_CONTRIBUTION'
0434 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0435 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DRIFTER_COST_CONTRIBUTION'
0436 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0437 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DRIFTW_COST_CONTRIBUTION'
0438 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0439
0440
0441 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EDDYPSI_COST_CONTRIBUTION'
0442 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0443 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EFLUXY0_CONTROL'
0444 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0445
0446 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EGM96_ERROR_DIAG'
0447 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0448 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ETAN0_COST_CONTRIBUTION'
0449 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0450 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EVAP_CONTROL'
0451 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0452 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EVAP_COST_CONTRIBUTION'
0453 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0454 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_GEN2D_CONTROL'
0455 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0456 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_GEN3D_CONTROL'
0457 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0458
0459 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_HFLUX_COST_CONTRIBUTION'
0460 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0461 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_IESTAU_COST_CONTRIBUTION'
0462 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0463 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_KAPGM_COST_CONTRIBUTION'
0464 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0465 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_KAPREDI_COST_CONTRIBUTION'
0466 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0467 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWDOWN_CONTROL'
0468 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0469 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWDOWN_COST_CONTRIBUTION'
0470 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0471 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWFLUX_CONTROL'
0472 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0473 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWFLUX_COST_CONTRIBUTION'
0474 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0475 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_MEAN_HFLUX_COST_CONTRIBUTION'
0476 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0477 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_NEW_SSH_COST'
0478 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0479
0480 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_PRECIP_CONTROL'
0481 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0482 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_PRECIP_COST_CONTRIBUTION'
0483 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0484
0485 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RELAXSSS_CONTROL'
0486 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0487 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RELAXSST_CONTROL'
0488 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0489 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RUNOFF_CONTROL'
0490 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0491 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RUNOFF_COST_CONTRIBUTION'
0492 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0493 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SALT0_COST_CONTRIBUTION'
0494 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0495 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SALT_COST_CONTRIBUTION'
0496 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0497 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SCAT_COST_CONTRIBUTION'
0498 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0499 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SFLUX_COST_CONTRIBUTION'
0500 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0501 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SMOOTH_BC_COST_CONTRIBUTION'
0502 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0503 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SMOOTH_CTRL3D'
0504 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0505 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SNOWPRECIP_CONTROL'
0506 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0507 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SNOWPRECIP_COST_CONTRIBUTION'
0508 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0509
0510 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_COST_CONTRIBUTION'
0511 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0512 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_ERSANOM_COST_CONTRIBUTION'
0513 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0514 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_GFOANOM_COST_CONTRIBUTION'
0515 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0516 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_MEAN_COST_CONTRIBUTION'
0517 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0518 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_TOT'
0519 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0520 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_TPANOM_COST_CONTRIBUTION'
0521 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0522 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSHV4_COST'
0523 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0524 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSS_CONTROL'
0525 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0526 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSS_COST_CONTRIBUTION'
0527 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0528 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SST_CONTROL'
0529 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0530 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SST_COST_CONTRIBUTION'
0531 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0532
0533 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_STRESS_MEAN_COST_CONTRIBUTION'
0534 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0535 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWDOWN_CONTROL'
0536 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0537 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWDOWN_COST_CONTRIBUTION'
0538 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0539 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWFLUX_CONTROL'
0540 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0541 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWFLUX_COST_CONTRIBUTION'
0542 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0543 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_THETA0_COST_CONTRIBUTION'
0544 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0545 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_THETA_COST_CONTRIBUTION'
0546 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0547 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_TMI_SST_COST_CONTRIBUTION'
0548 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0549 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_TRANSPORT_COST_CONTRIBUTION'
0550 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0551 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_USTRESS_COST_CONTRIBUTION'
0552 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0553 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_UVEL0_COST_CONTRIBUTION'
0554 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0555 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_UWIND_CONTROL'
0556 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0557 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_UWIND_COST_CONTRIBUTION'
0558 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0559 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VSTRESS_COST_CONTRIBUTION'
0560 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0561 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VVEL0_COST_CONTRIBUTION'
0562 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0563 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VWIND_CONTROL'
0564 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0565 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VWIND_COST_CONTRIBUTION'
0566 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0567 WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_XBT_COST_CONTRIBUTION'
0568 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578 WRITE(msgBuf,'(2A)') w_sfx, 'DISABLE_CTRL_THETA_LIMIT'
0579 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0580 WRITE(msgBuf,'(2A)') w_sfx, 'GENERIC_BAR_MONTH'
0581 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0582
0583 WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ',
0584 & 'end of CPP-flag list that have no effect anymore.'
0585 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0586 errCount = errCount + 1
0587 #endif /* ECCO_CTRL_DEPRECATED */
0588
0589 IF ( errCount.GE.1 ) THEN
0590 WRITE(msgBuf,'(A,I3,A)')
0591 & 'CTRL_CHECK: detected', errCount,' fatal error(s)'
0592 CALL PRINT_ERROR( msgBuf, myThid )
0593 CALL ALL_PROC_DIE( 0 )
0594 STOP 'ABNORMAL END: S/R CTRL_CHECK'
0595 ENDIF
0596
0597 WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ',
0598 & ' <-- Ends Normally'
0599 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0600 & SQUEEZE_RIGHT, myThid )
0601 WRITE(msgBuf,'(2A)') ' '
0602 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0603 & SQUEEZE_RIGHT, myThid )
0604 _END_MASTER(myThid)
0605
99fb70dae5 Jean*0606 RETURN
0607 END