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

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

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


Revision 1.28 - (show annotations) (download)
Tue May 31 18:24:28 2005 UTC (19 years 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 C $Header: /u/gcmpack/MITgcm/model/src/packages_check.F,v 1.27 2004/12/13 22:01:50 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: PACKAGES_CHECK
9 C !INTERFACE:
10 SUBROUTINE PACKAGES_CHECK( myThid )
11 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 IMPLICIT NONE
26 C === Global variables ===
27 #include "SIZE.h"
28 #include "EEPARAMS.h"
29 #include "PARAMS.h"
30
31 C !INPUT/OUTPUT PARAMETERS:
32 C === Routine arguments ===
33 C myThid :: Number of this instances
34 INTEGER myThid
35
36 C !LOCAL VARIABLES:
37 C === Local variables ===
38 C msgBuf :: Informational/error meesage buffer
39 CHARACTER*(MAX_LEN_MBUF) msgBuf
40 CEOP
41
42 #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 #ifdef ALLOW_KPP
49 IF (useKPP) CALL KPP_CHECK( myThid )
50 #else
51 IF (useKPP) CALL PACKAGES_CHECK_ERROR('KPP', myThid)
52 #endif
53
54 #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 #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 #ifdef ALLOW_GMREDI
79 IF (useGMRedi) CALL GMREDI_CHECK( myThid )
80 #else
81 IF (useGMRedi) CALL PACKAGES_CHECK_ERROR('GMREDI', myThid)
82 #endif
83
84 #ifdef ALLOW_OBCS
85 IF (useOBCS) CALL OBCS_CHECK( myThid )
86 #else
87 IF (useOBCS) CALL PACKAGES_CHECK_ERROR('OBCS', myThid)
88 #endif
89
90 #ifndef ALLOW_BULK_FORCE
91 IF (useBulkForce) CALL PACKAGES_CHECK_ERROR('BULK?FORCE',myThid)
92 #endif
93
94 #ifndef ALLOW_THSICE
95 IF (useThSIce) CALL PACKAGES_CHECK_ERROR('THSICE', myThid)
96 #endif
97
98 #ifndef ALLOW_AIM
99 IF (useAIM) CALL PACKAGES_CHECK_ERROR('AIM', myThid)
100 #endif
101
102 #ifndef ALLOW_LAND
103 IF (useLand) CALL PACKAGES_CHECK_ERROR('LAND', myThid)
104 #endif
105
106 #ifndef ALLOW_PTRACERS
107 IF (usePTRACERS) CALL PACKAGES_CHECK_ERROR('PTRACERS', myThid)
108 #endif
109
110 #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 #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 #endif
123
124 #ifndef ALLOW_FLT
125 IF (useFLT) CALL PACKAGES_CHECK_ERROR('FLT', myThid)
126 #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 #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 #endif
139
140 #ifndef ALLOW_CD_CODE
141 IF (useCDscheme) CALL PACKAGES_CHECK_ERROR('CD_CODE', myThid)
142 #endif
143
144 #ifdef ALLOW_AUTODIFF
145 CALL AUTODIFF_CHECK( myThid )
146 #endif
147
148 #ifdef ALLOW_CTRL
149 CALL CTRL_CHECK( myThid )
150 #endif
151
152 #ifdef ALLOW_COST
153 CALL COST_CHECK( myThid )
154 #endif
155
156 #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 RETURN
164 END

  ViewVC Help
Powered by ViewVC 1.1.22