/[MITgcm]/MITgcm/model/src/config_check.F
ViewVC logotype

Annotation of /MITgcm/model/src/config_check.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3.4.1 - (hide annotations) (download)
Mon Apr 8 20:10:37 2002 UTC (22 years, 1 month ago) by heimbach
Branch: release1
CVS Tags: release1_p13_pre, release1_p13, release1_p8, release1_p9, release1_p1, release1_p2, release1_p3, release1_p4, release1_p5, release1_p6, release1_p7, release1_chkpt44d_post, release1_p11, release1_p12, release1_p10, release1_p16, release1_p17, release1_p14, release1_p15, release1_p12_pre
Branch point for: release1_50yr
Changes since 1.3: +2 -2 lines
Changes encapsulated by checkpoint43a-release1mods and chkpt44d_post
on the main trunk.
These are:

 o added missing EXCLUDE_MONITOR flags
 o changed "e" to "_d" in gmredi_slope_limit, gmredi_slope_psi
   (incompatible typ in MIN/MAX expressions caused problems
   on IBM SP3)
 o in genmake added variable MAKEDEPEND
   plus resetting for case SunOS
 o added timer_stats.c routine for IBM SP3
 o removed variables in dynamics
 o real fresh water flux implemented with non-linear free-surface.
 o few fix (mask in shap_s2, EmPmR in external_field_load,
   USE_NATURAL_BCS in solve_for_P);
 o add arguments myIter & myTime to S/R obcs_calc & solve_for_P
 o merge of relevant stuff from the ecco-branch:
   - genmake: removed $S64 overwrite for case SunOS
   - pkg/exf: update and corrections for field swapping and obcs
   - pkg/ecco: parameter lists for the_model_main, the_main_loop
               harmonized between ECCO and MITgcm
   - pkg/autodiff: added flow directives for obcs, mdsio_gl_slice
                   updated checkpointing_lev... lists for obcs
   - model/src: minor changes in forward_step, plot_field
                added directive for divided adjoint in the_main_loop
   - pkg/mdsio: added mdsio_gl_slice
 o check parameters & config (chkpt44a_pre,post)
 o OBC and NonLin_FrSurf.
 o fix bug in mom_vi_del2uv
 o select when filters are applied ; add options to zonal_filter (data.zonfilt)
 o gmredi: fix Pb in the adiabatic form ; add options (.e.g. Bolus advection)
 o update AIM experiments (NCEP input files)
 o improve and extend diagnostics (Monitor, TimeAve with NonLin-FrSurf)
 o added some stuff for AD

These were merged with
cvs co -r release1 -P MITgcm
cd MITgcm
cvs update -kk
cvs update -j checkpoint43a-release1mods -j chkpt44d_post -d -P -kk

