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

Diff of /MITgcm/model/src/packages_check.F

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

revision 1.9.8.1 by dimitri, Wed Feb 12 06:45:54 2003 UTC revision 1.70 by jmc, Sun Jan 10 18:14:47 2016 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7  CBOP  CBOP
# Line 9  C     !INTERFACE: Line 10  C     !INTERFACE:
10        SUBROUTINE PACKAGES_CHECK( myThid )        SUBROUTINE PACKAGES_CHECK( myThid )
11  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
12  C     *==========================================================*  C     *==========================================================*
13  C     | SUBROUTINE PACKAGES_CHECK                                  C     | SUBROUTINE PACKAGES_CHECK
14  C     | o Check runtime activated packages have been built in.      C     | o Check runtime activated packages have been built in.
15  C     *==========================================================*  C     *==========================================================*
16  C     | All packages can be selected/deselected at build time      C     | All packages can be selected/deselected at build time
17  C     | ( when code is compiled ) and activated/deactivated at      C     | ( when code is compiled ) and activated/deactivated at
18  C     | runtime. This routine does a quick check to trap packages  C     | runtime. This routine does a quick check to trap packages
19  C     | that were activated at runtime but that were not compiled  C     | that were activated at runtime but that were not compiled
20  C     | in at build time.                                          C     | in at build time.
21  C     *==========================================================*  C     *==========================================================*
22  C     \ev  C     \ev
23    
24    C     !CALLING SEQUENCE:
25    C     PACKAGES_CHECK
26    C       |
27    C       |-- OBCS_CHECK
28    C       |
29    C       |-- OPPS_CHECK
30    C       |
31    C       |-- PP81_CHECK
32    C       |
33    C       |-- KL10_CHECK
34    C       |
35    C       |-- MY82_CHECK
36    C       |
37    C       |-- GGL90_CHECK
38    C       |
39    C       |-- KPP_CHECK
40    C       |
41    C       |-- GMREDI_CHECK
42    C       |
43    C       |-- BBL_CHECK
44    C       |
45    C       |-- EXF_CHECK
46    C       |
47    C       |-- PTRACERS_CHECK
48    C       |
49    C       |-- GCHEM_CHECK
50    C       |
51    C       |-- OFFLINE_CHECK
52    C       |
53    C       |-- SEAICE_CHECK
54    C       |
55    C       |-- SHELFICE_CHECK
56    C       |
57    C       |-- STREAMICE_CHECK
58    C       |
59    C       |-- ICEFRONT_CHECK
60    C       |
61    C       |-- THSICE_CHECK
62    C       |
63    C       |-- LAND_CHECK
64    C       |
65    C       |-- ATM_PHYS_CHECK
66    C       |
67    C       |-- AUTODIFF_CHECK
68    C       |
69    C       |-- CTRL_CHECK
70    C       |
71    C       |-- COST_CHECK
72    C       |
73    C       |-- GRDCHK_CHECK
74    C       |
75    C       |-- SBO_CHECK
76    C       |
77    C       |-- ECCO_CHECK
78    C       |
79    C       |-- DIAGNOSTICS_CHECK
80    C       |
81    C       |-- REGRID_CHECK
82    C       |
83    C       |-- LAYERS_CHECK
84    C       |
85    C       |-- NEST_CHILD_CHECK
86    C       |
87    C       |-- NEST_PARENT_CHECK
88    C       |
89    C       |-- OASIS_CHECK
90    C       |
91    C       |-- RUNCLOCK_CHECK
92    C       |
93    C       |-- MYPACKAGE_CHECK
94    C       |
95    C       |-- GAD_CHECK
96    
97  C     !USES:  C     !USES:
98        IMPLICIT NONE        IMPLICIT NONE
99  C     === Global variables ===  C     === Global variables ===
# Line 29  C     === Global variables === Line 103  C     === Global variables ===
103    
104  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
105  C     === Routine arguments ===  C     === Routine arguments ===
106  C     myThid ::  Number of this instances  C     myThid :: my Thread Id number
107        INTEGER myThid        INTEGER myThid
108    
109  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
110  C     === Local variables ===  C     === Local variables ===
111  C     msgBuf      :: Informational/error meesage buffer  C     msgBuf :: Informational/error message buffer
112        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
113  CEOP  CEOP
114    
115          _BEGIN_MASTER(myThid)
116          WRITE(msgBuf,'(A)')
117         &'== Packages configuration : Check & print summary =='
118          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
119         &                    SQUEEZE_RIGHT, myThid )
120          WRITE(msgBuf,'(A)') ' '
121          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
122         &                    SQUEEZE_RIGHT, myThid )
123          _END_MASTER(myThid)
124    
125    C---  Start with non-standard packages (without or with non standard flag)
126    
127    #ifndef ALLOW_MNC
128          IF (useMNC) THEN
129            _BEGIN_MASTER(myThid)
130            WRITE(msgBuf,'(2A)') '** WARNING **',
131         &   ' PACKAGES_CHECK: useMNC is TRUE'
132            CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
133         &                      SQUEEZE_RIGHT, myThid )
134            WRITE(msgBuf,'(2A)') '** WARNING **',
135         &   ' but pkg/mnc has not been compiled (#undef ALLOW_MNC)'
136            CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
137         &                      SQUEEZE_RIGHT, myThid )
138            _END_MASTER(myThid)
139          ENDIF
140    #endif
141    
142    #ifndef ALLOW_MOM_VECINV
143          IF ( momStepping .AND. vectorInvariantMomentum ) THEN
144            WRITE(msgBuf,'(2A)')
145         &   'PACKAGES_CHECK: cannot step forward Momentum',
146         &   ' without pkg/mom_vecinv'
147            CALL PRINT_ERROR( msgBuf , myThid )
148            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
149         &   'Re-compile with pkg "mom_vecinv" in packages.conf'
150            CALL PRINT_ERROR( msgBuf , myThid )
151            CALL ALL_PROC_DIE( myThid )
152            STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
153          ENDIF
154    #endif
155    #ifndef ALLOW_MOM_FLUXFORM
156          IF ( momStepping .AND. .NOT.vectorInvariantMomentum ) THEN
157            WRITE(msgBuf,'(2A)')
158         &   'PACKAGES_CHECK: cannot step forward Momentum',
159         &   ' without pkg/mom_fluxform'
160            CALL PRINT_ERROR( msgBuf , myThid )
161            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
162         &   'Re-compile with pkg "mom_fluxform" in packages.conf'
163            CALL PRINT_ERROR( msgBuf , myThid )
164            CALL ALL_PROC_DIE( myThid )
165            STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
166          ENDIF
167    #endif
168    
169    #ifndef ALLOW_GENERIC_ADVDIFF
170          IF ( tempStepping .OR. saltStepping ) THEN
171            WRITE(msgBuf,'(2A)')
172         &  'PACKAGES_CHECK: cannot step forward Temp or Salt',
173         &  ' without pkg/generic_advdiff'
174            CALL PRINT_ERROR( msgBuf , myThid )
175            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
176         &  'Re-compile with pkg "generic_advdiff" in packages.conf'
177            CALL PRINT_ERROR( msgBuf , myThid )
178            CALL ALL_PROC_DIE( myThid )
179            STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
180          ENDIF
181    #endif
182    
183    #ifndef ALLOW_MONITOR
184    C     If monitorFreq is finite, make sure the pkg/monitor is being compiled
185          IF (monitorFreq.NE.0.) CALL PACKAGES_ERROR_MSG(
186         &                  'MONITOR', 'monitorFreq <> 0', myThid )
187    #endif
188    
189    #ifndef ALLOW_TIMEAVE
190    C     If taveFreq is finite, make sure the pkg/timeave is being compiled
191          IF (taveFreq.NE.0.) CALL PACKAGES_ERROR_MSG(
192         &                  'TIMEAVE', 'taveFreq <> 0', myThid )
193    #endif
194    
195    #ifndef ALLOW_CD_CODE
196           IF (useCDscheme) CALL PACKAGES_ERROR_MSG(
197         &                  'CD_CODE', 'useCDscheme=.T.', myThid )
198    #endif
199    
200    C---  Continue with standard packages (with standard usePKG flag)
201    
202    #ifdef ALLOW_OBCS
203          IF (useOBCS) CALL OBCS_CHECK( myThid )
204    #else
205          IF (useOBCS) CALL PACKAGES_ERROR_MSG('OBCS',' ',myThid)
206    #endif
207    
208    #ifndef ALLOW_SHAP_FILT
209          IF (useSHAP_FILT)
210         &   CALL PACKAGES_ERROR_MSG( 'SHAP_FILT', ' ', myThid )
211    #endif
212    
213    #ifndef ALLOW_ZONAL_FILT
214          IF (useZONAL_FILT)
215         &   CALL PACKAGES_ERROR_MSG( 'ZONAL_FILT', ' ', myThid )
216    #endif
217    
218    #ifdef ALLOW_OPPS
219          IF (useOPPS) CALL OPPS_CHECK( myThid )
220    #else
221          IF (useOPPS) CALL PACKAGES_ERROR_MSG('OPPS',' ',myThid)
222    #endif
223    
224    #ifdef ALLOW_PP81
225          IF (usePP81) CALL PP81_CHECK( myThid )
226    #else
227          IF (usePP81) CALL PACKAGES_ERROR_MSG('PP81',' ',myThid)
228    #endif
229    
230    #ifdef ALLOW_KL10
231          IF (useKL10) CALL KL10_CHECK( myThid )
232    #else
233          IF (useKL10) CALL PACKAGES_ERROR_MSG('KL10',' ',myThid)
234    #endif
235    
236    #ifdef ALLOW_MY82
237          IF (useMY82) CALL MY82_CHECK( myThid )
238    #else
239          IF (useMY82) CALL PACKAGES_ERROR_MSG('MY82',' ',myThid)
240    #endif
241    
242    #ifdef ALLOW_GGL90
243          IF (useGGL90) CALL GGL90_CHECK( myThid )
244    #else
245          IF (useGGL90) CALL PACKAGES_ERROR_MSG('GGL90',' ',myThid)
246    #endif
247    
248  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
249        IF (useKPP) CALL KPP_CHECK( myThid )        IF (useKPP) CALL KPP_CHECK( myThid )
250  #else  #else
251        IF (useKPP) CALL PACKAGES_CHECK_ERROR('KPP', myThid)        IF (useKPP) CALL PACKAGES_ERROR_MSG('KPP',' ',myThid)
252  #endif  #endif
253    
254  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
255        IF (useGMRedi) CALL GMREDI_CHECK( myThid )        IF (useGMRedi) CALL GMREDI_CHECK( myThid )
256  #else  #else
257        IF (useGMRedi) CALL PACKAGES_CHECK_ERROR('GMREDI', myThid)        IF (useGMRedi) CALL PACKAGES_ERROR_MSG('GMRedi',' ',myThid)
258  #endif  #endif
259    
260  #ifdef ALLOW_OBCS  #ifdef ALLOW_BBL
261        IF (useOBCS) CALL OBCS_CHECK( myThid )        IF (useBBL) CALL BBL_CHECK( myThid )
262  #else  #else
263        IF (useOBCS) CALL PACKAGES_CHECK_ERROR('OBCS', myThid)        IF (useBBL) CALL PACKAGES_ERROR_MSG('BBL',' ',myThid)
264  #endif  #endif
265    
266  #ifndef ALLOW_AIM  #ifndef ALLOW_DOWN_SLOPE
267        IF (useAIM) CALL PACKAGES_CHECK_ERROR('AIM', myThid)        IF (useDOWN_SLOPE)
268         &            CALL PACKAGES_ERROR_MSG('DOWN_SLOPE',' ',myThid)
269    #endif
270    
271    #ifndef ALLOW_CAL
272          IF (useCAL) CALL PACKAGES_ERROR_MSG('CAL',' ',myThid)
273    #endif
274    
275    #ifdef ALLOW_EXF
276          IF (useEXF) CALL EXF_CHECK( myThid )
277    #else
278          IF (useEXF) CALL PACKAGES_ERROR_MSG('EXF',' ',myThid)
279    #endif
280    
281    #ifndef ALLOW_BULK_FORCE
282          IF (useBulkForce) CALL PACKAGES_ERROR_MSG(
283         &                  'BULK_FORCE', 'useBulkForce=.T.', myThid )
284    #endif
285    
286    #ifndef ALLOW_EBM
287          IF (useEBM) CALL PACKAGES_ERROR_MSG('EBM',' ',myThid)
288    #endif
289    
290    #ifndef ALLOW_CHEAPAML
291          IF (useCheapAML) CALL PACKAGES_ERROR_MSG('CheapAML',' ',myThid)
292  #endif  #endif
293    
294  #ifndef ALLOW_FLT  #ifndef ALLOW_FLT
295        IF (useFLT) CALL PACKAGES_CHECK_ERROR('FLT', myThid)        IF (useFLT) CALL PACKAGES_ERROR_MSG('FLT',' ',myThid)
296    #endif
297    
298    #ifdef ALLOW_PTRACERS
299          IF (usePTRACERS) CALL PTRACERS_CHECK( myThid )
300    #else
301          IF (usePTRACERS) CALL PACKAGES_ERROR_MSG('PTRACERS',' ',myThid)
302    #endif
303    
304    #ifdef ALLOW_GCHEM
305          IF (useGCHEM) CALL GCHEM_CHECK( myThid )
306    #else
307          IF (useGCHEM) CALL PACKAGES_ERROR_MSG('GCHEM',' ',myThid)
308    #endif
309    
310    #ifndef ALLOW_RBCS
311          IF (useRBCS) CALL PACKAGES_ERROR_MSG('RBCS',' ',myThid)
312    #endif
313    
314    #ifdef ALLOW_OFFLINE
315          IF (useOffLine) CALL OFFLINE_CHECK( myThid )
316    #else
317          IF (useOffLine) CALL PACKAGES_ERROR_MSG('OffLine',' ',myThid)
318    #endif
319    
320    #ifndef ALLOW_MATRIX
321          IF (useMATRIX) CALL PACKAGES_ERROR_MSG('MATRIX',' ',myThid)
322    #endif
323    
324    #ifndef ALLOW_FRAZIL
325          IF (useFRAZIL) CALL PACKAGES_ERROR_MSG('FRAZIL',' ',myThid)
326  #endif  #endif
327    
328  #ifdef ALLOW_SEAICE  #ifdef ALLOW_SEAICE
329        IF (useSEAICE) CALL SEAICE_CHECK( myThid )        IF (useSEAICE) CALL SEAICE_CHECK( myThid )
330  #else  #else
331        IF (useSEAICE) CALL PACKAGES_CHECK_ERROR('SEAICE', myThid)        IF (useSEAICE) CALL PACKAGES_ERROR_MSG('SEAICE',' ',myThid)
332    #endif
333    
334    #ifdef ALLOW_SALT_PLUME
335          IF (useSALT_PLUME)CALL SALT_PLUME_CHECK( myThid )
336    #else
337          IF (useSALT_PLUME)CALL PACKAGES_ERROR_MSG('SALT_PLUME',' ',myThid)
338    #endif
339    
340    #ifdef ALLOW_SHELFICE
341          IF (useShelfIce) CALL SHELFICE_CHECK( myThid )
342    #else
343          IF (useShelfIce) CALL PACKAGES_ERROR_MSG('ShelfIce',' ',myThid)
344    #endif
345    
346    #ifdef ALLOW_STREAMICE
347          IF (useStreamIce) CALL STREAMICE_CHECK( myThid )
348    #else
349          IF (useStreamIce) CALL PACKAGES_ERROR_MSG('StreamIce',' ',myThid)
350    #endif
351    
352    #ifdef ALLOW_ICEFRONT
353          IF (useICEFRONT) CALL ICEFRONT_CHECK( myThid )
354    #else
355          IF (useICEFRONT) CALL PACKAGES_ERROR_MSG('ICEFRONT',' ',myThid)
356    #endif
357    
358    #ifdef ALLOW_THSICE
359          IF (useThSIce) CALL THSICE_CHECK( myThid )
360    #else
361          IF (useThSIce) CALL PACKAGES_ERROR_MSG('ThSIce',' ',myThid)
362    #endif
363    
364    #ifdef ALLOW_LAND
365          IF (useLand) CALL LAND_CHECK( myThid )
366    #else
367          IF (useLand) CALL PACKAGES_ERROR_MSG('Land',' ',myThid)
368    #endif
369    
370    #ifndef ALLOW_ATM2D
371          IF (useATM2D) CALL PACKAGES_ERROR_MSG('ATM2D',' ',myThid)
372    #endif
373    
374    #ifndef ALLOW_AIM
375          IF (useAIM) CALL PACKAGES_ERROR_MSG('AIM',' ',myThid)
376    #endif
377    
378    #ifdef ALLOW_ATM_PHYS
379          IF (useAtm_Phys) CALL ATM_PHYS_CHECK( myThid )
380    #else
381          IF (useAtm_Phys) CALL PACKAGES_ERROR_MSG('Atm_Phys',' ',myThid)
382    #endif
383    
384    #ifndef ALLOW_FIZHI
385          IF (useFizhi) CALL PACKAGES_ERROR_MSG('Fizhi',' ',myThid)
386    #endif
387    
388    #ifndef ALLOW_GRIDALT
389          IF (useGridAlt) CALL PACKAGES_ERROR_MSG('GridAlt',' ',myThid)
390    #endif
391    
392    #ifdef ALLOW_AUTODIFF
393          IF (useAUTODIFF) CALL AUTODIFF_CHECK( myThid )
394    #endif
395    
396    #ifdef ALLOW_CTRL
397          IF (useCTRL) CALL CTRL_CHECK( myThid )
398    #endif
399    
400    #ifdef ALLOW_COST
401          CALL COST_CHECK( myThid )
402    #endif
403    
404    #ifdef ALLOW_GRDCHK
405          IF (useGrdChk) CALL GRDCHK_CHECK( myThid )
406    #else
407          IF (useGrdChk) CALL PACKAGES_ERROR_MSG('GrdChk',' ',myThid)
408    #endif
409    
410    #ifndef ALLOW_SMOOTH
411          IF (useSMOOTH) CALL PACKAGES_ERROR_MSG('SMOOTH',' ',myThid)
412    #endif
413    
414    #ifndef ALLOW_PROFILES
415          IF (usePROFILES) CALL PACKAGES_ERROR_MSG('PROFILES',' ',myThid)
416    #endif
417    
418    #ifdef ALLOW_SBO
419          IF (useSBO) CALL SBO_CHECK( myThid )
420    #else
421          IF (useSBO) CALL PACKAGES_ERROR_MSG('SBO',' ',myThid)
422    #endif
423    
424    #ifdef ALLOW_ECCO
425          IF (useECCO) CALL ECCO_CHECK( myThid )
426    #endif
427    
428    #ifdef ALLOW_DIAGNOSTICS
429          IF (useDiagnostics) CALL DIAGNOSTICS_CHECK( myThid )
430    #else
431          IF (useDiagnostics)
432         &   CALL PACKAGES_ERROR_MSG( 'Diagnostics', ' ', myThid )
433    #endif
434    
435    #ifdef ALLOW_REGRID
436          IF (useREGRID) CALL REGRID_CHECK( myThid )
437    #else
438          IF (useREGRID) CALL PACKAGES_ERROR_MSG('REGRID',' ',myThid)
439    #endif
440    
441    #ifdef ALLOW_LAYERS
442          IF ( useLayers ) CALL LAYERS_CHECK( myThid )
443    #else
444          IF ( useLayers ) CALL PACKAGES_ERROR_MSG('LAYERS',' ',myThid)
445    #endif /* ALLOW_LAYERS */
446    
447    #ifdef ALLOW_NEST_CHILD
448          IF (useNEST_CHILD) CALL NEST_CHILD_CHECK( myThid )
449    #else
450          IF (useNEST_CHILD) CALL PACKAGES_ERROR_MSG(
451         & 'NEST_CHILD',' ',myThid)
452    #endif
453    
454    #ifdef ALLOW_NEST_PARENT
455          IF (useNEST_PARENT) CALL NEST_PARENT_CHECK( myThid )
456    #else
457          IF (useNEST_PARENT) CALL PACKAGES_ERROR_MSG(
458         & 'NEST_PARENT',' ',myThid)
459    #endif
460    
461    #ifdef ALLOW_OASIS
462          IF (useOASIS) CALL OASIS_CHECK( myThid )
463    #else
464          IF (useOASIS) CALL PACKAGES_ERROR_MSG('OASIS',' ',myThid)
465    #endif
466    
467    #ifdef ALLOW_RUNCLOCK
468          IF (useRunClock) CALL RUNCLOCK_CHECK( myThid )
469    #else
470          IF (useRunClock) CALL PACKAGES_ERROR_MSG('RunClock',' ',myThid)
471    #endif
472    
473    #ifndef ALLOW_EMBED_FILES
474          IF (useEMBED_FILES) CALL PACKAGES_ERROR_MSG(
475         &                                  'EMBED_FILES',' ',myThid)
476  #endif  #endif
477    
478    #ifdef ALLOW_MYPACKAGE
479          IF (useMYPACKAGE) CALL MYPACKAGE_CHECK( myThid )
480    #else
481          IF (useMYPACKAGE) CALL PACKAGES_ERROR_MSG('MYPACKAGE',' ',myThid)
482    #endif
483    
484    #ifdef ALLOW_GENERIC_ADVDIFF
485    C-    Check generic AdvDiff setting and related overlap minimum size:
486    C     for this reason, called after other ${pkg}_check S/R
487          IF (useGAD) CALL GAD_CHECK( myThid )
488    #endif
489    
490    C---  Exclusive packages (which cannot be used together):
491          IF ( useEXF .AND. useBulkForce ) THEN
492            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
493         &  'both useEXF and useBulkForce are set'
494            CALL PRINT_ERROR( msgBuf , myThid )
495            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
496         &  ' but cannot be used together => need to select only one.'
497            CALL PRINT_ERROR( msgBuf , myThid )
498            CALL ALL_PROC_DIE( myThid )
499            STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
500          ENDIF
501    
502    C---  Exclusive packages (which cannot be used together):
503          IF ( useDOWN_SLOPE .AND. useBBL ) THEN
504            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
505         &  'both useDOWN_SLOPE and useBBL are set'
506            CALL PRINT_ERROR( msgBuf , myThid )
507            WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
508         &  ' but cannot be used together => need to select only one.'
509            CALL PRINT_ERROR( msgBuf , myThid )
510            CALL ALL_PROC_DIE( myThid )
511            STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
512          ENDIF
513    
514        RETURN        RETURN
515        END        END

Legend:
Removed from v.1.9.8.1  
changed lines
  Added in v.1.70

  ViewVC Help
Powered by ViewVC 1.1.22