/[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.5 - (show annotations) (download)
Fri Sep 28 15:15:55 2001 UTC (22 years, 8 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint44e_post, checkpoint44f_post, checkpoint43a-release1mods, chkpt44d_post, release1_p1, release1_p2, release1_p3, release1_p4, checkpoint44e_pre, release1_b1, checkpoint43, release1_chkpt44d_post, icebear5, icebear4, icebear3, icebear2, release1-branch_tutorials, checkpoint45d_post, chkpt44a_post, checkpoint44h_pre, chkpt44c_pre, checkpoint45a_post, ecco_c44_e19, ecco_c44_e18, ecco_c44_e17, ecco_c44_e16, checkpoint44g_post, checkpoint45b_post, release1-branch-end, release1_final_v1, checkpoint44b_post, checkpoint45c_post, ecco_ice2, ecco_ice1, checkpoint44h_post, ecco_c44_e22, ecco_c44_e25, chkpt44a_pre, ecco_c44_e23, ecco_c44_e20, ecco_c44_e21, ecco_c44_e26, ecco_c44_e27, ecco_c44_e24, ecco-branch-mod1, ecco-branch-mod2, ecco-branch-mod3, ecco-branch-mod4, ecco-branch-mod5, release1_beta1, checkpoint44b_pre, checkpoint44, checkpoint45, chkpt44c_post, checkpoint44f_pre, release1-branch_branchpoint
Branch point for: c24_e25_ice, release1_final, release1-branch, release1, ecco-branch, icebear, release1_coupled
Changes since 1.4: +20 -29 lines
Adding basic comments to ctrl package.

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

  ViewVC Help
Powered by ViewVC 1.1.22