/[MITgcm]/MITgcm_contrib/ecco_utils/ecco_v4_release4_devel/code/ecco.h
ViewVC logotype

Contents of /MITgcm_contrib/ecco_utils/ecco_v4_release4_devel/code/ecco.h

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


Revision 1.1 - (show annotations) (download)
Mon Sep 30 20:28:05 2019 UTC (5 years, 9 months ago) by ou.wang
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
Create v4r3 repository

1 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco.h,v 1.25 2017/04/03 23:16:38 ou.wang Exp $
2 C $Name: $
3
4 c ==================================================================
5 c HEADER ECCO
6 c ==================================================================
7 c
8 c o Header for the ECCO project.
9 c
10 c started: Christian Eckert eckert@mit.edu 23-Feb-1999
11 c
12 c changed: Christian Eckert eckert@mit.edu
13 c
14 c
15 c ==================================================================
16 c HEADER ECCO
17 c ==================================================================
18
19 c Version of the release and versions of used packages:
20 c =====================================================
21 c
22 c eccoVersion - ecco release version.
23 c usesCalendarVersion - version of the calendar that has to
24 c be used.
25 c usesExternalForcingVersion - version of the external forcing that
26 c has to be used.
27 c usesAdjointSupportVersion - version of the adjoint support routines
28 c that have to be used.
29 c usesOptimizationVersion - version of the oof-line optimization
30 c that has to be used.
31
32 character*(5) eccoVersion
33 character*(5) eccoUsesCalVersion
34 character*(5) eccoUsesExfVersion
35 character*(5) eccoUsesAdsuppVersion
36 character*(5) eccoUsesOptimVersion
37
38 parameter( eccoVersion = '0.1.0' )
39 parameter( eccoUsesCalVersion = '0.1.4' )
40 parameter( eccoUsesExfVersion = '0.1.1' )
41 parameter( eccoUsesAdsuppVersion = '0.1.0' )
42 parameter( eccoUsesOptimVersion = '2.1.0' )
43
44
45 c Experiment name:
46 c ================
47
48 common /ecco_c/
49 & expId
50 character*(10) expId
51
52
53 c Integration information:
54 c ========================
55 c
56 c nyears - number of calendar years that are affected by the
57 c current integration.
58
59 common /ecco_i/
60 & nyears, nmonths, ndays, numsteps,
61 & eccoiter, ecco_prevcall
62 integer nyears
63 integer nmonths
64 integer ndays
65 integer numsteps
66 integer eccoiter
67 integer ecco_prevcall
68
69 c Averaging counters:
70 c ===================
71 c
72 c sum1day - counter for the daily averaging
73 c sum1mon - counter for the monthly averaging
74 c dayrec - number of averaged surface pressure records.
75 c monrec - number of averaged theta and salinity records.
76
77 common /average_i/
78 & sum1day,sum1mon,sum1year,
79 & dayrec,monrec,yearrec
80 integer sum1day
81 integer sum1mon
82 integer sum1year
83 integer dayrec
84 integer monrec
85 integer yearrec
86
87 c Flags used in the model-data comparison:
88 c ========================================
89 c
90 c using_ers - flag that indicates the use of ERS data
91
92 common /ecco_cost_data_flags/
93 & using_mdt,
94 & using_tpj,
95 & using_topex,
96 & using_ers,
97 & using_gfo,
98 & using_cost_altim,
99 & using_cost_bp,
100 & using_cost_sst,
101 & using_cost_scat,
102 & using_cost_seaice
103 & ,using_cost_transp
104 logical using_mdt
105 logical using_tpj
106 logical using_topex
107 logical using_ers
108 logical using_gfo
109 logical using_cost_altim
110 logical using_cost_bp
111 logical using_cost_sst
112 logical using_cost_scat
113 logical using_cost_seaice
114 logical using_cost_transp
115
116 c Record counters relevant for the cost function evaluation.
117 c ==========================================================
118 c
119 c nyearsrec - number of yearly records that will be generated by
120 c the current model integration.
121 c nmonsrec - number of monthly records that will be generated by
122 c the current model integration.
123 c ndaysrec - number of daily records that will be generated by
124 c the current model integration.
125
126 common /ecco_i/
127 & nyearsrec,
128 & nmonsrec,
129 & ndaysrec
130 integer nyearsrec
131 integer nmonsrec
132 integer ndaysrec
133
134 common /ecco_r/
135 & m_eta,m_UE,m_VN,
136 & m_bp,
137 #ifdef ALLOW_PSBAR_STERIC
138 & sterGloH,
139 #endif
140 #ifdef ATMOSPHERIC_LOADING
141 #ifdef ALLOW_IB_CORR
142 & ploadbar,
143 & AREAsumGlob, PLOADsumGlob,
144 & m_bp_nopabar,
145 & m_eta_dyn, m_eta_ib,
146 #endif
147 #endif
148 & msktrVolW,msktrVolS,
149 & trVol, trHeat, trSalt,
150 & VOLsumGlob_0, VOLsumGlob,
151 & RHOsumGlob_0, RHOsumGlob,
152 & frame, cosphi, eccoVol_0
153 _RL VOLsumGlob_0, VOLsumGlob, RHOsumGlob_0, RHOsumGlob
154 _RL frame (1-olx:snx+olx,1-oly:sny+oly )
155 _RL cosphi (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
156 _RL m_eta(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
157 _RL m_bp(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
158 #ifdef ALLOW_PSBAR_STERIC
159 _RL sterGloH
160 #endif
161 #ifdef ATMOSPHERIC_LOADING
162 #ifdef ALLOW_IB_CORR
163 _RL ploadbar, AREAsumGlob, PLOADsumGlob
164 _RL m_bp_nopabar(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
165 _RL m_eta_dyn(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
166 _RL m_eta_ib(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
167 #endif
168 #endif
169
170 _RL m_UE (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
171 _RL m_VN (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
172 _RL msktrVolW (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy)
173 _RL msktrVolS (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy)
174 _RL trVol(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
175 _RL trHeat(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
176 _RL trSalt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
177 _RL eccoVol_0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
178
179 c file precision and field type
180 common /prec_type_cost/
181 & cost_iprec,
182 & cost_yftype
183
184 integer cost_iprec
185 character*(2) cost_yftype
186
187 c Number of User Cost terms:
188 c =============================
189 INTEGER NUSERCOST
190 PARAMETER ( NUSERCOST=10 )
191
192 c Number of Generic Cost terms:
193 c =============================
194 INTEGER NGENCOST
195 PARAMETER ( NGENCOST=40 )
196
197 INTEGER NGENCOST3D
198 #ifdef ALLOW_GENCOST3D
199 PARAMETER ( NGENCOST3D=6 )
200 #else
201 PARAMETER ( NGENCOST3D=0 )
202 #endif
203
204 INTEGER NGENPPROC
205 PARAMETER ( NGENPPROC=10 )
206
207 INTEGER N1DDATA
208 PARAMETER ( N1DDATA=500 )
209
210 c empty pre/post-processing :
211 c =========================
212 common /ecco_nogencost_c/
213 & no_preproc,
214 & no_preproc_c,
215 & no_posproc,
216 & no_posproc_c,
217 & clim_preproc,
218 & anom_preproc
219 character*(MAX_LEN_FNAM) no_preproc(NGENPPROC)
220 character*(MAX_LEN_FNAM) no_preproc_c(NGENPPROC)
221 character*(MAX_LEN_FNAM) no_posproc(NGENPPROC)
222 character*(MAX_LEN_FNAM) no_posproc_c(NGENPPROC)
223 character*(MAX_LEN_FNAM) clim_preproc(NGENPPROC)
224 character*(MAX_LEN_FNAM) anom_preproc(NGENPPROC)
225
226 common /ecco_nogencost_r/
227 & no_preproc_r, no_posproc_r
228 _RL no_preproc_r(NGENPPROC)
229 _RL no_posproc_r(NGENPPROC)
230
231 common /ecco_nogencost_i/
232 & no_preproc_i, no_posproc_i, clim_preproc_i
233 integer no_preproc_i(NGENPPROC)
234 integer no_posproc_i(NGENPPROC)
235 integer clim_preproc_i(NGENPPROC)
236
237 c gencost common blocs:
238 c =====================
239
240 #ifdef ALLOW_GENCOST_CONTRIBUTION
241 c objf_gencost - gencost user defined contribution
242 common /ecco_gencost_ctrl/
243 & gencost_dummy
244 _RL gencost_dummy(NGENCOST)
245
246 common /ecco_gencost_r_1/
247 & objf_gencost, num_gencost, mult_gencost, gencost_storefld,
248 & gencost_barfld, gencost_modfld, gencost_weight,
249 & gencost_mskCsurf, gencost_mskWsurf, gencost_mskSsurf,
250 & gencost_mskVertical,
251 #ifdef ALLOW_GENCOST3D
252 & gencost_bar3d, gencost_mod3d, gencost_wei3d,
253 & gencost_mskC, gencost_mskW, gencost_mskS,
254 #endif
255 & gencost_spmin, gencost_spmax, gencost_spzero,
256 & gencost_period, gencost_preproc_r, gencost_posproc_r,
257 & gencost_wei1d, gencost_1ddata
258
259 _RL objf_gencost(nsx,nsy,NGENCOST)
260 _RL num_gencost(nsx,nsy,NGENCOST)
261 _RL mult_gencost(NGENCOST)
262 _RL gencost_spmin(NGENCOST)
263 _RL gencost_spmax(NGENCOST)
264 _RL gencost_spzero(NGENCOST)
265 _RL gencost_period(NGENCOST)
266 _RL gencost_storefld(1-olx:snx+olx,1-oly:sny+oly,
267 & nsx,nsy,NGENCOST)
268 _RL gencost_barfld(1-olx:snx+olx,1-oly:sny+oly,
269 & nsx,nsy,NGENCOST)
270 _RL gencost_modfld(1-olx:snx+olx,1-oly:sny+oly,
271 & nsx,nsy,NGENCOST)
272 _RL gencost_weight(1-olx:snx+olx,1-oly:sny+oly,
273 & nsx,nsy,NGENCOST)
274 _RL gencost_mskCsurf(1-olx:snx+olx,1-oly:sny+oly,
275 & nsx,nsy,NGENCOST)
276 _RL gencost_mskWsurf(1-olx:snx+olx,1-oly:sny+oly,
277 & nsx,nsy,NGENCOST)
278 _RL gencost_mskSsurf(1-olx:snx+olx,1-oly:sny+oly,
279 & nsx,nsy,NGENCOST)
280 _RL gencost_mskVertical(nr,NGENCOST)
281 #ifdef ALLOW_GENCOST3D
282 _RL gencost_bar3d(1-olx:snx+olx,1-oly:sny+oly,
283 & nr,nsx,nsy,NGENCOST3D)
284 _RL gencost_mod3d(1-olx:snx+olx,1-oly:sny+oly,
285 & nr,nsx,nsy,NGENCOST3D)
286 _RL gencost_wei3d(1-olx:snx+olx,1-oly:sny+oly,
287 & nr,nsx,nsy,NGENCOST3D)
288 _RL gencost_mskC(1-olx:snx+olx,1-oly:sny+oly,
289 & nr,nsx,nsy,NGENCOST3D)
290 _RL gencost_mskW(1-olx:snx+olx,1-oly:sny+oly,
291 & nr,nsx,nsy,NGENCOST3D)
292 _RL gencost_mskS(1-olx:snx+olx,1-oly:sny+oly,
293 & nr,nsx,nsy,NGENCOST3D)
294 #endif
295 _RL gencost_preproc_r(NGENPPROC,NGENCOST)
296 _RL gencost_posproc_r(NGENPPROC,NGENCOST)
297 _RL gencost_wei1d(NGENCOST)
298 _RL gencost_1ddata(N1DDATA, NGENCOST)
299
300 common /ecco_gencost_i_1/
301 & gencost_nrec, gencost_nrecperiod,
302 & gencost_flag, gencost_outputlevel,
303 & gencost_startdate1, gencost_startdate2,
304 & gencost_enddate1, gencost_enddate2,
305 & gencost_startdate, gencost_enddate,
306 & gencost_pointer3d, gencost_smooth2Ddiffnbt,
307 & gencost_preproc_i, gencost_posproc_i,
308 & gencost_msk_pointer3d, gencost_itracer
309
310 integer gencost_nrec(NGENCOST)
311 integer gencost_nrecperiod(NGENCOST)
312 integer gencost_flag(NGENCOST)
313 integer gencost_outputlevel(NGENCOST)
314 integer gencost_startdate1(NGENCOST)
315 integer gencost_startdate2(NGENCOST)
316 integer gencost_startdate(4,NGENCOST)
317 integer gencost_enddate1(NGENCOST)
318 integer gencost_enddate2(NGENCOST)
319 integer gencost_enddate(4,NGENCOST)
320 integer gencost_pointer3d(NGENCOST)
321 integer gencost_smooth2Ddiffnbt(NGENCOST)
322 integer gencost_preproc_i(NGENPPROC,NGENCOST)
323 integer gencost_posproc_i(NGENPPROC,NGENCOST)
324 integer gencost_msk_pointer3d(NGENCOST)
325 integer gencost_itracer(NGENCOST)
326
327 common /ecco_gencost_l_1/
328 & gencost_timevaryweight, gencost_barskip,
329 & using_gencost, gencost_is3d, gencost_msk_is3d,
330 & gencost_is1d
331 LOGICAL using_gencost(NGENCOST)
332 LOGICAL gencost_is3d(NGENCOST)
333 LOGICAL gencost_is1d(NGENCOST)
334 LOGICAL gencost_msk_is3d(NGENCOST)
335 LOGICAL gencost_timevaryweight(NGENCOST)
336 LOGICAL gencost_barskip(NGENCOST)
337
338 common /ecco_gencost_c/
339 & gencost_name,
340 & gencost_scalefile,
341 & gencost_errfile,
342 & gencost_datafile,
343 & gencost_barfile,
344 & gencost_avgperiod,
345 & gencost_preproc,
346 & gencost_preproc_c,
347 & gencost_posproc,
348 & gencost_posproc_c,
349 & gencost_mask
350 character*(MAX_LEN_FNAM) gencost_name(NGENCOST)
351 character*(MAX_LEN_FNAM) gencost_scalefile(NGENCOST)
352 character*(MAX_LEN_FNAM) gencost_errfile(NGENCOST)
353 character*(MAX_LEN_FNAM) gencost_datafile(NGENCOST)
354 character*(MAX_LEN_FNAM) gencost_barfile(NGENCOST)
355 character*(5) gencost_avgperiod(NGENCOST)
356 character*(MAX_LEN_FNAM) gencost_preproc(NGENPPROC,NGENCOST)
357 character*(MAX_LEN_FNAM) gencost_posproc_c(NGENPPROC,NGENCOST)
358 character*(MAX_LEN_FNAM) gencost_posproc(NGENPPROC,NGENCOST)
359 character*(MAX_LEN_FNAM) gencost_preproc_c(NGENPPROC,NGENCOST)
360 character*(MAX_LEN_FNAM) gencost_mask(NGENCOST)
361
362 #endif /* ALLOW_GENCOST_CONTRIBUTION */
363
364 c ==================================================================
365 c END OF HEADER ECCO
366 c ==================================================================
367
368

  ViewVC Help
Powered by ViewVC 1.1.22