/[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.5 - (hide annotations) (download)
Mon Sep 16 18:11:58 2002 UTC (21 years, 7 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint46l_post, checkpoint46g_pre, checkpoint47c_post, checkpoint46f_post, checkpoint46l_pre, checkpoint47d_pre, checkpoint47a_post, checkpoint47d_post, checkpoint46j_pre, checkpoint46j_post, checkpoint46k_post, checkpoint47b_post, checkpoint46h_pre, checkpoint46m_post, checkpoint46g_post, checkpoint46i_post, checkpoint47, checkpoint46h_post
Changes since 1.4: +17 -17 lines
Enable tangent linear (forward mode) gradient checks:
o extended active file handling to g_... files
o added TANGENT_SIMULATION to theSimulationMode
o extended grdchk package accordingly

1 heimbach 1.5 C $Header: /u/gcmpack/MITgcm/pkg/grdchk/grdchk_getadxx.F,v 1.4 2002/07/13 02:55:58 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.5 I adxx_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.5 _RL adxx_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     & yadmark, xx_theta_file(1:il),'.',optimcycle
85    
86     call active_read_xyz( fname, tmpfld3d, 1,
87     & doglobalread, ladinit, optimcycle,
88     & mythid, dummy)
89    
90 heimbach 1.5 adxx_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     & yadmark, xx_salt_file(1:il),'.',optimcycle
100    
101     call active_read_xyz( fname, tmpfld3d, 1,
102     & doglobalread, ladinit, optimcycle,
103     & mythid, dummy)
104    
105 heimbach 1.5 adxx_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     & yadmark, xx_hflux_file(1:il),'.',optimcycle
115    
116     call active_read_xy( fname, tmpfld2d, icvrec,
117     & doglobalread, ladinit, optimcycle,
118     & mythid, dummy)
119    
120 heimbach 1.5 adxx_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     & yadmark, xx_sflux_file(1:il),'.',optimcycle
130    
131     call active_read_xy( fname, tmpfld2d, icvrec,
132     & doglobalread, ladinit, optimcycle,
133     & mythid, dummy)
134    
135 heimbach 1.5 adxx_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     & yadmark, xx_tauu_file(1:il),'.',optimcycle
145    
146     call active_read_xy( fname, tmpfld2d, icvrec,
147     & doglobalread, ladinit, optimcycle,
148     & mythid, dummy)
149    
150 heimbach 1.5 adxx_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     & yadmark, xx_tauv_file(1:il),'.',optimcycle
160    
161     call active_read_xy( fname, tmpfld2d, icvrec,
162     & doglobalread, ladinit, optimcycle,
163     & mythid, dummy)
164    
165 heimbach 1.5 adxx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
166 heimbach 1.2
167     #endif /* ALLOW_VSTRESS_CONTROL */
168    
169     #ifdef ALLOW_TR10_CONTROL
170     else if ( grdchkvarindex .eq. 17 ) then
171     il=ilnblnk( xx_tr1_file )
172     write(fname(1:80),'(80a)') ' '
173     write(fname(1:80),'(3a,i10.10)')
174     & yadmark, xx_tr1_file(1:il),'.',optimcycle
175    
176     call active_read_xyz( fname, tmpfld3d, 1,
177     & doglobalread, ladinit, optimcycle,
178     & mythid, dummy)
179    
180 heimbach 1.5 adxx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
181 heimbach 1.2
182     #endif /* ALLOW_TR10_CONTROL */
183    
184     #ifdef ALLOW_SST0_CONTROL
185     else if ( grdchkvarindex .eq. 18 ) then
186     il=ilnblnk( xx_sst_file )
187     write(fname(1:80),'(80a)') ' '
188     write(fname(1:80),'(3a,i10.10)')
189     & yadmark, xx_sst_file(1:il),'.',optimcycle
190    
191     call active_read_xy( fname, tmpfld2d, icvrec,
192     & doglobalread, ladinit, optimcycle,
193     & mythid, dummy)
194    
195 heimbach 1.5 adxx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
196 heimbach 1.2
197     #endif /* ALLOW_SST0_CONTROL */
198    
199     #ifdef ALLOW_SSS0_CONTROL
200     else if ( grdchkvarindex .eq. 19 ) then
201     il=ilnblnk( xx_sss_file )
202     write(fname(1:80),'(80a)') ' '
203     write(fname(1:80),'(3a,i10.10)')
204     & yadmark, xx_sss_file(1:il),'.',optimcycle
205    
206     call active_read_xy( fname, tmpfld2d, icvrec,
207     & doglobalread, ladinit, optimcycle,
208     & mythid, dummy)
209    
210 heimbach 1.5 adxx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
211 heimbach 1.2
212     #endif /* ALLOW_SSS0_CONTROL */
213 heimbach 1.3
214     #ifdef ALLOW_HFACC_CONTROL
215     else if ( grdchkvarindex .eq. 20 ) then
216     il=ilnblnk( xx_hfacc_file )
217     write(fname(1:80),'(80a)') ' '
218     write(fname(1:80),'(3a,i10.10)')
219     & yadmark, xx_hfacc_file(1:il),'.',optimcycle
220    
221     #ifdef ALLOW_HFACC3D_CONTROL
222    
223     call active_read_xyz( fname, tmpfld3d, icvrec,
224     & doglobalread, ladinit, optimcycle,
225     & mythid, dummy)
226    
227 heimbach 1.5 adxx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
228 heimbach 1.3
229     #else
230    
231     call active_read_xy( fname, tmpfld2d, icvrec,
232     & doglobalread, ladinit, optimcycle,
233     & mythid, dummy)
234    
235 heimbach 1.5 adxx_comp = tmpfld2d( itilepos,jtilepos,itile,jtile )
236 heimbach 1.3
237     #endif /* ALLOW_HFACC3D_CONTROL */
238     #endif /* ALLOW_HFACC_CONTROL */
239 heimbach 1.4
240     #ifdef ALLOW_EFLUXY0_CONTROL
241     else if ( grdchkvarindex .eq. 21 ) then
242     il=ilnblnk( xx_efluxy_file )
243     write(fname(1:80),'(80a)') ' '
244     write(fname(1:80),'(3a,i10.10)')
245     & yadmark, xx_efluxy_file(1:il),'.',optimcycle
246    
247     call active_read_xyz( fname, tmpfld3d, 1,
248     & doglobalread, ladinit, optimcycle,
249     & mythid, dummy)
250    
251 heimbach 1.5 adxx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
252 heimbach 1.4
253     #endif /* ALLOW_THETA0_CONTROL */
254    
255     #ifdef ALLOW_EFLUXY0_CONTROL
256     else if ( grdchkvarindex .eq. 21 ) then
257     il=ilnblnk( xx_efluxy_file )
258     write(fname(1:80),'(80a)') ' '
259     write(fname(1:80),'(3a,i10.10)')
260     & yadmark, xx_efluxy_file(1:il),'.',optimcycle
261    
262     call active_read_xyz( fname, tmpfld3d, 1,
263     & doglobalread, ladinit, optimcycle,
264     & mythid, dummy)
265    
266 heimbach 1.5 adxx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
267 heimbach 1.4
268     #endif /* ALLOW_EFLUXY0_CONTROL */
269    
270     #ifdef ALLOW_EFLUXP0_CONTROL
271     else if ( grdchkvarindex .eq. 22 ) then
272     il=ilnblnk( xx_efluxp_file )
273     write(fname(1:80),'(80a)') ' '
274     write(fname(1:80),'(3a,i10.10)')
275     & yadmark, xx_efluxp_file(1:il),'.',optimcycle
276    
277     call active_read_xyz( fname, tmpfld3d, 1,
278     & doglobalread, ladinit, optimcycle,
279     & mythid, dummy)
280    
281 heimbach 1.5 adxx_comp = tmpfld3d( itilepos,jtilepos,layer,itile,jtile )
282 heimbach 1.4
283     #endif /* ALLOW_EFLUXP0_CONTROL */
284 heimbach 1.2
285     else
286     ce --> this index does not exist yet.
287     endif
288    
289     #endif /* ALLOW_GRADIENT_CHECK */
290    
291     end
292    

  ViewVC Help
Powered by ViewVC 1.1.22