/[MITgcm]/MITgcm/pkg/ecco/ecco_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/ecco/ecco_readparms.F

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


Revision 1.43 - (hide annotations) (download)
Tue Nov 3 03:35:23 2009 UTC (14 years, 7 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint62a, checkpoint62, checkpoint62b, checkpoint61z, checkpoint61y
Changes since 1.42: +11 -3 lines
MDT/SLA cost function terms for ECCO version 4 -- initial check-in

1 gforget 1.43 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_readparms.F,v 1.42 2009/10/26 00:41:23 gforget Exp $
2 jmc 1.34 C $Name: $
3 heimbach 1.1
4 heimbach 1.7 #include "COST_CPPOPTIONS.h"
5 heimbach 1.1
6 heimbach 1.4 subroutine ecco_readparms( mythid )
7 heimbach 1.1
8     c ==================================================================
9     c SUBROUTINE ecco_readparms
10     c ==================================================================
11     c
12 heimbach 1.7 c o This routine initialises the package cost.
13     c started: Ralf Giering 18-Jan-2001
14 heimbach 1.1 c
15     c ==================================================================
16     c SUBROUTINE ecco_readparms
17     c ==================================================================
18    
19     implicit none
20    
21     c == global variables ==
22    
23 heimbach 1.7 #include "EEPARAMS.h"
24 heimbach 1.1 #include "SIZE.h"
25 heimbach 1.7 #include "GRID.h"
26 heimbach 1.1 #include "PARAMS.h"
27 heimbach 1.7
28     #include "ecco_cost.h"
29 heimbach 1.1
30     c == routine arguments ==
31    
32     integer mythid
33    
34     c == local variables ==
35 heimbach 1.9 C msgBuf - Informational/error meesage buffer
36     C iUnit - Work variable for IO unit number
37     CHARACTER*(MAX_LEN_MBUF) msgBuf
38 gforget 1.30 INTEGER k, iUnit, num_file, num_var
39 heimbach 1.1
40 heimbach 1.7 c == end of interface ==
41 heimbach 1.1
42 heimbach 1.7 c-- Read the namelist input.
43 jmc 1.34 namelist /ecco_cost_nml/
44 heimbach 1.7 & data_errfile,
45 heimbach 1.36 & tbarfile, sbarfile,sstbarfile,
46 heimbach 1.33 & psbarfile, bpbarfile,
47 heimbach 1.7 & ubarfile, vbarfile, wbarfile,
48     & tauxbarfile, tauybarfile,
49     & hfluxbarfile, sfluxbarfile,
50 heimbach 1.37 & costTranspDataFile, topexmeanfile,
51     & using_topex, using_ers, using_gfo,
52 heimbach 1.7 & topexstartdate1, topexstartdate2,
53 heimbach 1.37 & topexperiod, topexfile, tpTimeMaskFile,
54     & topexintercept, topexslope, ersTimeMaskFile,
55     & ersstartdate1, ersstartdate2, gfoTimeMaskFile,
56 heimbach 1.7 & ersperiod, ersfile,
57 heimbach 1.21 & ersintercept, ersslope,
58 heimbach 1.19 & gfostartdate1, gfostartdate2,
59     & gfoperiod, gfofile,
60 heimbach 1.21 & gfointercept, gfoslope,
61 jmc 1.34 & scatstartdate1, scatstartdate2,
62 heimbach 1.7 & scatperiod, scatxdatfile, scatydatfile,
63     & scatx_errfile, scaty_errfile,
64 gforget 1.43 & ssh_errfile,
65     & sshv4cost_errfile, sshv4cost_errfactor,
66 heimbach 1.26 & tp_errfile, ers_errfile, gfo_errfile,
67 heimbach 1.7 & tmistartdate1, tmistartdate2, tmidatfile,
68 jmc 1.34 & sststartdate1, sststartdate2, sstdatfile,
69     & sssstartdate1, sssstartdate2, sssdatfile,
70     & bpstartdate1, bpstartdate2, bpdatfile,
71 heimbach 1.37 & tdatfile, sdatfile, ctdtfile, ctdsfile,
72     & ctdtclimfile, ctdsclimfile, xbtfile,
73 heimbach 1.7 & argotstartdate1, argotstartdate2, argotfile,
74     & argosstartdate1, argosstartdate2, argosfile,
75     & udriftfile, vdriftfile,
76     & udrifterrfile, vdrifterrfile,
77     & curmtrufile,curmtrvfile,
78     & salterrfile, temperrfile, velerrfile,
79 heimbach 1.15 & salt0errfile, temp0errfile, vel0errfile,
80 gforget 1.42 & ssterrfile, ssserrfile, bperrfile,
81 heimbach 1.7 & hflux_errfile, sflux_errfile,
82     & tauu_errfile, tauv_errfile,
83 jmc 1.34 & atemp_errfile, aqh_errfile,
84 heimbach 1.13 & precip_errfile, swflux_errfile, swdown_errfile,
85 heimbach 1.28 & lwflux_errfile, lwdown_errfile, evap_errfile,
86     & snowprecip_errfile, apressure_errfile,
87 heimbach 1.7 & uwind_errfile, vwind_errfile,
88     & geoid_errfile, geoid_covariancefile,
89 gforget 1.29 & bottomdrag_errfile,edtau_errfile,
90 gforget 1.35 & kapgm_errfile,kapredi_errfile,diffkr_errfile,
91 gforget 1.30 & gencost_datafile, gencost_errfile,
92 heimbach 1.7 & mult_hflux, mult_sflux, mult_tauu, mult_tauv,
93 heimbach 1.20 & mult_hfluxmm, mult_sfluxmm,
94 jmc 1.34 & mult_atemp, mult_aqh,
95 heimbach 1.13 & mult_precip, mult_swflux, mult_swdown,
96 heimbach 1.28 & mult_lwflux, mult_lwdown, mult_evap,
97     & mult_snowprecip, mult_apressure,
98 heimbach 1.10 & mult_uwind, mult_vwind,
99 gforget 1.43 & mult_hmean, mult_h, mult_sshv4cost,
100 jmc 1.34 & mult_tp, mult_ers, mult_gfo,
101 heimbach 1.25 & mult_temp, mult_salt,
102 heimbach 1.33 & mult_tmi, mult_sst, mult_sss, mult_bp,
103 jmc 1.34 & mult_ctdt, mult_ctds,
104     & mult_ctdtclim, mult_ctdsclim,
105 heimbach 1.7 & mult_xbt, mult_drift,
106     & mult_argot, mult_argos,
107     & mult_scatx, mult_scaty,
108     & mult_sdrift, mult_tdrift, mult_wdrift,
109     & mult_temp0, mult_salt0,
110     & mult_obcsn, mult_obcss,
111     & mult_obcsw, mult_obcse, mult_obcsvol,
112     & mult_curmtr, mult_ageos,
113 gforget 1.35 & mult_kapgm, mult_kapredi, mult_diffkr,
114 gforget 1.29 & mult_edtau, mult_bottomdrag,
115 heimbach 1.32 & mult_gencost, mult_transp,
116 heimbach 1.18 & mult_smooth_ic, mult_smooth_bc,
117 heimbach 1.10 & whflux0, wsflux0, wtau0,
118 gforget 1.29 & wbottomdrag0,
119 jmc 1.34 & watemp0, waqh0,
120 heimbach 1.13 & wprecip0, wswflux0, wswdown0, wwind0,
121 heimbach 1.28 & wsnowprecip0, wlwflux0, wlwdown0, wevap0,
122     & wapressure0, wdiffkr0, wkapgm0, wedtau0,
123 gforget 1.35 & wkapredi0, wmean_hflux, wmean_sflux, wmean_tau,
124 jmc 1.34 & wmean_atemp, wmean_aqh, wmean_precip,
125 heimbach 1.13 & wmean_swflux, wmean_swdown, wmean_wind,
126 heimbach 1.28 & wmean_lwflux, wmean_lwdown, wmean_evap,
127     & wmean_snowprecip, wmean_apressure,
128 heimbach 1.7 & cost_iprec, cost_yftype
129 heimbach 1.1
130     _BEGIN_MASTER( myThid )
131    
132 heimbach 1.7 c-- Set default values.
133     data_errfile = ' '
134     tbarfile = 'tbar'
135     sbarfile = 'sbar'
136 jmc 1.38 sstbarfile = 'sstbar'
137 heimbach 1.7 psbarfile = 'psbar'
138 heimbach 1.33 bpbarfile = 'bpbar'
139 heimbach 1.7 ubarfile = 'ubar'
140     vbarfile = 'vbar'
141     wbarfile = 'wbar'
142     tauxbarfile = 'tauxbar'
143     tauybarfile = 'tauybar'
144     hfluxbarfile = 'hfluxbar'
145     sfluxbarfile = 'sfluxbar'
146 heimbach 1.31 costTranspDataFile = ' '
147 heimbach 1.7 using_topex = .false.
148     topexstartdate1 = 0
149     topexstartdate2 = 0
150     topexperiod = 0. _d 0
151 heimbach 1.21 topexintercept = 0. _d 0
152     topexslope = 0. _d 0
153 heimbach 1.7 topexfile = ' '
154     topexmeanfile = ' '
155     using_ers = .false.
156     ersstartdate1 = 0
157     ersstartdate2 = 0
158     ersperiod = 0. _d 0
159 heimbach 1.21 ersintercept = 0. _d 0
160     ersslope = 0. _d 0
161 heimbach 1.7 ersfile = ' '
162 heimbach 1.19 using_gfo = .false.
163     gfostartdate1 = 0
164     gfostartdate2 = 0
165     gfoperiod = 0. _d 0
166 heimbach 1.21 gfointercept = 0. _d 0
167     gfoslope = 0. _d 0
168 heimbach 1.19 gfofile = ' '
169 heimbach 1.7 scatstartdate1 = 0
170     scatstartdate2 = 0
171     scatperiod = 0. _d 0
172     scatxdatfile = ' '
173     scatydatfile = ' '
174     ssh_errfile = ' '
175 heimbach 1.26 tp_errfile = ' '
176     ers_errfile = ' '
177     gfo_errfile = ' '
178 heimbach 1.7 scatx_errfile = ' '
179     scaty_errfile = ' '
180     tmistartdate1 = 0
181     tmistartdate2 = 0
182     tmidatfile = ' '
183     sststartdate1 = 0
184     sststartdate2 = 0
185     sstdatfile = ' '
186     sssstartdate1 = 0
187     sssstartdate2 = 0
188     sssdatfile = ' '
189 heimbach 1.33 bpstartdate1 = 0
190     bpstartdate2 = 0
191     bpdatfile = ' '
192 heimbach 1.7 tdatfile = ' '
193     sdatfile = ' '
194     ctdtfile = ' '
195     ctdsfile = ' '
196     ctdtclimfile = ' '
197     ctdsclimfile = ' '
198     curmtrufile = ' '
199     curmtrvfile = ' '
200     xbtfile = ' '
201     argotstartdate1 = 0
202     argotstartdate2 = 0
203     argotfile = ' '
204     argosstartdate1 = 0
205     argosstartdate2 = 0
206     argosfile = ' '
207     udriftfile = ' '
208     vdriftfile = ' '
209     udrifterrfile = ' '
210     vdrifterrfile = ' '
211     salterrfile = ' '
212     temperrfile = ' '
213     velerrfile = ' '
214 heimbach 1.16 salt0errfile = ' '
215     temp0errfile = ' '
216     vel0errfile = ' '
217 gforget 1.41 ssterrfile = ' '
218     ssserrfile = ' '
219 gforget 1.42 bperrfile = ' '
220 heimbach 1.7 hflux_errfile = ' '
221     sflux_errfile = ' '
222     tauu_errfile = ' '
223     tauv_errfile = ' '
224     atemp_errfile = ' '
225     aqh_errfile = ' '
226 heimbach 1.10 precip_errfile = ' '
227 heimbach 1.11 swflux_errfile = ' '
228 heimbach 1.13 swdown_errfile = ' '
229 heimbach 1.28 lwflux_errfile = ' '
230     lwdown_errfile = ' '
231     evap_errfile = ' '
232     snowprecip_errfile = ' '
233     apressure_errfile = ' '
234 heimbach 1.7 uwind_errfile = ' '
235     vwind_errfile = ' '
236     geoid_errfile = ' '
237     geoid_covariancefile = ' '
238 gforget 1.29 bottomdrag_errfile = ' '
239     edtau_errfile = ' '
240     kapgm_errfile = ' '
241 heimbach 1.37 kapredi_errfile = ' '
242 gforget 1.29 diffkr_errfile = ' '
243 gforget 1.30 do k=1,NGENCOST
244 heimbach 1.37 gencost_datafile(k) = ' '
245     gencost_errfile(k) = ' '
246 gforget 1.30 enddo
247 gforget 1.43 do k=1,NSSHV4COST
248     sshv4cost_errfile(k) = ' '
249     sshv4cost_errfactor(k)= 1. _d 0
250     enddo
251 heimbach 1.37 tpTimeMaskFile = ' '
252     ersTimeMaskFile = ' '
253     gfoTimeMaskFile = ' '
254    
255 heimbach 1.7 mult_hflux = 0. _d 0
256     mult_sflux = 0. _d 0
257 heimbach 1.20 mult_hfluxmm = 0. _d 0
258     mult_sfluxmm = 0. _d 0
259 heimbach 1.7 mult_tauu = 0. _d 0
260     mult_tauv = 0. _d 0
261     mult_atemp = 0. _d 0
262     mult_aqh = 0. _d 0
263 heimbach 1.10 mult_precip = 0. _d 0
264 heimbach 1.11 mult_swflux = 0. _d 0
265 heimbach 1.13 mult_swdown = 0. _d 0
266 heimbach 1.28 mult_lwflux = 0. _d 0
267     mult_lwdown = 0. _d 0
268     mult_evap = 0. _d 0
269     mult_snowprecip = 0. _d 0
270     mult_apressure = 0. _d 0
271 heimbach 1.7 mult_uwind = 0. _d 0
272     mult_vwind = 0. _d 0
273     mult_hmean = 0. _d 0
274 heimbach 1.25 mult_h = 1. _d 0
275     mult_tp = 0. _d 0
276     mult_ers = 0. _d 0
277     mult_gfo = 0. _d 0
278 heimbach 1.7 mult_temp = 0. _d 0
279     mult_salt = 0. _d 0
280     mult_temp0 = 0. _d 0
281     mult_salt0 = 0. _d 0
282     mult_tmi = 0. _d 0
283     mult_sst = 0. _d 0
284     mult_sss = 0. _d 0
285 heimbach 1.33 mult_bp = 0. _d 0
286 heimbach 1.7 mult_ctdt = 0. _d 0
287     mult_ctds = 0. _d 0
288     mult_ctdtclim = 0. _d 0
289     mult_ctdsclim = 0. _d 0
290     mult_xbt = 0. _d 0
291     mult_argot = 0. _d 0
292     mult_argos = 0. _d 0
293     mult_drift = 0. _d 0
294     mult_tdrift = 0. _d 0
295     mult_sdrift = 0. _d 0
296     mult_wdrift = 0. _d 0
297     mult_scatx = 0. _d 0
298     mult_scaty = 0. _d 0
299     mult_obcsn = 0. _d 0
300     mult_obcss = 0. _d 0
301     mult_obcsw = 0. _d 0
302     mult_obcse = 0. _d 0
303     mult_obcsvol = 0. _d 0
304     mult_ageos = 0. _d 0
305     mult_curmtr = 0. _d 0
306     mult_kapgm = 0. _d 0
307 gforget 1.35 mult_kapredi = 0. _d 0
308 heimbach 1.7 mult_diffkr = 0. _d 0
309 gforget 1.29 mult_edtau = 0. _d 0
310     mult_bottomdrag = 0. _d 0
311 gforget 1.30 do k=1,NGENCOST
312     mult_gencost(k) = 0. _d 0
313     enddo
314 gforget 1.43 do k=1,NSSHV4COST
315     mult_sshv4cost(k) = 0. _d 0
316     enddo
317 heimbach 1.18 mult_smooth_ic = 0. _d 0
318     mult_smooth_bc = 0. _d 0
319 heimbach 1.32 mult_transp = 0. _d 0
320 heimbach 1.10 watemp0 = 0. _d 0
321     waqh0 = 0. _d 0
322     wprecip0 = 0. _d 0
323 heimbach 1.11 wswflux0 = 0. _d 0
324 heimbach 1.13 wswdown0 = 0. _d 0
325 heimbach 1.28 wlwflux0 = 0. _d 0
326     wlwdown0 = 0. _d 0
327     wevap0 = 0. _d 0
328     wsnowprecip0 = 0. _d 0
329     wapressure0 = 0. _d 0
330 heimbach 1.10 wwind0 = 0. _d 0
331 heimbach 1.24 wdiffkr0 = 1. _d 0
332     wkapgm0 = 1. _d 0
333 gforget 1.35 wkapredi0 = 1. _d 0
334 heimbach 1.24 wedtau0 = 1. _d 0
335 heimbach 1.10 whflux0 = 0. _d 0
336     wsflux0 = 0. _d 0
337     wtau0 = 0. _d 0
338 gforget 1.29 wbottomdrag0 = 1. _d 0
339 heimbach 1.12 wmean_atemp = 0. _d 0
340     wmean_aqh = 0. _d 0
341     wmean_precip = 0. _d 0
342     wmean_swflux = 0. _d 0
343 heimbach 1.13 wmean_swdown = 0. _d 0
344 heimbach 1.28 wmean_lwflux = 0. _d 0
345     wmean_lwdown = 0. _d 0
346     wmean_evap = 0. _d 0
347     wmean_snowprecip = 0. _d 0
348     wmean_apressure = 0. _d 0
349 heimbach 1.12 wmean_wind = 0. _d 0
350     wmean_hflux = 0. _d 0
351     wmean_sflux = 0. _d 0
352     wmean_tau = 0. _d 0
353 jmc 1.39 cost_iprec = precFloat32
354     cost_yftype = 'RL'
355 heimbach 1.7
356 heimbach 1.9 c-- Next, read the cost data file.
357     WRITE(msgBuf,'(A)') 'ECCO_READPARMS: opening data.ecco'
358     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
359     & SQUEEZE_RIGHT , 1)
360    
361     CALL OPEN_COPY_DATA_FILE(
362     I 'data.ecco', 'ECCO_READPARMS',
363     O iUnit,
364     I myThid )
365    
366     READ( iUnit, nml = ecco_cost_nml )
367    
368     WRITE(msgBuf,'(A)') 'ECCO_READPARMS: finished reading data.ecco'
369     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
370     & SQUEEZE_RIGHT , 1)
371 heimbach 1.7
372 heimbach 1.9 CLOSE( iUnit )
373 heimbach 1.1
374 jmc 1.39 C-- Check parameters:
375     IF ( cost_yftype.NE.'RL' ) THEN
376     STOP 'ABNORMAL END: S/R ECCO_READPARMS: invalid cost_yftype'
377     ENDIF
378    
379 heimbach 1.8 #ifdef ALLOW_CAL
380     c-- Get the complete dates of the ...
381     c-- ... SST data.
382 heimbach 1.27 WRITE(msgBuf,'(A)') 'ECCO_READPARMS: start assigning cost dates'
383     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
384     & SQUEEZE_RIGHT , 1)
385 heimbach 1.33 c-- ... SST data.
386 mlosch 1.40 if ( sstdatfile .ne. ' ' )
387     & call cal_FullDate( sststartdate1, sststartdate2,
388     & sststartdate, mythid )
389 heimbach 1.8 c-- ... TMI data.
390 mlosch 1.40 if ( tmidatfile .ne. ' ' )
391     & call cal_FullDate( tmistartdate1, tmistartdate2,
392     & tmistartdate, mythid )
393 heimbach 1.8 c-- ... SSS data.
394 mlosch 1.40 if ( sssdatfile .ne. ' ' )
395     & call cal_FullDate( sssstartdate1, sssstartdate2,
396     & sssstartdate, mythid )
397 heimbach 1.33 c-- ... BP data.
398 mlosch 1.40 if ( bpdatfile .ne. ' ' )
399     & call cal_FullDate( bpstartdate1, bpstartdate2,
400     & bpstartdate, mythid )
401 heimbach 1.8 c-- ... T/P data.
402 mlosch 1.40 if ( topexfile .ne. ' ' )
403     & call cal_FullDate( topexstartdate1, topexstartdate2,
404 heimbach 1.8 & topexstartdate, mythid )
405     c-- ... ERS data.
406 mlosch 1.40 if ( ersfile .ne. ' ' )
407     & call cal_FullDate( ersstartdate1, ersstartdate2,
408     & ersstartdate, mythid )
409 heimbach 1.19 c-- ... GFO data.
410 mlosch 1.40 if ( gfofile .ne. ' ' )
411     & call cal_FullDate( gfostartdate1, gfostartdate2,
412     & gfostartdate, mythid )
413 heimbach 1.8 c-- ... SCAT data.
414 mlosch 1.40 if ( scatxdatfile .ne. ' ' )
415     & call cal_FullDate( scatstartdate1, scatstartdate2,
416     & scatxstartdate, mythid )
417     if ( scatydatfile .ne. ' ' )
418     & call cal_FullDate( scatstartdate1, scatstartdate2,
419     & scatystartdate, mythid )
420 heimbach 1.27
421     WRITE(msgBuf,'(A)') 'ECCO_READPARMS: end assigning cost dates'
422     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
423     & SQUEEZE_RIGHT , 1)
424 heimbach 1.8 #endif
425    
426 heimbach 1.1 _END_MASTER( mythid )
427    
428     _BARRIER
429    
430     end

  ViewVC Help
Powered by ViewVC 1.1.22