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

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

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


Revision 1.5 - (hide 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 heimbach 1.5 C $Header: /u/gcmpack/models/MITgcmUV/pkg/ctrl/ctrl_map_ini.F,v 1.4 2001/08/13 23:28:41 heimbach Exp $
2 heimbach 1.1
3     #include "CTRL_CPPOPTIONS.h"
4    
5 heimbach 1.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 heimbach 1.1
19 heimbach 1.5 C !USES:
20 heimbach 1.1 implicit none
21    
22     c == global variables ==
23     #include "EEPARAMS.h"
24     #include "SIZE.h"
25     #include "DYNVARS.h"
26 heimbach 1.2 #include "TR1.h"
27 heimbach 1.1 #include "ctrl.h"
28     #include "ctrl_dummy.h"
29 heimbach 1.2 #include "optim.h"
30 heimbach 1.1
31 heimbach 1.5 C !INPUT/OUTPUT PARAMETERS:
32 heimbach 1.1 c == routine arguments ==
33     integer mythid
34    
35 heimbach 1.5 C !LOCAL VARIABLES:
36 heimbach 1.1 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 heimbach 1.2 character*( 80) fnametr1
53 heimbach 1.3 character*( 80) fnamediffkr
54     character*( 80) fnamekapgm
55 heimbach 1.1
56 heimbach 1.5 _RL fac
57    
58 heimbach 1.1 c == external ==
59     integer ilnblnk
60     external ilnblnk
61    
62     c == end of interface ==
63 heimbach 1.5 CEOP
64 heimbach 1.1
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 heimbach 1.4 cph gtNm1(i,j,k,bi,bj) = gtNm1(i,j,k,bi,bj) +
102     cph & fac*tmpfld3d(i,j,k,bi,bj)
103 heimbach 1.1 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 heimbach 1.4 cph gsNm1(i,j,k,bi,bj) = gsNm1(i,j,k,bi,bj) +
127     cph & fac*tmpfld3d(i,j,k,bi,bj)
128 heimbach 1.1 enddo
129     enddo
130     enddo
131     enddo
132     enddo
133     #endif
134    
135 heimbach 1.2 #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 heimbach 1.4 cph gtr1Nm1(i,j,k,bi,bj) = gtr1Nm1(i,j,k,bi,bj) +
152     cph & fac*tmpfld3d(i,j,k,bi,bj)
153 heimbach 1.2 enddo
154     enddo
155     enddo
156     enddo
157     enddo
158     #endif
159    
160 heimbach 1.3 #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 heimbach 1.1
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 heimbach 1.2 #endif
215     #ifdef ALLOW_TR10_CONTROL
216 heimbach 1.3 _EXCH_XYZ_R8( tr1, mythid )
217 heimbach 1.2 _EXCH_XYZ_R8( gTr1Nm1, mythid )
218 heimbach 1.1 #endif
219 heimbach 1.3 #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 heimbach 1.1
227     return
228     end
229    

  ViewVC Help
Powered by ViewVC 1.1.22