/[MITgcm]/MITgcm/pkg/ecco/ecco.h
ViewVC logotype

Annotation of /MITgcm/pkg/ecco/ecco.h

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


Revision 1.25 - (hide annotations) (download)
Mon Apr 3 23:16:38 2017 UTC (7 years, 3 months ago) by ou.wang
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.24: +18 -5 lines
File MIME type: text/plain
Add and update some files related to ECCO v4 release 3. The main changes are
 adding cost_gencost_glbmean.F to compute the costs for global mean time-series of OBP
 & SSH, splitting the profile cost to sample-mean and -anomaly parts,
 updating the cost formula for the proxy sea-ice costs, adding initial velocity
 as part of the control variables, and applying the correction of global
 mean steric height change to OBP.
- cost_gencost_glbmean.F:    compute cost for global mean OBP & SSH time-series
- cost_profiles.F:           add a CPP option (ALLOW_PROFILES_SAMPLESPLIT_COST)
                              that if defined splits the profile cost to
                              sample-mean and sample-anomaly costs.
- cost_gencost_seaicev4.F:   add a CPP option (SEAICECOST_JPL) that if defined
                             reads in the weights for the proxy sea-ice costs.
- cost_gencost_curstomize.F: if ALLOW_PSBAR_STERIC is defined, correct OBP with
                              the global mean steric ssh change to be consistent
                              with SSH.
- ecco_phys.F:               include sterGloH in a common block to be used in
                              cost_gencost_customize.F to correct OBP when
                              ALLOW_PSBAR_STERIC is defined.
- ctrl_map_ini_genarr.F:     add CPP options to include initial UV as the control
                              variables.
- cost_gencost_all.F:        changes related to cost for the global mean time-series.
- cost_gencost_bpv4.F:       minor change related to cost for the global mean time-series.
- ecco_readparms.F:          changes related to cost for the global mean time-series.
- ecco_ad_diff.list:         include the new added cost_gencost_glbmean.F.
- ctrl_get_gen.F:            check if the first seven characters of xx_tauu_file &
                              xx_tauv_filei matches "xx_tauu" or "xx_tauv".
- ecco_cost_final.F:         add modification related to the sample-mean profile cost.
- ecco_cost_init_fixed.F:    initialize the data and weights for the global mean costs
                              for OBP & SSH, if ALLOW_GENCOST_1D is defined.
- profiles_readvector.F:     read in climatology field in the profile file, and mask
                              out the weight where climatology data is flagged. Active
                              if ALLOW_PROFILES_CLIMMASK is defined.
- PROFILES_SIZE.h:           changes related to the split of profile cost to sample-mean
                              and sample-anomaly.
- profiles.h:                changes related to the split of profile cost to sample-mean
                              and sample-anomaly.
- ecco.h:                    changes related to the global mean costs
- profiles_readparms.F:      changes related to the profile cost splitting and masking
                              by climatology data.
- profiles_init_fixed.F:     changes related to the profile cost splitting.
- profiles_init_varia.F:     changes related to the profile cost splitting.

