212 |
|
|
213 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
214 |
|
|
215 |
C- check parameter consistency : |
C-- Check parameter consistency : |
216 |
|
|
217 |
IF ( ( Olx.LT.3 .OR. Oly.LT.3 ) .AND. |
IF ( ( Olx.LT.3 .OR. Oly.LT.3 ) .AND. |
218 |
& ( viscC4leithD.NE.0. .OR. viscC4leith.NE.0. |
& ( viscC4leithD.NE.0. .OR. viscC4leith.NE.0. |
234 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
235 |
ENDIF |
ENDIF |
236 |
|
|
237 |
C- Deep-Atmosphere & Anelastic limitations: |
C-- Deep-Atmosphere & Anelastic limitations: |
238 |
IF ( deepAtmosphere .AND. |
IF ( deepAtmosphere .AND. |
239 |
& useRealFreshWaterFlux .AND. usingPCoords ) THEN |
& useRealFreshWaterFlux .AND. usingPCoords ) THEN |
240 |
WRITE(msgBuf,'(A,A)') |
WRITE(msgBuf,'(A,A)') |
262 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
263 |
ENDIF |
ENDIF |
264 |
|
|
265 |
|
C-- Free-surface related limitations: |
266 |
IF ( rigidLid .AND. implicitFreeSurface ) THEN |
IF ( rigidLid .AND. implicitFreeSurface ) THEN |
267 |
WRITE(msgBuf,'(A,A)') |
WRITE(msgBuf,'(A,A)') |
268 |
& 'CONFIG_CHECK: Cannot select both implicitFreeSurface', |
& 'CONFIG_CHECK: Cannot select both implicitFreeSurface', |
415 |
ENDIF |
ENDIF |
416 |
#endif /* EXACT_CONSERV */ |
#endif /* EXACT_CONSERV */ |
417 |
|
|
418 |
|
C-- Momentum related limitations: |
419 |
|
IF ( vectorInvariantMomentum.AND.momStepping ) THEN |
420 |
|
IF ( highOrderVorticity.AND.upwindVorticity ) THEN |
421 |
|
WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', |
422 |
|
& '"highOrderVorticity" conflicts with "upwindVorticity"' |
423 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
424 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
425 |
|
ENDIF |
426 |
|
ENDIF |
427 |
|
|
428 |
IF (.NOT.useCDscheme .AND. (tauCD.NE.0. .OR. rCD.NE.-1.) ) THEN |
IF (.NOT.useCDscheme .AND. (tauCD.NE.0. .OR. rCD.NE.-1.) ) THEN |
429 |
C- jmc: since useCDscheme is a new [04-13-03] flag (default=F), |
C- jmc: since useCDscheme is a new [04-13-03] flag (default=F), |
430 |
C put this WARNING to stress that even if CD-scheme parameters |
C put this WARNING to stress that even if CD-scheme parameters |
459 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
460 |
ENDIF |
ENDIF |
461 |
|
|
462 |
|
C-- Time-stepping limitations |
463 |
IF ( momForcingOutAB.NE.0 .AND. momForcingOutAB.NE.1 ) THEN |
IF ( momForcingOutAB.NE.0 .AND. momForcingOutAB.NE.1 ) THEN |
464 |
WRITE(msgBuf,'(A,I10,A)') 'CONFIG_CHECK: momForcingOutAB=', |
WRITE(msgBuf,'(A,I10,A)') 'CONFIG_CHECK: momForcingOutAB=', |
465 |
& momForcingOutAB, ' not allowed' |
& momForcingOutAB, ' not allowed' |
479 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
480 |
ENDIF |
ENDIF |
481 |
|
|
482 |
IF ( useMATRIX .AND. useGCHEM ) THEN |
C-- Grid limitations: |
|
WRITE(msgBuf,'(2A)') |
|
|
& 'CONFIG_CHECK: cannot set both: useMATRIX & useGCHEM' |
|
|
CALL PRINT_ERROR( msgBuf , myThid) |
|
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
|
|
ENDIF |
|
|
|
|
|
IF ( useMATRIX .AND. .NOT.usePTRACERS ) THEN |
|
|
WRITE(msgBuf,'(2A)') |
|
|
& 'CONFIG_CHECK: cannot set useMATRIX without ', |
|
|
& 'setting usePTRACERS' |
|
|
CALL PRINT_ERROR( msgBuf , myThid) |
|
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
|
|
ENDIF |
|
|
|
|
483 |
IF ( rotateGrid ) THEN |
IF ( rotateGrid ) THEN |
484 |
IF ( .NOT. usingSphericalPolarGrid ) THEN |
IF ( .NOT. usingSphericalPolarGrid ) THEN |
485 |
WRITE(msgBuf,'(2A)') |
WRITE(msgBuf,'(2A)') |
495 |
CALL PRINT_ERROR( msgBuf , myThid) |
CALL PRINT_ERROR( msgBuf , myThid) |
496 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
497 |
ENDIF |
ENDIF |
|
IF ( use3dCoriolis ) THEN |
|
|
WRITE(msgBuf,'(3A)') |
|
|
& 'CONFIG_CHECK: computation of angleCosC and angleSinC ', |
|
|
& 'as required by use3dCoriolis ', |
|
|
& 'not yet implemented with rotated grid. Sorry!' |
|
|
CALL PRINT_ERROR( msgBuf , myThid) |
|
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
|
|
ENDIF |
|
498 |
#ifdef ALLOW_PROFILES |
#ifdef ALLOW_PROFILES |
499 |
WRITE(msgBuf,'(2A)') |
WRITE(msgBuf,'(2A)') |
500 |
& 'CONFIG_CHECK: specifying Euler angles will probably ', |
& 'CONFIG_CHECK: specifying Euler angles will probably ', |
504 |
#endif /* ALLOW_PROFILES */ |
#endif /* ALLOW_PROFILES */ |
505 |
ENDIF |
ENDIF |
506 |
|
|
507 |
WRITE(msgBuf,'(A)') 'CONFIG_CHECK: OK' |
C-- Packages conflict |
508 |
CALL PRINT_MESSAGE(msgBuf,standardMessageUnit, |
IF ( useMATRIX .AND. useGCHEM ) THEN |
509 |
& SQUEEZE_RIGHT,myThid) |
WRITE(msgBuf,'(2A)') |
510 |
|
& 'CONFIG_CHECK: cannot set both: useMATRIX & useGCHEM' |
511 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
512 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
513 |
|
ENDIF |
514 |
|
|
515 |
|
IF ( useMATRIX .AND. .NOT.usePTRACERS ) THEN |
516 |
|
WRITE(msgBuf,'(2A)') |
517 |
|
& 'CONFIG_CHECK: cannot set useMATRIX without ', |
518 |
|
& 'setting usePTRACERS' |
519 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
520 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
521 |
|
ENDIF |
522 |
|
|
523 |
|
WRITE(msgBuf,'(A)') |
524 |
|
&'// =======================================================' |
525 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
526 |
|
& SQUEEZE_RIGHT, myThid ) |
527 |
|
WRITE(msgBuf,'(A)') '// CONFIG_CHECK : Normal End' |
528 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
529 |
|
& SQUEEZE_RIGHT, myThid ) |
530 |
|
WRITE(msgBuf,'(A)') |
531 |
|
&'// =======================================================' |
532 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
533 |
|
& SQUEEZE_RIGHT, myThid ) |
534 |
|
WRITE(msgBuf,'(A)') ' ' |
535 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
536 |
|
& SQUEEZE_RIGHT, myThid ) |
537 |
|
|
538 |
RETURN |
RETURN |
539 |
END |
END |