/[MITgcm]/MITgcm/pkg/grdchk/grdchk_getadxx.F
ViewVC logotype

Annotation of /MITgcm/pkg/grdchk/grdchk_getadxx.F

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


Revision 1.7 - (hide annotations) (download)
Fri Feb 28 02:34:56 2003 UTC (21 years, 3 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint50c_post, checkpoint50c_pre, checkpoint48i_post, checkpoint50, checkpoint50d_post, checkpoint50b_pre, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint50g_post, checkpoint50h_post, checkpoint50e_pre, checkpoint50i_post, checkpoint50e_post, checkpoint50d_pre, checkpoint49, checkpoint50b_post
Changes since 1.6: +88 -43 lines
Committing updated and merged grdchk package
- has both ADM and TLM checks
- works for single- and multi-proc.
- output cleaned
- worked successfully for parallel DIVA

1 heimbach 1.7 C $Header: /u/gcmpack/MITgcm/pkg/grdchk/grdchk_getadxx.F,v 1.2.6.3 2003/02/13 23:36:18 heimbach Exp $
2 heimbach 1.2
3     #include "CTRL_CPPOPTIONS.h"
4    
5    
6     subroutine grdchk_getadxx(
7     I icvrec,
8     I itile,
9     I jtile,
10     I layer,
11     I itilepos,
12     I jtilepos,
13 heimbach 1.7 I xx_comp,
14 heimbach 1.2 I mythid
15     & )
16    
17     c ==================================================================
18     c SUBROUTINE grdchk_getadxx
19     c ==================================================================
20     c
21     c o Set component a component of the control vector; xx(loc)
22     c
23     c started: Christian Eckert eckert@mit.edu 08-Mar-2000
24     c continued: heimbach@mit.edu: 13-Jun-2001
25     c
26     c ==================================================================
27     c SUBROUTINE grdchk_getadxx
28     c ==================================================================
29    
30     implicit none
31    
32     c == global variables ==
33    
34     #include "EEPARAMS.h"
35     #include "SIZE.h"
36     #include "ctrl.h"
37     #include "optim.h"
38     #include "grdchk.h"
39    
40     c == routine arguments ==
41    
42     integer icvrec
43     integer jtile
44     integer itile
45     integer layer
46     integer itilepos
47     integer jtilepos
48 heimbach 1.7 _RL xx_comp
49 heimbach 1.2 integer mythid
50    
51     #ifdef ALLOW_GRADIENT_CHECK
52     c == local variables ==
53    
54     integer il
55     integer dumiter
56     _RL dumtime
57     _RL dummy
58    
59     logical doglobalread
60     logical ladinit
61    
62     character*(80) fname
63    
64     c-- == external ==
65    
66     integer ilnblnk
67     external ilnblnk
68    
69     c-- == end of interface ==
70    
71     doglobalread = .false.
72     ladinit = .false.
73     dumiter = 0
74     dumtime = 0. _d 0
75    
76 heimbach 1.4 if ( grdchkvarindex .eq. 0 ) then
77     STOP 'GRDCHK INDEX 0 NOT ALLOWED'
78    
79 heimbach 1.2 #ifdef ALLOW_THETA0_CONTROL
80 heimbach 1.4 else if ( grdchkvarindex .eq. 1 ) then
81 heimbach 1.2 il=ilnblnk( xx_theta_file )
82     write(fname(1:80),'(80a)') ' '
83     write(fname(1:80),'(3a,i10.10)')
84 heimbach 1.7 & yadmark, xx_theta_file(1:il),'.',optimcycle
85 heimbach 1.2
86     call active_read_xyz( fname, tmpfld3d, 1,
87     & doglobalread, ladinit, optimcycle,
88     & mythid, dummy)
89    
90 heimbach 1.7 xx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
91 heimbach 1.2
92     #endif /* ALLOW_THETA0_CONTROL */
93    
94     #ifdef ALLOW_SALT0_CONTROL
95     else if ( grdchkvarindex .eq. 2 ) then
96     il=ilnblnk( xx_salt_file )
97     write(fname(1:80),'(80a)') ' '
98     write(fname(1:80),'(3a,i10.10)')
99 heimbach 1.7 & yadmark, xx_salt_file(1:il),'.',optimcycle
100 heimbach 1.2
101     call active_read_xyz( fname, tmpfld3d, 1,
102     & doglobalread, ladinit, optimcycle,
103     & mythid, dummy)
104    
105 heimbach 1.7 xx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
106 heimbach 1.2
107     #endif /* ALLOW_SALT0_CONTROL */
108    
109     #ifdef ALLOW_HFLUX_CONTROL
110     else if ( grdchkvarindex .eq. 3 ) then
111     il=ilnblnk( xx_hflux_file )
112     write(fname(1:80),'(80a)') ' '
113     write(fname(1:80),'(3a,i10.10)')
114 heimbach 1.7 & yadmark, xx_hflux_file(1:il),'.',optimcycle
115 heimbach 1.2
116     call active_read_xy( fname, tmpfld2d, icvrec,
117     & doglobalread, ladinit, optimcycle,
118     & mythid, dummy)
119    
120 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
121 heimbach 1.2
122     #endif /* ALLOW_HFLUX_CONTROL */
123    
124     #ifdef ALLOW_SFLUX_CONTROL
125     else if ( grdchkvarindex .eq. 4 ) then
126     il=ilnblnk( xx_sflux_file )
127     write(fname(1:80),'(80a)') ' '
128     write(fname(1:80),'(3a,i10.10)')
129 heimbach 1.7 & yadmark, xx_sflux_file(1:il),'.',optimcycle
130 heimbach 1.2
131     call active_read_xy( fname, tmpfld2d, icvrec,
132     & doglobalread, ladinit, optimcycle,
133     & mythid, dummy)
134    
135 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
136 heimbach 1.2
137     #endif /* ALLOW_SFLUX_CONTROL */
138    
139     #ifdef ALLOW_USTRESS_CONTROL
140     else if ( grdchkvarindex .eq. 5 ) then
141     il=ilnblnk( xx_tauu_file )
142     write(fname(1:80),'(80a)') ' '
143     write(fname(1:80),'(3a,i10.10)')
144 heimbach 1.7 & yadmark, xx_tauu_file(1:il),'.',optimcycle
145 heimbach 1.2
146     call active_read_xy( fname, tmpfld2d, icvrec,
147     & doglobalread, ladinit, optimcycle,
148     & mythid, dummy)
149    
150 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
151 heimbach 1.2
152     #endif /* ALLOW_USTRESS_CONTROL */
153    
154     #ifdef ALLOW_VSTRESS_CONTROL
155     else if ( grdchkvarindex .eq. 6 ) then
156     il=ilnblnk( xx_tauv_file )
157     write(fname(1:80),'(80a)') ' '
158     write(fname(1:80),'(3a,i10.10)')
159 heimbach 1.7 & yadmark, xx_tauv_file(1:il),'.',optimcycle
160 heimbach 1.2
161     call active_read_xy( fname, tmpfld2d, icvrec,
162     & doglobalread, ladinit, optimcycle,
163     & mythid, dummy)
164    
165 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
166 heimbach 1.2
167     #endif /* ALLOW_VSTRESS_CONTROL */
168    
169 heimbach 1.7 #ifdef ALLOW_ATEMP_CONTROL
170     else if ( grdchkvarindex .eq. 7 ) then
171     il=ilnblnk( xx_atemp_file )
172     write(fname(1:80),'(80a)') ' '
173     write(fname(1:80),'(3a,i10.10)')
174     & yadmark, xx_atemp_file(1:il),'.',optimcycle
175    
176     call active_read_xy( fname, tmpfld2d, icvrec,
177     & doglobalread, ladinit, optimcycle,
178     & mythid, dummy)
179    
180     xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
181    
182     #endif /* ALLOW_ATEMP_CONTROL */
183    
184     #ifdef ALLOW_AQH_CONTROL
185     else if ( grdchkvarindex .eq. 8 ) then
186     il=ilnblnk( xx_aqh_file )
187     write(fname(1:80),'(80a)') ' '
188     write(fname(1:80),'(3a,i10.10)')
189     & yadmark, xx_aqh_file(1:il),'.',optimcycle
190    
191     call active_read_xy( fname, tmpfld2d, icvrec,
192     & doglobalread, ladinit, optimcycle,
193     & mythid, dummy)
194    
195     xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
196    
197     #endif /* ALLOW_AQH_CONTROL */
198    
199     #ifdef ALLOW_UWIND_CONTROL
200     else if ( grdchkvarindex .eq. 9 ) then
201     il=ilnblnk( xx_uwind_file )
202     write(fname(1:80),'(80a)') ' '
203     write(fname(1:80),'(3a,i10.10)')
204     & yadmark, xx_uwind_file(1:il),'.',optimcycle
205    
206     call active_read_xy( fname, tmpfld2d, icvrec,
207     & doglobalread, ladinit, optimcycle,
208     & mythid, dummy)
209    
210     xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
211    
212     #endif /* ALLOW_UWIND_CONTROL */
213    
214     #ifdef ALLOW_VWIND_CONTROL
215     else if ( grdchkvarindex .eq. 10 ) then
216     il=ilnblnk( xx_vwind_file )
217     write(fname(1:80),'(80a)') ' '
218     write(fname(1:80),'(3a,i10.10)')
219     & yadmark, xx_vwind_file(1:il),'.',optimcycle
220    
221     call active_read_xy( fname, tmpfld2d, icvrec,
222     & doglobalread, ladinit, optimcycle,
223     & mythid, dummy)
224    
225     xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
226    
227     #endif /* ALLOW_VWIND_CONTROL */
228    
229 heimbach 1.2 #ifdef ALLOW_TR10_CONTROL
230     else if ( grdchkvarindex .eq. 17 ) then
231     il=ilnblnk( xx_tr1_file )
232     write(fname(1:80),'(80a)') ' '
233     write(fname(1:80),'(3a,i10.10)')
234 heimbach 1.7 & yadmark, xx_tr1_file(1:il),'.',optimcycle
235 heimbach 1.2
236     call active_read_xyz( fname, tmpfld3d, 1,
237     & doglobalread, ladinit, optimcycle,
238     & mythid, dummy)
239    
240 heimbach 1.7 xx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
241 heimbach 1.2
242     #endif /* ALLOW_TR10_CONTROL */
243    
244     #ifdef ALLOW_SST0_CONTROL
245     else if ( grdchkvarindex .eq. 18 ) then
246     il=ilnblnk( xx_sst_file )
247     write(fname(1:80),'(80a)') ' '
248     write(fname(1:80),'(3a,i10.10)')
249 heimbach 1.7 & yadmark, xx_sst_file(1:il),'.',optimcycle
250 heimbach 1.2
251     call active_read_xy( fname, tmpfld2d, icvrec,
252     & doglobalread, ladinit, optimcycle,
253     & mythid, dummy)
254    
255 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
256 heimbach 1.2
257     #endif /* ALLOW_SST0_CONTROL */
258    
259     #ifdef ALLOW_SSS0_CONTROL
260     else if ( grdchkvarindex .eq. 19 ) then
261     il=ilnblnk( xx_sss_file )
262     write(fname(1:80),'(80a)') ' '
263     write(fname(1:80),'(3a,i10.10)')
264 heimbach 1.7 & yadmark, xx_sss_file(1:il),'.',optimcycle
265 heimbach 1.2
266     call active_read_xy( fname, tmpfld2d, icvrec,
267     & doglobalread, ladinit, optimcycle,
268     & mythid, dummy)
269    
270 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
271 heimbach 1.2
272     #endif /* ALLOW_SSS0_CONTROL */
273 heimbach 1.3
274     #ifdef ALLOW_HFACC_CONTROL
275     else if ( grdchkvarindex .eq. 20 ) then
276     il=ilnblnk( xx_hfacc_file )
277     write(fname(1:80),'(80a)') ' '
278     write(fname(1:80),'(3a,i10.10)')
279 heimbach 1.7 & yadmark, xx_hfacc_file(1:il),'.',optimcycle
280 heimbach 1.3
281     #ifdef ALLOW_HFACC3D_CONTROL
282    
283     call active_read_xyz( fname, tmpfld3d, icvrec,
284     & doglobalread, ladinit, optimcycle,
285     & mythid, dummy)
286    
287 heimbach 1.7 xx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
288 heimbach 1.3
289     #else
290    
291     call active_read_xy( fname, tmpfld2d, icvrec,
292     & doglobalread, ladinit, optimcycle,
293     & mythid, dummy)
294    
295 heimbach 1.7 xx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
296 heimbach 1.3
297     #endif /* ALLOW_HFACC3D_CONTROL */
298     #endif /* ALLOW_HFACC_CONTROL */
299 heimbach 1.4
300     #ifdef ALLOW_EFLUXY0_CONTROL
301     else if ( grdchkvarindex .eq. 21 ) then
302     il=ilnblnk( xx_efluxy_file )
303     write(fname(1:80),'(80a)') ' '
304     write(fname(1:80),'(3a,i10.10)')
305 heimbach 1.7 & yadmark, xx_efluxy_file(1:il),'.',optimcycle
306 heimbach 1.4
307     call active_read_xyz( fname, tmpfld3d, 1,
308     & doglobalread, ladinit, optimcycle,
309     & mythid, dummy)
310    
311 heimbach 1.7 xx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
312 heimbach 1.4
313     #endif /* ALLOW_EFLUXY0_CONTROL */
314    
315     #ifdef ALLOW_EFLUXP0_CONTROL
316     else if ( grdchkvarindex .eq. 22 ) then
317     il=ilnblnk( xx_efluxp_file )
318     write(fname(1:80),'(80a)') ' '
319     write(fname(1:80),'(3a,i10.10)')
320 heimbach 1.7 & yadmark, xx_efluxp_file(1:il),'.',optimcycle
321 heimbach 1.4
322     call active_read_xyz( fname, tmpfld3d, 1,
323     & doglobalread, ladinit, optimcycle,
324     & mythid, dummy)
325    
326 heimbach 1.7 xx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
327 heimbach 1.4
328     #endif /* ALLOW_EFLUXP0_CONTROL */
329 heimbach 1.2
330     else
331     ce --> this index does not exist yet.
332     endif
333    
334     #endif /* ALLOW_GRADIENT_CHECK */
335    
336     end
337    

  ViewVC Help
Powered by ViewVC 1.1.22