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

Contents of /MITgcm/pkg/ctrl/ctrl_map_ini.F

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


Revision 1.3 - (show annotations) (download)
Mon Aug 13 18:10:26 2001 UTC (22 years, 9 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint40pre6
Changes since 1.2: +55 -2 lines
Included diffkr, kapgm to set of control variables.

1 C $Header: /u/gcmpack/models/MITgcmUV/pkg/ctrl/ctrl_map_ini.F,v 1.2 2001/07/13 13:40:17 heimbach Exp $
2
3 #include "CTRL_CPPOPTIONS.h"
4
5
6 subroutine ctrl_map_ini(
7 I mythid
8 & )
9
10 c ==================================================================
11 c SUBROUTINE ctrl_map_ini
12 c ==================================================================
13 c
14 c o Add the temperature and salinity parts of the control vector to
15 c the model state and update the tile edges. The control vector is
16 c defined in the header file "ctrl.h".
17 c
18 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
19 c
20 c changed: Christian Eckert eckert@mit.edu 23-Feb-2000
21 c
22 c - Restructured the code in order to create a package
23 c for the MITgcmUV.
24 c
25 c ==================================================================
26 c SUBROUTINE ctrl_map_ini
27 c ==================================================================
28
29 implicit none
30
31 c == global variables ==
32
33 #include "EEPARAMS.h"
34 #include "SIZE.h"
35 #include "DYNVARS.h"
36 #include "TR1.h"
37
38 #include "ctrl.h"
39 #include "ctrl_dummy.h"
40 #include "optim.h"
41
42 c == routine arguments ==
43
44 integer mythid
45
46 c == local variables ==
47
48 _RL fac
49 integer bi,bj
50 integer i,j,k
51 integer itlo,ithi
52 integer jtlo,jthi
53 integer jmin,jmax
54 integer imin,imax
55 integer il
56
57 logical equal
58 logical doglobalread
59 logical ladinit
60
61 character*( 80) fnametheta
62 character*( 80) fnamesalt
63 character*( 80) fnametr1
64 character*( 80) fnamediffkr
65 character*( 80) fnamekapgm
66
67 c == external ==
68
69 integer ilnblnk
70 external ilnblnk
71
72 c == end of interface ==
73
74 jtlo = mybylo(mythid)
75 jthi = mybyhi(mythid)
76 itlo = mybxlo(mythid)
77 ithi = mybxhi(mythid)
78 jmin = 1-oly
79 jmax = sny+oly
80 imin = 1-olx
81 imax = snx+olx
82
83 doglobalread = .false.
84 ladinit = .false.
85
86 equal = .true.
87
88 if ( equal ) then
89 fac = 1. _d 0
90 else
91 fac = 0. _d 0
92 endif
93
94 #ifdef ALLOW_THETA0_CONTROL
95 c-- Temperature field.
96 il=ilnblnk( xx_theta_file )
97 write(fnametheta(1:80),'(2a,i10.10)')
98 & xx_theta_file(1:il),'.',optimcycle
99 call active_read_xyz( fnametheta, tmpfld3d, 1,
100 & doglobalread, ladinit, optimcycle,
101 & mythid, xx_theta_dummy )
102
103 do bj = jtlo,jthi
104 do bi = itlo,ithi
105 do k = 1,nr
106 do j = jmin,jmax
107 do i = imin,imax
108 theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
109 & fac*tmpfld3d(i,j,k,bi,bj)
110 gtNm1(i,j,k,bi,bj) = gtNm1(i,j,k,bi,bj) +
111 & fac*tmpfld3d(i,j,k,bi,bj)
112 enddo
113 enddo
114 enddo
115 enddo
116 enddo
117 #endif
118
119 #ifdef ALLOW_SALT0_CONTROL
120 c-- Temperature field.
121 il=ilnblnk( xx_salt_file )
122 write(fnamesalt(1:80),'(2a,i10.10)')
123 & xx_salt_file(1:il),'.',optimcycle
124 call active_read_xyz( fnamesalt, tmpfld3d, 1,
125 & doglobalread, ladinit, optimcycle,
126 & mythid, xx_salt_dummy )
127
128 do bj = jtlo,jthi
129 do bi = itlo,ithi
130 do k = 1,nr
131 do j = jmin,jmax
132 do i = imin,imax
133 salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
134 & fac*tmpfld3d(i,j,k,bi,bj)
135 gsNm1(i,j,k,bi,bj) = gsNm1(i,j,k,bi,bj) +
136 & fac*tmpfld3d(i,j,k,bi,bj)
137 enddo
138 enddo
139 enddo
140 enddo
141 enddo
142 #endif
143
144 #ifdef ALLOW_TR10_CONTROL
145 c-- Temperature field.
146 il=ilnblnk( xx_tr1_file )
147 write(fnametr1(1:80),'(2a,i10.10)')
148 & xx_tr1_file(1:il),'.',optimcycle
149 call active_read_xyz( fnametr1, tmpfld3d, 1,
150 & doglobalread, ladinit, optimcycle,
151 & mythid, xx_tr1_dummy )
152
153 do bj = jtlo,jthi
154 do bi = itlo,ithi
155 do k = 1,nr
156 do j = jmin,jmax
157 do i = imin,imax
158 tr1(i,j,k,bi,bj) = tr1(i,j,k,bi,bj) +
159 & fac*tmpfld3d(i,j,k,bi,bj)
160 gsNm1(i,j,k,bi,bj) = gsNm1(i,j,k,bi,bj) +
161 & fac*tmpfld3d(i,j,k,bi,bj)
162 enddo
163 enddo
164 enddo
165 enddo
166 enddo
167 #endif
168
169 #ifdef ALLOW_DIFFKR_CONTROL
170 c-- diffkr.
171 il=ilnblnk( xx_diffkr_file )
172 write(fnamediffkr(1:80),'(2a,i10.10)')
173 & xx_diffkr_file(1:il),'.',optimcycle
174 call active_read_xyz( fnamediffkr, tmpfld3d, 1,
175 & doglobalread, ladinit, optimcycle,
176 & mythid, xx_diffkr_dummy )
177 do bj = jtlo,jthi
178 do bi = itlo,ithi
179 do k = 1,nr
180 do j = jmin,jmax
181 do i = imin,imax
182 diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) +
183 & tmpfld3d(i,j,k,bi,bj)
184 enddo
185 enddo
186 enddo
187 enddo
188 enddo
189 #endif
190
191 #ifdef ALLOW_KAPGM_CONTROL
192 c-- kapgm.
193 il=ilnblnk( xx_kapgm_file )
194 write(fnamekapgm(1:80),'(2a,i10.10)')
195 & xx_kapgm_file(1:il),'.',optimcycle
196 call active_read_xyz( fnamekapgm, tmpfld3d, 1,
197 & doglobalread, ladinit, optimcycle,
198 & mythid, xx_kapgm_dummy )
199 do bj = jtlo,jthi
200 do bi = itlo,ithi
201 do k = 1,nr
202 do j = jmin,jmax
203 do i = imin,imax
204 kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) +
205 & tmpfld3d(i,j,k,bi,bj)
206 enddo
207 enddo
208 enddo
209 enddo
210 enddo
211 #endif
212
213
214 c-- Update the tile edges.
215
216 #ifdef ALLOW_THETA0_CONTROL
217 _EXCH_XYZ_R8( theta, mythid )
218 _EXCH_XYZ_R8( gtNm1, mythid )
219 #endif
220 #ifdef ALLOW_SALT0_CONTROL
221 _EXCH_XYZ_R8( salt, mythid )
222 _EXCH_XYZ_R8( gsNm1, mythid )
223 #endif
224 #ifdef ALLOW_TR10_CONTROL
225 _EXCH_XYZ_R8( tr1, mythid )
226 _EXCH_XYZ_R8( gTr1Nm1, mythid )
227 #endif
228 #ifdef ALLOW_DIFFKR_CONTROL
229 _EXCH_XYZ_R8( diffkr, mythid)
230 #endif
231 #ifdef ALLOW_KAPGM_CONTROL
232 _EXCH_XYZ_R8( kapgm, mythid)
233 #endif
234
235
236 return
237 end
238

  ViewVC Help
Powered by ViewVC 1.1.22