/[MITgcm]/MITgcm/pkg/ctrl/ctrl_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/ctrl/ctrl_readparms.F

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


Revision 1.8 - (hide annotations) (download)
Tue Nov 16 05:42:12 2004 UTC (19 years, 6 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint56b_post, checkpoint56c_post, checkpoint56, checkpoint56a_post
Changes since 1.7: +8 -3 lines
More on dsvd vs. MITgcm interfacing
o handling of g_, ad, via admtlm_vector (mds...vector)
o use ctrl_pack/unpack for admtlm_vector I/O
o use optimcycle for dsvd iteration
o make sure norm is w.r.t. derived quantities

1 edhill 1.5 C
2 heimbach 1.8 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_readparms.F,v 1.7 2004/11/11 06:28:33 heimbach Exp $
3 heimbach 1.6 C $Name: $
4 heimbach 1.2
5 edhill 1.5 #include "AD_CONFIG.h"
6 heimbach 1.2 #include "CTRL_CPPOPTIONS.h"
7    
8    
9     subroutine ctrl_readparms( mythid )
10    
11     c ==================================================================
12     c SUBROUTINE ctrl_readparms
13     c ==================================================================
14     c
15     c o read ctrl parameters
16     c split from ctrl_init
17     c
18     c started: heimbach@mit.edu 12-Jun-2003
19     c
20     c ==================================================================
21     c SUBROUTINE ctrl_readparms
22     c ==================================================================
23    
24     implicit none
25    
26     c == global variables ==
27    
28     #include "EEPARAMS.h"
29     #include "SIZE.h"
30     #include "PARAMS.h"
31     #include "GRID.h"
32     #include "ctrl.h"
33    
34     #ifdef ALLOW_OBCS_CONTROL
35     # include "OBCS.h"
36     #endif
37     #ifdef ALLOW_ECCO_OPTIMIZATION
38     # include "optim.h"
39     #endif
40    
41     c == routine arguments ==
42    
43     integer mythid
44    
45     c == local variables ==
46    
47     integer bi,bj
48     integer i,j,k
49     integer ntmp
50     integer ivarindex
51    
52     integer iobcs
53     integer il
54     integer errio
55     integer startrec
56     integer endrec
57     integer difftime(4)
58     _RL diffsecs
59     _RL dummy
60    
61     character*(80) ymaskobcs
62     character*(max_len_prec) record
63     character*(max_len_mbuf) msgbuf
64    
65     integer nwetc3d
66    
67     c == external ==
68    
69     integer ilnblnk
70     external ilnblnk
71    
72     c == end of interface ==
73    
74     c-- Read the namelist input.
75     namelist /ctrl_nml/
76     & xx_theta_file,
77     & xx_salt_file,
78     & xx_hflux_file,
79     & xx_hfluxstartdate1, xx_hfluxstartdate2, xx_hfluxperiod,
80     & xx_sflux_file,
81     & xx_sfluxstartdate1, xx_sfluxstartdate2, xx_sfluxperiod,
82     & xx_tauu_file,
83     & xx_tauustartdate1, xx_tauustartdate2, xx_tauuperiod,
84     & xx_tauv_file,
85     & xx_tauvstartdate1, xx_tauvstartdate2, xx_tauvperiod,
86     & xx_atemp_file,
87     & xx_atempstartdate1, xx_atempstartdate2, xx_atempperiod,
88     & xx_aqh_file,
89     & xx_aqhstartdate1, xx_aqhstartdate2, xx_aqhperiod,
90     & xx_uwind_file,
91     & xx_uwindstartdate1, xx_uwindstartdate2, xx_uwindperiod,
92     & xx_vwind_file,
93     & xx_vwindstartdate1, xx_vwindstartdate2, xx_vwindperiod,
94     & xx_obcsn_file,
95     & xx_obcsnstartdate1, xx_obcsnstartdate2, xx_obcsnperiod,
96     & xx_obcss_file,
97     & xx_obcssstartdate1, xx_obcssstartdate2, xx_obcssperiod,
98     & xx_obcsw_file,
99     & xx_obcswstartdate1, xx_obcswstartdate2, xx_obcswperiod,
100     & xx_obcse_file,
101     & xx_obcsestartdate1, xx_obcsestartdate2, xx_obcseperiod,
102     & xx_diffkr_file,
103     & xx_kapgm_file,
104     & xx_tr1_file,
105     & xx_sst_file,
106     & xx_sss_file,
107     & xx_hfacc_file,
108     & xx_efluxy_file,
109     & xx_efluxp_file,
110 heimbach 1.7 & xx_bottomdrag_file,
111     & doInitXX
112 heimbach 1.2
113     namelist /ctrl_packnames/
114 heimbach 1.6 & yadmark, yctrlid, yctrlposunpack, yctrlpospack,
115 heimbach 1.2 & ctrlname, costname, scalname, maskname, metaname
116    
117     _BEGIN_MASTER( myThid )
118    
119     c-- Set default values.
120 heimbach 1.8 doInitXX = .TRUE.
121     #ifdef ALLOW_ADMTLM
122     doAdmTlm = .TRUE.
123     #else
124     doAdmTlm = .FALSE.
125     #endif
126    
127 heimbach 1.2 xx_theta_file = ' '
128     xx_salt_file = ' '
129     xx_hfluxstartdate1 = 0
130     xx_hfluxstartdate2 = 0
131     xx_hfluxperiod = 0. _d 0
132     xx_hflux_file = ' '
133     xx_sfluxstartdate1 = 0
134     xx_sfluxstartdate2 = 0
135     xx_sfluxperiod = 0. _d 0
136     xx_sflux_file = ' '
137     xx_tauustartdate1 = 0
138     xx_tauustartdate2 = 0
139     xx_tauuperiod = 0. _d 0
140     xx_tauu_file = ' '
141     xx_tauvstartdate1 = 0
142     xx_tauvstartdate2 = 0
143     xx_tauvperiod = 0. _d 0
144     xx_tauv_file = ' '
145     xx_atempstartdate1 = 0
146     xx_atempstartdate2 = 0
147     xx_atempperiod = 0. _d 0
148     xx_atemp_file = ' '
149     xx_aqhstartdate1 = 0
150     xx_aqhstartdate2 = 0
151     xx_aqhperiod = 0. _d 0
152     xx_aqh_file = ' '
153     xx_uwindstartdate1 = 0
154     xx_uwindstartdate2 = 0
155     xx_uwindperiod = 0. _d 0
156     xx_uwind_file = ' '
157     xx_vwindstartdate1 = 0
158     xx_vwindstartdate2 = 0
159     xx_vwindperiod = 0. _d 0
160     xx_vwind_file = ' '
161     xx_obcsnstartdate1 = 0
162     xx_obcsnstartdate2 = 0
163     xx_obcsnperiod = 0. _d 0
164     xx_obcsn_file = ' '
165     xx_obcssstartdate1 = 0
166     xx_obcssstartdate2 = 0
167     xx_obcssperiod = 0. _d 0
168     xx_obcss_file = ' '
169     xx_obcswstartdate1 = 0
170     xx_obcswstartdate2 = 0
171     xx_obcswperiod = 0. _d 0
172     xx_obcsw_file = ' '
173     xx_obcsestartdate1 = 0
174     xx_obcsestartdate2 = 0
175     xx_obcseperiod = 0. _d 0
176     xx_obcse_file = ' '
177     xx_diffkr_file = ' '
178     xx_kapgm_file = ' '
179     xx_tr1_file = ' '
180     xx_sst_file = ' '
181     xx_sss_file = ' '
182     xx_hfacc_file = ' '
183     xx_efluxy_file = ' '
184     xx_efluxp_file = ' '
185     xx_bottomdrag_file = ' '
186    
187 heimbach 1.4 #ifdef ALLOW_TANGENTLINEAR_RUN
188     yadprefix = 'g_'
189     yadmark = 'g_'
190     #else
191     yadprefix = 'ad'
192 heimbach 1.2 yadmark = 'ad'
193     #endif
194     yctrlid = 'MIT_CE_000'
195 heimbach 1.6 yctrlposunpack = '.opt'
196     yctrlpospack = '.opt'
197 heimbach 1.2 ctrlname = ' '
198     costname = ' '
199     scalname = ' '
200     maskname = ' '
201     metaname = ' '
202    
203     c-- Check versions.
204    
205     open(unit=scrunit1,status='scratch')
206    
207     c-- Next, read the ecco data file.
208     open(unit = modeldataunit,file = 'data.ctrl',
209     & status = 'old', iostat = errio)
210     if ( errio .lt. 0 ) then
211     stop ' stopped in ctrl_readparms'
212     endif
213    
214     do while ( .true. )
215     read(modeldataunit, fmt='(a)', end=1001) record
216     il = max(ilnblnk(record),1)
217     if ( record(1:1) .ne. commentcharacter )
218     & write(unit=scrunit1, fmt='(a)') record(:il)
219     enddo
220     1001 continue
221     close( modeldataunit )
222    
223     rewind( scrunit1 )
224     read(unit = scrunit1, nml = ctrl_nml)
225     read(unit = scrunit1, nml = ctrl_packnames)
226     close( scrunit1 )
227    
228     _END_MASTER( myThid )
229    
230     _BARRIER
231    
232     return
233     end
234    

  ViewVC Help
Powered by ViewVC 1.1.22