1 ou.wang 1.25 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco.h,v 1.24 2017/03/19 15:16:45 gforget Exp $
2 jmc 1.2 C $Name: $
3 heimbach 1.1
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 gforget 1.3 & eccoiter, ecco_prevcall
62 heimbach 1.1 integer nyears
63     integer nmonths
64     integer ndays
65     integer numsteps
66 gforget 1.3 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 atn 1.16 & ,using_cost_transp
104 gforget 1.3 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 atn 1.16 logical using_cost_transp
115 gforget 1.3
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 heimbach 1.1
126 gforget 1.3 common /ecco_i/
127     & nyearsrec,
128     & nmonsrec,
129     & ndaysrec
130     integer nyearsrec
131     integer nmonsrec
132     integer ndaysrec
133    
134     common /ecco_r/
135 gforget 1.10 & m_eta,m_UE,m_VN,
136 ou.wang 1.25 #ifdef ALLOW_PSBAR_STERIC
137     & sterGloH,
138     #endif
139 atn 1.14 & msktrVolW,msktrVolS,
140 gforget 1.18 & trVol, trHeat, trSalt,
141 gforget 1.8 & VOLsumGlob_0, VOLsumGlob,
142     & RHOsumGlob_0, RHOsumGlob,
143 gforget 1.20 & frame, cosphi, eccoVol_0
144 gforget 1.3 _RL VOLsumGlob_0, VOLsumGlob, RHOsumGlob_0, RHOsumGlob
145 gforget 1.8 _RL frame (1-olx:snx+olx,1-oly:sny+oly )
146     _RL cosphi (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
147 gforget 1.10 _RL m_eta(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy)
148 ou.wang 1.25 #ifdef ALLOW_PSBAR_STERIC
149     _RL sterGloH
150     #endif
151 gforget 1.10 _RL m_UE (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
152     _RL m_VN (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
153 atn 1.15 _RL msktrVolW (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy)
154     _RL msktrVolS (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy)
155 atn 1.14 _RL trVol(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
156     _RL trHeat(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
157     _RL trSalt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
158 gforget 1.20 _RL eccoVol_0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
159 gforget 1.3
160     c file precision and field type
161     common /prec_type_cost/
162     & cost_iprec,
163     & cost_yftype
164    
165     integer cost_iprec
166     character*(2) cost_yftype
167    
168     c Number of User Cost terms:
169     c =============================
170     INTEGER NUSERCOST
171     PARAMETER ( NUSERCOST=10 )
172    
173     c Number of Generic Cost terms:
174     c =============================
175     INTEGER NGENCOST
176 ou.wang 1.25 PARAMETER ( NGENCOST=30 )
177 gforget 1.3
178 gforget 1.4 INTEGER NGENCOST3D
179     #ifdef ALLOW_GENCOST3D
180 ou.wang 1.25 PARAMETER ( NGENCOST3D=6 )
181 gforget 1.4 #else
182     PARAMETER ( NGENCOST3D=0 )
183     #endif
184    
185 gforget 1.7 INTEGER NGENPPROC
186     PARAMETER ( NGENPPROC=10 )
187    
188 ou.wang 1.25 INTEGER N1DDATA
189     PARAMETER ( N1DDATA=300 )
190 gforget 1.7
191     c empty pre/post-processing :
192     c =========================
193     common /ecco_nogencost_c/
194     & no_preproc,
195     & no_preproc_c,
196     & no_posproc,
197 gforget 1.11 & no_posproc_c,
198 gforget 1.12 & clim_preproc,
199     & anom_preproc
200 gforget 1.7 character*(MAX_LEN_FNAM) no_preproc(NGENPPROC)
201     character*(MAX_LEN_FNAM) no_preproc_c(NGENPPROC)
202     character*(MAX_LEN_FNAM) no_posproc(NGENPPROC)
203     character*(MAX_LEN_FNAM) no_posproc_c(NGENPPROC)
204 gforget 1.11 character*(MAX_LEN_FNAM) clim_preproc(NGENPPROC)
205 gforget 1.12 character*(MAX_LEN_FNAM) anom_preproc(NGENPPROC)
206 gforget 1.7
207     common /ecco_nogencost_r/
208     & no_preproc_r, no_posproc_r
209     _RL no_preproc_r(NGENPPROC)
210     _RL no_posproc_r(NGENPPROC)
211    
212     common /ecco_nogencost_i/
213 gforget 1.11 & no_preproc_i, no_posproc_i, clim_preproc_i
214 gforget 1.7 integer no_preproc_i(NGENPPROC)
215     integer no_posproc_i(NGENPPROC)
216 gforget 1.11 integer clim_preproc_i(NGENPPROC)
217 gforget 1.7
218     c gencost common blocs:
219     c =====================
220    
221 gforget 1.3 #ifdef ALLOW_GENCOST_CONTRIBUTION
222     c objf_gencost - gencost user defined contribution
223     common /ecco_gencost_ctrl/
224     & gencost_dummy
225     _RL gencost_dummy(NGENCOST)
226    
227     common /ecco_gencost_r_1/
228 gforget 1.19 & objf_gencost, num_gencost, mult_gencost, gencost_storefld,
229 gforget 1.3 & gencost_barfld, gencost_modfld, gencost_weight,
230 gforget 1.18 & gencost_mskCsurf, gencost_mskWsurf, gencost_mskSsurf,
231 gforget 1.21 & gencost_mskVertical,
232 gforget 1.4 #ifdef ALLOW_GENCOST3D
233     & gencost_bar3d, gencost_mod3d, gencost_wei3d,
234 gforget 1.24 & gencost_mskC, gencost_mskW, gencost_mskS,
235 gforget 1.4 #endif
236 gforget 1.7 & gencost_spmin, gencost_spmax, gencost_spzero,
237 ou.wang 1.25 & gencost_period, gencost_preproc_r, gencost_posproc_r,
238     & gencost_wei1d, gencost_1ddata
239 gforget 1.7
240 gforget 1.3 _RL objf_gencost(nsx,nsy,NGENCOST)
241     _RL num_gencost(nsx,nsy,NGENCOST)
242     _RL mult_gencost(NGENCOST)
243     _RL gencost_spmin(NGENCOST)
244     _RL gencost_spmax(NGENCOST)
245     _RL gencost_spzero(NGENCOST)
246 gforget 1.7 _RL gencost_period(NGENCOST)
247 gforget 1.19 _RL gencost_storefld(1-olx:snx+olx,1-oly:sny+oly,
248     & nsx,nsy,NGENCOST)
249 gforget 1.3 _RL gencost_barfld(1-olx:snx+olx,1-oly:sny+oly,
250     & nsx,nsy,NGENCOST)
251     _RL gencost_modfld(1-olx:snx+olx,1-oly:sny+oly,
252     & nsx,nsy,NGENCOST)
253     _RL gencost_weight(1-olx:snx+olx,1-oly:sny+oly,
254     & nsx,nsy,NGENCOST)
255 gforget 1.18 _RL gencost_mskCsurf(1-olx:snx+olx,1-oly:sny+oly,
256     & nsx,nsy,NGENCOST)
257     _RL gencost_mskWsurf(1-olx:snx+olx,1-oly:sny+oly,
258     & nsx,nsy,NGENCOST)
259     _RL gencost_mskSsurf(1-olx:snx+olx,1-oly:sny+oly,
260     & nsx,nsy,NGENCOST)
261 gforget 1.21 _RL gencost_mskVertical(nr,NGENCOST)
262 gforget 1.4 #ifdef ALLOW_GENCOST3D
263     _RL gencost_bar3d(1-olx:snx+olx,1-oly:sny+oly,
264     & nr,nsx,nsy,NGENCOST3D)
265     _RL gencost_mod3d(1-olx:snx+olx,1-oly:sny+oly,
266     & nr,nsx,nsy,NGENCOST3D)
267     _RL gencost_wei3d(1-olx:snx+olx,1-oly:sny+oly,
268     & nr,nsx,nsy,NGENCOST3D)
269 gforget 1.24 _RL gencost_mskC(1-olx:snx+olx,1-oly:sny+oly,
270     & nr,nsx,nsy,NGENCOST3D)
271     _RL gencost_mskW(1-olx:snx+olx,1-oly:sny+oly,
272     & nr,nsx,nsy,NGENCOST3D)
273     _RL gencost_mskS(1-olx:snx+olx,1-oly:sny+oly,
274     & nr,nsx,nsy,NGENCOST3D)
275 gforget 1.4 #endif
276 gforget 1.7 _RL gencost_preproc_r(NGENPPROC,NGENCOST)
277     _RL gencost_posproc_r(NGENPPROC,NGENCOST)
278 ou.wang 1.25 _RL gencost_wei1d(NGENCOST)
279     _RL gencost_1ddata(N1DDATA, NGENCOST)
280 gforget 1.3
281     common /ecco_gencost_i_1/
282 gforget 1.5 & gencost_nrec, gencost_nrecperiod,
283     & gencost_flag, gencost_outputlevel,
284 gforget 1.3 & gencost_startdate1, gencost_startdate2,
285     & gencost_enddate1, gencost_enddate2,
286 gforget 1.4 & gencost_startdate, gencost_enddate,
287 gforget 1.7 & gencost_pointer3d, gencost_smooth2Ddiffnbt,
288 gforget 1.23 & gencost_preproc_i, gencost_posproc_i,
289 gforget 1.24 & gencost_msk_pointer3d, gencost_itracer
290 gforget 1.3
291     integer gencost_nrec(NGENCOST)
292 gforget 1.5 integer gencost_nrecperiod(NGENCOST)
293 gforget 1.3 integer gencost_flag(NGENCOST)
294 gforget 1.5 integer gencost_outputlevel(NGENCOST)
295 gforget 1.3 integer gencost_startdate1(NGENCOST)
296     integer gencost_startdate2(NGENCOST)
297     integer gencost_startdate(4,NGENCOST)
298     integer gencost_enddate1(NGENCOST)
299     integer gencost_enddate2(NGENCOST)
300     integer gencost_enddate(4,NGENCOST)
301 gforget 1.4 integer gencost_pointer3d(NGENCOST)
302 gforget 1.3 integer gencost_smooth2Ddiffnbt(NGENCOST)
303 gforget 1.7 integer gencost_preproc_i(NGENPPROC,NGENCOST)
304     integer gencost_posproc_i(NGENPPROC,NGENCOST)
305 gforget 1.24 integer gencost_msk_pointer3d(NGENCOST)
306 gforget 1.23 integer gencost_itracer(NGENCOST)
307 gforget 1.3
308     common /ecco_gencost_l_1/
309 gforget 1.6 & gencost_timevaryweight, gencost_barskip,
310 ou.wang 1.25 & using_gencost, gencost_is3d, gencost_msk_is3d,
311     & gencost_is1d
312 gforget 1.3 LOGICAL using_gencost(NGENCOST)
313 gforget 1.4 LOGICAL gencost_is3d(NGENCOST)
314 ou.wang 1.25 LOGICAL gencost_is1d(NGENCOST)
315 gforget 1.24 LOGICAL gencost_msk_is3d(NGENCOST)
316 gforget 1.3 LOGICAL gencost_timevaryweight(NGENCOST)
317 gforget 1.6 LOGICAL gencost_barskip(NGENCOST)
318 gforget 1.3
319     common /ecco_gencost_c/
320     & gencost_name,
321     & gencost_scalefile,
322     & gencost_errfile,
323     & gencost_datafile,
324     & gencost_barfile,
325     & gencost_avgperiod,
326 gforget 1.4 & gencost_preproc,
327 gforget 1.7 & gencost_preproc_c,
328 gforget 1.5 & gencost_posproc,
329 gforget 1.7 & gencost_posproc_c,
330 gforget 1.3 & gencost_mask
331     character*(MAX_LEN_FNAM) gencost_name(NGENCOST)
332     character*(MAX_LEN_FNAM) gencost_scalefile(NGENCOST)
333     character*(MAX_LEN_FNAM) gencost_errfile(NGENCOST)
334     character*(MAX_LEN_FNAM) gencost_datafile(NGENCOST)
335     character*(MAX_LEN_FNAM) gencost_barfile(NGENCOST)
336     character*(5) gencost_avgperiod(NGENCOST)
337 gforget 1.7 character*(MAX_LEN_FNAM) gencost_preproc(NGENPPROC,NGENCOST)
338     character*(MAX_LEN_FNAM) gencost_posproc_c(NGENPPROC,NGENCOST)
339     character*(MAX_LEN_FNAM) gencost_posproc(NGENPPROC,NGENCOST)
340     character*(MAX_LEN_FNAM) gencost_preproc_c(NGENPPROC,NGENCOST)
341 gforget 1.22 character*(MAX_LEN_FNAM) gencost_mask(NGENCOST)
342 gforget 1.3
343     #endif /* ALLOW_GENCOST_CONTRIBUTION */
344 heimbach 1.1
345     c ==================================================================
346     c END OF HEADER ECCO
347     c ==================================================================
348    
349    

  ViewVC Help
Powered by ViewVC 1.1.22