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

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

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


Revision 1.28 - (hide annotations) (download)
Tue May 31 18:24:28 2005 UTC (18 years, 11 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint57m_post, checkpoint57i_post, checkpoint57n_post, checkpoint57l_post, checkpoint57p_post, checkpoint57q_post, checkpoint57j_post, checkpoint57o_post, checkpoint57k_post
Changes since 1.27: +7 -1 lines
New package for controlling termination of the model based on the wall clock:
This is handy for those of us who keep losing 5000 cpuhours because the model
took 5 minutes longer than it did the day before.

To use:
 In package.conf, add   runclock
 In data.pkg, add       useRunClock=.TRUE.
 Add data.runclock to read
    &RUNCLOCK
    RC_maxtime_hr=2,
    RC_maxtime_mi=30,
    RC_maxtime_sc=0,
    &

The package also write the delta Wall Clock between each model step.
Who can explain a 30% slow down after 60 iterations? Who even knew about it?
Now you can find out lots of dark secrets about the EM EYE TEE GEE SEE EM...

1 adcroft 1.28 C $Header: /u/gcmpack/MITgcm/model/src/packages_check.F,v 1.27 2004/12/13 22:01:50 jmc Exp $
2 adcroft 1.6 C $Name: $
3 adcroft 1.1
4 edhill 1.16 #include "PACKAGES_CONFIG.h"
5 adcroft 1.1 #include "CPP_OPTIONS.h"
6    
7 cnh 1.9 CBOP
8     C !ROUTINE: PACKAGES_CHECK
9     C !INTERFACE:
10 heimbach 1.2 SUBROUTINE PACKAGES_CHECK( myThid )
11 cnh 1.9 C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | SUBROUTINE PACKAGES_CHECK
14     C | o Check runtime activated packages have been built in.
15     C *==========================================================*
16     C | All packages can be selected/deselected at build time
17     C | ( when code is compiled ) and activated/deactivated at
18     C | runtime. This routine does a quick check to trap packages
19     C | that were activated at runtime but that were not compiled
20     C | in at build time.
21     C *==========================================================*
22     C \ev
23    
24     C !USES:
25 adcroft 1.1 IMPLICIT NONE
26     C === Global variables ===
27     #include "SIZE.h"
28     #include "EEPARAMS.h"
29     #include "PARAMS.h"
30    
31 cnh 1.9 C !INPUT/OUTPUT PARAMETERS:
32 adcroft 1.1 C === Routine arguments ===
33 cnh 1.9 C myThid :: Number of this instances
34 adcroft 1.1 INTEGER myThid
35    
36 cnh 1.9 C !LOCAL VARIABLES:
37 adcroft 1.1 C === Local variables ===
38 cnh 1.9 C msgBuf :: Informational/error meesage buffer
39 adcroft 1.1 CHARACTER*(MAX_LEN_MBUF) msgBuf
40 cnh 1.9 CEOP
41 adcroft 1.1
42 adcroft 1.28 #ifdef ALLOW_RUNCLOCK
43     IF (useRunClock) CALL RUNCLOCK_CHECK( myThid )
44     #else
45     IF (useRunClock) CALL PACKAGES_CHECK_ERROR('RUNCLOCK', myThid)
46     #endif
47    
48 heimbach 1.3 #ifdef ALLOW_KPP
49     IF (useKPP) CALL KPP_CHECK( myThid )
50 adcroft 1.1 #else
51 heimbach 1.5 IF (useKPP) CALL PACKAGES_CHECK_ERROR('KPP', myThid)
52 adcroft 1.1 #endif
53    
54 mlosch 1.22 #ifdef ALLOW_PP81
55     IF (usePP81) CALL PP81_CHECK( myThid )
56     #else
57     IF (usePP81) CALL PACKAGES_CHECK_ERROR('PP81', myThid)
58     #endif
59    
60     #ifdef ALLOW_MY82
61     IF (useMY82) CALL MY82_CHECK( myThid )
62     #else
63     IF (useMY82) CALL PACKAGES_CHECK_ERROR('MY82', myThid)
64     #endif
65    
66 mlosch 1.23 #ifdef ALLOW_GGL90
67     IF (useGGL90) CALL GGL90_CHECK( myThid )
68     #else
69     IF (useGGL90) CALL PACKAGES_CHECK_ERROR('GGL90', myThid)
70     #endif
71    
72     #ifdef ALLOW_OPPS
73     IF (useOPPS) CALL OPPS_CHECK( myThid )
74     #else
75     IF (useOPPS) CALL PACKAGES_CHECK_ERROR('OPPS', myThid)
76     #endif
77    
78 heimbach 1.3 #ifdef ALLOW_GMREDI
79     IF (useGMRedi) CALL GMREDI_CHECK( myThid )
80     #else
81 heimbach 1.5 IF (useGMRedi) CALL PACKAGES_CHECK_ERROR('GMREDI', myThid)
82 adcroft 1.1 #endif
83    
84 adcroft 1.6 #ifdef ALLOW_OBCS
85     IF (useOBCS) CALL OBCS_CHECK( myThid )
86     #else
87     IF (useOBCS) CALL PACKAGES_CHECK_ERROR('OBCS', myThid)
88 jmc 1.17 #endif
89    
90     #ifndef ALLOW_BULK_FORCE
91 jmc 1.21 IF (useBulkForce) CALL PACKAGES_CHECK_ERROR('BULK?FORCE',myThid)
92 jmc 1.17 #endif
93    
94 jmc 1.21 #ifndef ALLOW_THSICE
95     IF (useThSIce) CALL PACKAGES_CHECK_ERROR('THSICE', myThid)
96 jmc 1.7 #endif
97    
98     #ifndef ALLOW_AIM
99     IF (useAIM) CALL PACKAGES_CHECK_ERROR('AIM', myThid)
100 jmc 1.14 #endif
101    
102     #ifndef ALLOW_LAND
103     IF (useLand) CALL PACKAGES_CHECK_ERROR('LAND', myThid)
104 adcroft 1.11 #endif
105    
106     #ifndef ALLOW_PTRACERS
107     IF (usePTRACERS) CALL PACKAGES_CHECK_ERROR('PTRACERS', myThid)
108 jmc 1.10 #endif
109    
110 mlosch 1.25 #ifdef ALLOW_GCHEM
111     IF (useGCHEM) CALL GCHEM_CHECK( myThid )
112     #else
113     IF (useGCHEM) CALL PACKAGES_CHECK_ERROR('GCHEM', myThid)
114     #endif
115    
116 jmc 1.10 #ifndef ALLOW_SHAP_FILT
117     IF (useSHAP_FILT) CALL PACKAGES_CHECK_ERROR('SHAP_FILT', myThid)
118     #endif
119    
120     #ifndef ALLOW_ZONAL_FILT
121     IF (useZONAL_FILT) CALL PACKAGES_CHECK_ERROR('ZONAL_FILT',myThid)
122 adcroft 1.8 #endif
123    
124     #ifndef ALLOW_FLT
125     IF (useFLT) CALL PACKAGES_CHECK_ERROR('FLT', myThid)
126 dimitri 1.13 #endif
127    
128     #ifdef ALLOW_SBO
129     IF (useSBO) CALL SBO_CHECK( myThid )
130     #else
131     IF (useSBO) CALL PACKAGES_CHECK_ERROR('SBO', myThid)
132 heimbach 1.12 #endif
133    
134     #ifdef ALLOW_SEAICE
135     IF (useSEAICE) CALL SEAICE_CHECK( myThid )
136     #else
137     IF (useSEAICE) CALL PACKAGES_CHECK_ERROR('SEAICE', myThid)
138 edhill 1.20 #endif
139    
140     #ifndef ALLOW_CD_CODE
141     IF (useCDscheme) CALL PACKAGES_CHECK_ERROR('CD_CODE', myThid)
142 heimbach 1.15 #endif
143    
144 heimbach 1.19 #ifdef ALLOW_AUTODIFF
145 heimbach 1.24 CALL AUTODIFF_CHECK( myThid )
146 heimbach 1.26 #endif
147    
148     #ifdef ALLOW_CTRL
149 heimbach 1.15 CALL CTRL_CHECK( myThid )
150 heimbach 1.26 #endif
151    
152     #ifdef ALLOW_COST
153 heimbach 1.15 CALL COST_CHECK( myThid )
154 adcroft 1.6 #endif
155    
156 jmc 1.27 #ifdef ALLOW_DIAGNOSTICS
157     IF (useDiagnostics) CALL DIAGNOSTICS_CHECK( myThid )
158     #else
159     IF (useDiagnostics)
160     & CALL PACKAGES_CHECK_ERROR('DIAGNOSTICS', myThid )
161     #endif
162    
163 adcroft 1.6 RETURN
164     END

  ViewVC Help
Powered by ViewVC 1.1.22