42 |
|
|
43 |
C o If diffKrFile is set, then we should make sure the corresponing |
C o If diffKrFile is set, then we should make sure the corresponing |
44 |
C code is being compiled |
C code is being compiled |
45 |
#if !(defined ALLOW_3D_DIFFKR || \ |
#ifndef ALLOW_3D_DIFFKR |
|
(defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))) |
|
46 |
IF (diffKrFile.NE.' ') THEN |
IF (diffKrFile.NE.' ') THEN |
47 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
48 |
& 'CONFIG_CHECK: diffKrFile is set but never used.' |
& 'CONFIG_CHECK: diffKrFile is set but never used.' |
167 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
168 |
#endif |
#endif |
169 |
|
|
170 |
|
#ifndef ALLOW_ADDFLUID |
171 |
|
IF ( selectAddFluid.NE.0 ) THEN |
172 |
|
WRITE(msgBuf,'(A)') |
173 |
|
& 'CONFIG_CHECK: #undef ALLOW_ADDFLUID and' |
174 |
|
CALL PRINT_ERROR( msgBuf, myThid ) |
175 |
|
WRITE(msgBuf,'(A,I4,A)') 'CONFIG_CHECK: selectAddFluid=', |
176 |
|
& selectAddFluid, ' is not zero' |
177 |
|
CALL PRINT_ERROR( msgBuf, myThid ) |
178 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
179 |
|
ENDIF |
180 |
|
#endif /* ALLOW_ADDFLUID */ |
181 |
|
|
182 |
C o If pLoadFile is set, then we should make sure the corresponing |
C o If pLoadFile is set, then we should make sure the corresponing |
183 |
C code is being compiled |
C code is being compiled |
184 |
#ifndef ATMOSPHERIC_LOADING |
#ifndef ATMOSPHERIC_LOADING |
312 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
313 |
ENDIF |
ENDIF |
314 |
|
|
315 |
IF ( (implicSurfPress.NE.1. .OR. implicDiv2DFlow.NE.1.) |
IF ( (implicSurfPress.NE.1. .OR. implicDiv2Dflow.NE.1.) |
316 |
& .AND. nonHydrostatic ) THEN |
& .AND. nonHydrostatic ) THEN |
317 |
WRITE(msgBuf,'(A,A)') 'CONFIG_CHECK: nonHydrostatic', |
WRITE(msgBuf,'(A,A)') 'CONFIG_CHECK: nonHydrostatic', |
318 |
& ' NOT SAFE with non-fully implicit Barotropic solver' |
& ' NOT SAFE with non-fully implicit Barotropic solver' |
345 |
|
|
346 |
C- note : not implemented in checkpoint48b but it's done now (since 01-28-03) |
C- note : not implemented in checkpoint48b but it's done now (since 01-28-03) |
347 |
c IF (select_rStar.GT.0 .AND. useOBCS ) THEN |
c IF (select_rStar.GT.0 .AND. useOBCS ) THEN |
|
c WRITE(msgBuf,'(A)') |
|
|
c & 'CONFIG_CHECK: r* Coordinate not yet implemented' |
|
|
c CALL PRINT_ERROR( msgBuf , 1) |
|
|
c WRITE(msgBuf,'(A)') |
|
|
c & 'CONFIG_CHECK: in OBC package' |
|
|
c CALL PRINT_ERROR( msgBuf , 1) |
|
348 |
c STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
c STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
349 |
c ENDIF |
c ENDIF |
350 |
|
|
372 |
ENDIF |
ENDIF |
373 |
|
|
374 |
IF ( useRealFreshWaterFlux .AND. exactConserv |
IF ( useRealFreshWaterFlux .AND. exactConserv |
375 |
& .AND. implicDiv2DFlow.EQ.0. _d 0 |
& .AND. implicDiv2Dflow.EQ.0. _d 0 |
376 |
& .AND. startTime.NE.baseTime .AND. usePickupBeforeC54 ) THEN |
& .AND. startTime.NE.baseTime .AND. usePickupBeforeC54 ) THEN |
377 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
378 |
& 'CONFIG_CHECK: RealFreshWaterFlux+implicSurfP=0+exactConserv:' |
& 'CONFIG_CHECK: RealFreshWaterFlux+implicSurfP=0+exactConserv:' |
384 |
ENDIF |
ENDIF |
385 |
|
|
386 |
IF ( useRealFreshWaterFlux .AND. .NOT.exactConserv |
IF ( useRealFreshWaterFlux .AND. .NOT.exactConserv |
387 |
& .AND. implicDiv2DFlow.NE.1. ) THEN |
& .AND. implicDiv2Dflow.NE.1. ) THEN |
388 |
WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: **WARNNING** ', |
WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: **WARNNING** ', |
389 |
& 'RealFreshWater & implicDiv2DFlow < 1' |
& 'RealFreshWater & implicDiv2Dflow < 1' |
390 |
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, |
391 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT , myThid) |
392 |
WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: works better', |
WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: works better', |
420 |
ENDIF |
ENDIF |
421 |
#endif /* EXACT_CONSERV */ |
#endif /* EXACT_CONSERV */ |
422 |
|
|
423 |
|
IF ( selectAddFluid.LT.-1 .OR. selectAddFluid.GT.2 ) THEN |
424 |
|
WRITE(msgBuf,'(A,I10,A)') 'CONFIG_CHECK: selectAddFluid=', |
425 |
|
& selectAddFluid, ' not allowed' |
426 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
427 |
|
WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', |
428 |
|
& 'should be =0 (Off), 1,2 (Add Mass) or -1 (Virtual Flux)' |
429 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
430 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
431 |
|
ENDIF |
432 |
|
IF ( selectAddFluid.GE.1 .AND. rigidLid ) THEN |
433 |
|
WRITE(msgBuf,'(A)') |
434 |
|
& 'CONFIG_CHECK: selectAddFluid > 0 not compatible with' |
435 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
436 |
|
WRITE(msgBuf,'(A)') |
437 |
|
& 'CONFIG_CHECK: rigidLid (meaningless in that case)' |
438 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
439 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
440 |
|
ENDIF |
441 |
|
IF ( selectAddFluid.GE.1 .AND. .NOT.staggerTimeStep ) THEN |
442 |
|
WRITE(msgBuf,'(2A)') '**WARNNING** ', |
443 |
|
& 'CONFIG_CHECK: synchronous time-stepping =>' |
444 |
|
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, |
445 |
|
& SQUEEZE_RIGHT , myThid) |
446 |
|
WRITE(msgBuf,'(2A)') '**WARNNING** ', |
447 |
|
& '1 time-step mismatch in AddFluid effects on T & S' |
448 |
|
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, |
449 |
|
& SQUEEZE_RIGHT , myThid) |
450 |
|
ENDIF |
451 |
|
|
452 |
C-- Momentum related limitations: |
C-- Momentum related limitations: |
453 |
IF ( vectorInvariantMomentum.AND.momStepping ) THEN |
IF ( vectorInvariantMomentum.AND.momStepping ) THEN |
454 |
IF ( highOrderVorticity.AND.upwindVorticity ) THEN |
IF ( highOrderVorticity.AND.upwindVorticity ) THEN |
553 |
CALL PRINT_ERROR( msgBuf , myThid) |
CALL PRINT_ERROR( msgBuf , myThid) |
554 |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
555 |
ENDIF |
ENDIF |
556 |
|
|
557 |
|
IF ( (useSEAICE .OR. useThSIce) .AND. allowFreezing ) THEN |
558 |
|
WRITE(msgBuf,'(2A)') |
559 |
|
& 'CONFIG_CHECK: cannot set allowFreezing', |
560 |
|
& ' with pkgs SEAICE or THSICE' |
561 |
|
CALL PRINT_ERROR( msgBuf , myThid) |
562 |
|
STOP 'ABNORMAL END: S/R CONFIG_CHECK' |
563 |
|
ENDIF |
564 |
|
|
565 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
566 |
&'// =======================================================' |
&'// =======================================================' |