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

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

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


Revision 1.55 - (show annotations) (download)
Sun Aug 7 07:08:15 2011 UTC (12 years, 9 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint63g, checkpoint63h, checkpoint63i, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63b, checkpoint63c
Changes since 1.54: +3 -1 lines
o adding package bbl (Bottom Boundary Layer)
  description in MITgcm/pkg/bbl/bbl_description.tex
  example/test experiment in MITgcm_contrib/bbl

1 C $Header: /u/gcmpack/MITgcm/model/src/packages_boot.F,v 1.54 2011/03/18 10:48:57 mlosch Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: PACKAGES_BOOT
9 C !INTERFACE:
10 SUBROUTINE PACKAGES_BOOT( myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE PACKAGES_BOOT
15 C | o Routine to parse runtime package selection file
16 C *==========================================================*
17 C | Routine reads a flat file which contains a single flag
18 C | for each known "package". Flag can enables runtime
19 C | activation or deactivation of a package. The data is read
20 C | from a file called data.pkg.
21 C | Note - If a runtime activation flag is set on but the
22 C | package code was not included in the build then
23 C | the default behavior is to stop with an error.
24 C *==========================================================*
25 C \ev
26
27 C !USES:
28 IMPLICIT NONE
29 C === Global variables ===
30 #include "SIZE.h"
31 #include "EEPARAMS.h"
32 #include "PARAMS.h"
33
34 C !INPUT/OUTPUT PARAMETERS:
35 C === Routine arguments ===
36 C myThid :: my Thread Id number
37 INTEGER myThid
38
39 C !LOCAL VARIABLES:
40 C === Local variables ===
41 C msgBuf :: Informational/error message buffer
42 C iUnit :: Work variable for IO unit number
43 CHARACTER*(MAX_LEN_MBUF) msgBuf
44 INTEGER iUnit
45
46 C data.pkg namelists
47 NAMELIST /PACKAGES/
48 & useOBCS,
49 & useSHAP_FILT,
50 & useZONAL_FILT,
51 & useOPPS,
52 & usePP81,
53 & useMY82,
54 & useGGL90,
55 & useKPP,
56 & useGMRedi,
57 & useDOWN_SLOPE,
58 & useBBL,
59 c & useCAL,
60 & useEXF,
61 & useBulkForce,
62 & useEBM,
63 & useCheapAML,
64 & useGrdchk,
65 c & useSMOOTH,
66 & useECCO,
67 & useSBO,
68 & useFLT,
69 & usePTRACERS,
70 & useGCHEM,
71 & useRBCS,
72 & useOffLine,
73 & useMATRIX,
74 & useSEAICE,
75 & useSALT_PLUME,
76 & useShelfIce,
77 & useICEFRONT,
78 & useThSIce,
79 & useATM2D,
80 & useAIM,
81 & useLand,
82 & useFizhi,
83 & useGridAlt,
84 & useDiagnostics,
85 & useREGRID,
86 & useLayers,
87 & useMNC,
88 & useRunClock,
89 & useEMBED_FILES,
90 & useMYPACKAGE
91 & ,useKPPinAdMode, useGMrediInAdMode, useSEAICEinAdMode
92 CEOP
93
94 _BEGIN_MASTER(myThid)
95
96 WRITE(msgBuf,'(A)') ' PACKAGES_BOOT: opening data.pkg'
97 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
98 & SQUEEZE_RIGHT , myThid )
99
100
101 CALL OPEN_COPY_DATA_FILE(
102 I 'data.pkg', 'PACKAGES_BOOT',
103 O iUnit,
104 I myThid )
105
106 C-- Default package configuration
107 c useGAD =.FALSE.
108 useOBCS =.FALSE.
109 useSHAP_FILT =.FALSE.
110 useZONAL_FILT =.FALSE.
111 useOPPS =.FALSE.
112 usePP81 =.FALSE.
113 useMY82 =.FALSE.
114 useGGL90 =.FALSE.
115 useKPP =.FALSE.
116 useGMRedi =.FALSE.
117 useDOWN_SLOPE =.FALSE.
118 useBBL =.FALSE.
119 useCAL =.FALSE.
120 useEXF =.FALSE.
121 useBulkForce =.FALSE.
122 useEBM =.FALSE.
123 useCheapAML =.FALSE.
124 useGrdchk =.FALSE.
125 useSMOOTH =.FALSE.
126 useECCO =.FALSE.
127 useSBO =.FALSE.
128 useFLT =.FALSE.
129 usePTRACERS =.FALSE.
130 useGCHEM =.FALSE.
131 useRBCS =.FALSE.
132 useOffLine =.FALSE.
133 useMATRIX =.FALSE.
134 useSEAICE =.FALSE.
135 useSALT_PLUME =.FALSE.
136 useShelfIce =.FALSE.
137 useICEFRONT =.FALSE.
138 useThSIce =.FALSE.
139 useATM2D =.FALSE.
140 useAIM =.FALSE.
141 useLand =.FALSE.
142 useFizhi =.FALSE.
143 useGridAlt =.FALSE.
144 useDiagnostics =.FALSE.
145 useREGRID =.FALSE.
146 useLayers =.FALSE.
147 useMNC =.FALSE.
148 useRunClock =.FALSE.
149 useEMBED_FILES =.FALSE.
150 useMYPACKAGE =.FALSE.
151
152 useKPPinAdMode = .TRUE.
153 useGMrediInAdMode = .TRUE.
154 useSEAICEinAdMode = .TRUE.
155
156 C-- Read parameters from open data file
157 READ(UNIT=iUnit,NML=PACKAGES)
158
159
160 WRITE(msgBuf,'(A)') ' PACKAGES_BOOT: finished reading data.pkg'
161 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
162 & SQUEEZE_RIGHT , myThid )
163
164 C-- Close the open data file
165 CLOSE(iUnit)
166
167 C-- packages with hard-coded switch
168 #ifdef ALLOW_CAL
169 IF (useEXF) useCAL = .TRUE.
170 #endif
171
172 #ifdef ALLOW_PROFILES
173 useCAL = .TRUE.
174 #endif
175
176 #ifdef ALLOW_ECCO
177 useCAL = .TRUE.
178 #endif
179
180 #ifdef ALLOW_SMOOTH
181 useSMOOTH = .TRUE.
182 #endif
183
184 C-- packages with an implied switch
185 useGAD = tempStepping .OR. saltStepping .OR. usePTRACERS
186
187 C-- packages in adjoint mode
188 C-- store value of use$pkg as it will be reset in
189 C-- S/R AUTODIFF_INADMODE_SET_AD
190 useKPPinFwdMode = useKPP
191 useGMrediInFwdMode = useGMredi
192 useSEAICEinFwdMode = useSEAICE
193
194 IF ( useKPPinAdMode.AND..NOT.useKPP ) useKPPinAdMode = .FALSE.
195 IF ( useGMrediinAdMode.AND..NOT.useGMredi )
196 & useGMrediinAdMode = .FALSE.
197 IF ( useSEAICEinAdMode.AND..NOT.useSEAICE )
198 & useSEAICEinAdMode = .FALSE.
199
200 _END_MASTER(myThid)
201
202 C-- Everyone else must wait for the parameters to be loaded
203 _BARRIER
204
205 RETURN
206 END

  ViewVC Help
Powered by ViewVC 1.1.22