1 heimbach 1.3.4.1 C $Header$
2     C $Name$
3 jmc 1.1
4     #include "CPP_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: CONFIG_CHECK
8     C !INTERFACE:
9     SUBROUTINE CONFIG_CHECK( myThid )
10     C !DESCRIPTION: \bv
11     C *=========================================================*
12     C | SUBROUTINE CONFIG_CHECK
13     C | o Check model parameter settings.
14     C *=========================================================*
15     C | This routine help to prevent the use of parameters
16     C | that are not compatible with the model configuration.
17     C *=========================================================*
18     C \ev
19    
20     C !USES:
21     IMPLICIT NONE
22     C === Global variables ===
23     #include "SIZE.h"
24     #include "EEPARAMS.h"
25     #include "PARAMS.h"
26     c #include "GRID.h"
27    
28     C !INPUT/OUTPUT PARAMETERS:
29     C === Routine arguments ===
30     C myThid - Number of this instances of CONFIG_CHECK
31     INTEGER myThid
32     CEndOfInterface
33    
34     C !LOCAL VARIABLES:
35     C == Local variables ==
36     C msgBuf :: Informational/error meesage buffer
37     CHARACTER*(MAX_LEN_MBUF) msgBuf
38     CEOP
39    
40     C- check that CPP option is "defined" when running-flag parameter is on:
41    
42     #ifndef ALLOW_NONHYDROSTATIC
43     IF (nonHydrostatic) THEN
44     WRITE(msgBuf,'(A)')
45     & 'CONFIG_CHECK: #undef ALLOW_NONHYDROSTATIC and'
46 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
47 jmc 1.1 WRITE(msgBuf,'(A)')
48     & 'CONFIG_CHECK: nonHydrostatic is TRUE'
49 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
50 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
51     ENDIF
52     #endif
53    
54     #ifndef EXACT_CONSERV
55     IF (exactConserv) THEN
56     WRITE(msgBuf,'(A)')
57     & 'CONFIG_CHECK: #undef EXACT_CONSERV and'
58 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
59 jmc 1.1 WRITE(msgBuf,'(A)')
60     & 'CONFIG_CHECK: exactConserv is TRUE'
61 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
62 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
63     ENDIF
64     #endif
65    
66     #ifndef NONLIN_FRSURF
67     IF (nonlinFreeSurf.NE.0) THEN
68     WRITE(msgBuf,'(A)')
69     & 'CONFIG_CHECK: #undef NONLIN_FRSURF and'
70 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
71 jmc 1.1 WRITE(msgBuf,'(A)')
72     & 'CONFIG_CHECK: nonlinFreeSurf is non-zero'
73 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
74 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
75     ENDIF
76     #endif
77    
78     #ifdef USE_NATURAL_BCS
79     WRITE(msgBuf,'(A)')
80 jmc 1.3 & 'CONFIG_CHECK: USE_NATURAL_BCS option has been replaced'
81     CALL PRINT_ERROR( msgBuf , myThid)
82 jmc 1.1 WRITE(msgBuf,'(A)')
83 jmc 1.3 & 'CONFIG_CHECK: by useRealFreshWaterFlux=TRUE in data file'
84     CALL PRINT_ERROR( msgBuf , myThid)
85 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
86 jmc 1.3 #endif
87    
88     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
89    
90     C- check parameter consistency :
91    
92     IF ( rigidLid .AND. implicitFreeSurface ) THEN
93     WRITE(msgBuf,'(A,A)')
94     & 'CONFIG_CHECK: Cannot select both implicitFreeSurface',
95     & ' and rigidLid.'
96     CALL PRINT_ERROR( msgBuf , myThid)
97     STOP 'ABNORMAL END: S/R CONFIG_CHECK'
98     ENDIF
99    
100     IF (rigidLid .AND. exactConserv) THEN
101 jmc 1.1 WRITE(msgBuf,'(A)')
102 jmc 1.3 & 'CONFIG_CHECK: exactConserv not compatible with'
103     CALL PRINT_ERROR( msgBuf , myThid)
104 jmc 1.1 WRITE(msgBuf,'(A)')
105 jmc 1.3 & 'CONFIG_CHECK: rigidLid (meaningless in that case)'
106     CALL PRINT_ERROR( msgBuf , myThid)
107 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
108     ENDIF
109    
110 jmc 1.3 IF (rigidLid .AND. useRealFreshWaterFlux) THEN
111 jmc 1.1 WRITE(msgBuf,'(A)')
112 jmc 1.3 & 'CONFIG_CHECK: useRealFreshWaterFlux not compatible with'
113     CALL PRINT_ERROR( msgBuf , myThid)
114 jmc 1.1 WRITE(msgBuf,'(A)')
115     & 'CONFIG_CHECK: rigidLid (meaningless in that case)'
116 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
117     STOP 'ABNORMAL END: S/R CONFIG_CHECK'
118     ENDIF
119    
120     IF ( (implicSurfPress.NE.1. .OR. implicDiv2DFlow.NE.1.)
121     & .AND. nonHydrostatic ) THEN
122     WRITE(msgBuf,'(A,A)') 'CONFIG_CHECK: nonHydrostatic',
123     & ' NOT SAFE with non-fully implicit Barotropic solver'
124     CALL PRINT_ERROR( msgBuf , myThid)
125     WRITE(msgBuf,'(A,A)') 'CONFIG_CHECK: To by-pass this',
126     & 'STOP, comment this test and re-compile config_check'
127     CALL PRINT_ERROR( msgBuf , myThid)
128 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
129     ENDIF
130    
131     IF (nonlinFreeSurf.NE.0 .AND. .NOT.exactConserv) THEN
132     WRITE(msgBuf,'(A)')
133     & 'CONFIG_CHECK: nonlinFreeSurf cannot be used'
134 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
135 jmc 1.1 WRITE(msgBuf,'(A)')
136     & 'CONFIG_CHECK: without exactConserv'
137 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
138 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
139     ENDIF
140    
141     C- note : not implemented in Release1_beta1 but it's done now (since 01-30-02)
142 jmc 1.2 c IF (nonlinFreeSurf.NE.0 .AND. useOBCS ) THEN
143     c WRITE(msgBuf,'(A)')
144     c & 'CONFIG_CHECK: nonlinFreeSurf not yet implemented'
145     c CALL PRINT_ERROR( msgBuf , 1)
146     c WRITE(msgBuf,'(A)')
147     c & 'CONFIG_CHECK: in OBC package'
148     c CALL PRINT_ERROR( msgBuf , 1)
149     c STOP 'ABNORMAL END: S/R CONFIG_CHECK'
150     c ENDIF
151 jmc 1.1
152     IF (nonlinFreeSurf.NE.0 .AND. nonHydrostatic) THEN
153     WRITE(msgBuf,'(A)')
154     & 'CONFIG_CHECK: nonlinFreeSurf not yet implemented'
155 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
156 jmc 1.1 WRITE(msgBuf,'(A)')
157     & 'CONFIG_CHECK: in nonHydrostatic code'
158 jmc 1.3 CALL PRINT_ERROR( msgBuf , myThid)
159 jmc 1.1 STOP 'ABNORMAL END: S/R CONFIG_CHECK'
160     ENDIF
161 jmc 1.3
162     IF (nonlinFreeSurf.NE.0 .AND. deltaTmom.NE.deltaTtracer) THEN
163     WRITE(msgBuf,'(A)')
164     & 'CONFIG_CHECK: WARNING: nonlinFreeSurf might cause'
165     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
166     & SQUEEZE_RIGHT , 1)
167     WRITE(msgBuf,'(A)')
168     & 'CONFIG_CHECK: problems with different time-steps'
169     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
170     & SQUEEZE_RIGHT , 1)
171     ENDIF
172    
173     IF (useRealFreshWaterFlux .AND. exactConserv
174     & .AND.startTime.NE.0. .AND. implicSurfPress.EQ.0. _d 0) THEN
175     WRITE(msgBuf,'(A)')
176     & 'CONFIG_CHECK: RealFreshWaterFlux+implicSurfP=0+exactConserv:'
177     CALL PRINT_ERROR( msgBuf , myThid)
178     WRITE(msgBuf,'(A)')
179     & 'CONFIG_CHECK: restart not implemented in this config'
180     CALL PRINT_ERROR( msgBuf , myThid)
181     STOP 'ABNORMAL END: S/R CONFIG_CHECK'
182     ENDIF
183    
184     #ifndef NONLIN_FRSURF
185     IF (useRealFreshWaterFlux .AND. exactConserv
186     & .AND. implicSurfPress.NE.1. _d 0 ) THEN
187     WRITE(msgBuf,'(A)')
188     & 'CONFIG_CHECK: Pb with restart in this config'
189     CALL PRINT_ERROR( msgBuf , myThid)
190     WRITE(msgBuf,'(A)')
191     & 'CONFIG_CHECK: ==> use #define NONLIN_FRSURF to fix it'
192     CALL PRINT_ERROR( msgBuf , myThid)
193     STOP 'ABNORMAL END: S/R CONFIG_CHECK'
194     ENDIF
195     #endif
196 jmc 1.1
197     WRITE(msgBuf,'(A)') 'CONFIG_CHECK: OK'
198     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
199     & SQUEEZE_RIGHT,myThid)
200    
201     RETURN
202     END

  ViewVC Help
Powered by ViewVC 1.1.22