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

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

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

revision 1.7 by heimbach, Fri Nov 29 13:38:37 2002 UTC revision 1.14 by heimbach, Tue Nov 16 05:42:12 2004 UTC
# Line 25  c     == global variables == Line 25  c     == global variables ==
25  #include "PARAMS.h"  #include "PARAMS.h"
26  #include "DYNVARS.h"  #include "DYNVARS.h"
27  #include "GRID.h"  #include "GRID.h"
 #include "TR1.h"  
28  #include "ctrl.h"  #include "ctrl.h"
29  #include "ctrl_dummy.h"  #include "ctrl_dummy.h"
30  #include "optim.h"  #include "optim.h"
31    #ifdef ALLOW_PTRACERS
32    # include "PTRACERS_SIZE.h"
33    # include "PTRACERS.h"
34    #endif
35    #ifdef ALLOW_ECCO
36    # include "ecco_cost.h"
37    #endif
38    
39  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
40  c     == routine arguments ==  c     == routine arguments ==
# Line 57  c     == local variables == Line 63  c     == local variables ==
63        character*( 80)   fnameefluxy        character*( 80)   fnameefluxy
64        character*( 80)   fnameefluxp        character*( 80)   fnameefluxp
65        character*( 80)   fnamebottomdrag        character*( 80)   fnamebottomdrag
66          character*( 80)   fnamesss
67          character*( 80)   fnamesst
68    
69        _RL     fac        _RL     fac
70          _RL tmptest
71    
72  c     == external ==  c     == external ==
73        integer  ilnblnk        integer  ilnblnk
# Line 71  CEOP Line 80  CEOP
80        jthi = mybyhi(mythid)        jthi = mybyhi(mythid)
81        itlo = mybxlo(mythid)        itlo = mybxlo(mythid)
82        ithi = mybxhi(mythid)        ithi = mybxhi(mythid)
83        jmin = 1-oly        jmin = 1
84        jmax = sny+oly        jmax = sny
85        imin = 1-olx        imin = 1
86        imax = snx+olx        imax = snx
87    
88        doglobalread = .false.        doglobalread = .false.
89        ladinit      = .false.        ladinit      = .false.
# Line 92  c--   Temperature field. Line 101  c--   Temperature field.
101        il=ilnblnk( xx_theta_file )        il=ilnblnk( xx_theta_file )
102        write(fnametheta(1:80),'(2a,i10.10)')        write(fnametheta(1:80),'(2a,i10.10)')
103       &     xx_theta_file(1:il),'.',optimcycle       &     xx_theta_file(1:il),'.',optimcycle
104        call active_read_xyz( fnametheta, tmpfld3d, 1,        call active_read_xyz_loc( fnametheta, tmpfld3d, 1,
105       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
106       &                      mythid, xx_theta_dummy )       &                      mythid, xx_theta_dummy )
107    
# Line 101  c--   Temperature field. Line 110  c--   Temperature field.
110            do k = 1,nr            do k = 1,nr
111              do j = jmin,jmax              do j = jmin,jmax
112                do i = imin,imax                do i = imin,imax
113    #ifdef ALLOW_ECCO
114                   IF (abs(tmpfld3d(i,j,k,bi,bj)).gt.
115         $          2.0/sqrt(wtheta(k,bi,bj)))
116         $          tmpfld3d(i,j,k,bi,bj)=
117         $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
118    #endif
119                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
120       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
121  cph                gtNm1(i,j,k,bi,bj) = gtNm1(i,j,k,bi,bj) +                  if(theta(i,j,k,bi,bj).lt.-2.0)
122  cph     &                               fac*tmpfld3d(i,j,k,bi,bj)       &               theta(i,j,k,bi,bj)= -2.0
123                enddo                enddo
124              enddo              enddo
125            enddo            enddo
126         enddo         enddo
127        enddo        enddo
128    
129  #endif  #endif
130    
131  #ifdef ALLOW_SALT0_CONTROL  #ifdef ALLOW_SALT0_CONTROL
# Line 117  c--   Temperature field. Line 133  c--   Temperature field.
133        il=ilnblnk( xx_salt_file )        il=ilnblnk( xx_salt_file )
134        write(fnamesalt(1:80),'(2a,i10.10)')        write(fnamesalt(1:80),'(2a,i10.10)')
135       &     xx_salt_file(1:il),'.',optimcycle       &     xx_salt_file(1:il),'.',optimcycle
136        call active_read_xyz( fnamesalt, tmpfld3d, 1,        call active_read_xyz_loc( fnamesalt, tmpfld3d, 1,
137       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
138       &                      mythid, xx_salt_dummy )       &                      mythid, xx_salt_dummy )
139    
# Line 126  c--   Temperature field. Line 142  c--   Temperature field.
142            do k = 1,nr            do k = 1,nr
143              do j = jmin,jmax              do j = jmin,jmax
144                do i = imin,imax                do i = imin,imax
145    #ifdef ALLOW_ECCO
146                   IF (abs(tmpfld3d(i,j,k,bi,bj)).gt.
147         $          2.0/sqrt(wsalt(k,bi,bj)))
148         $          tmpfld3d(i,j,k,bi,bj)=
149         $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
150    #endif
151                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
152       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
153  cph                gsNm1(i,j,k,bi,bj) = gsNm1(i,j,k,bi,bj) +  
 cph     &                               fac*tmpfld3d(i,j,k,bi,bj)  
154                enddo                enddo
155              enddo              enddo
156            enddo            enddo
157         enddo         enddo
158        enddo        enddO
159  #endif  #endif
160    
161  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
162    #ifdef ALLOW_PTRACERS
163  c--   Temperature field.  c--   Temperature field.
164        il=ilnblnk( xx_tr1_file )        il=ilnblnk( xx_tr1_file )
165        write(fnametr1(1:80),'(2a,i10.10)')        write(fnametr1(1:80),'(2a,i10.10)')
166       &     xx_tr1_file(1:il),'.',optimcycle       &     xx_tr1_file(1:il),'.',optimcycle
167        call active_read_xyz( fnametr1, tmpfld3d, 1,        call active_read_xyz_loc( fnametr1, tmpfld3d, 1,
168       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
169       &                      mythid, xx_tr1_dummy )       &                      mythid, xx_tr1_dummy )
170    
# Line 151  c--   Temperature field. Line 173  c--   Temperature field.
173            do k = 1,nr            do k = 1,nr
174              do j = jmin,jmax              do j = jmin,jmax
175                do i = imin,imax                do i = imin,imax
176                  tr1(i,j,k,bi,bj) = tr1(i,j,k,bi,bj) +                  ptracer(i,j,k,bi,bj,1) = ptracer(i,j,k,bi,bj,1) +
177       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
 cph                gtr1Nm1(i,j,k,bi,bj) = gtr1Nm1(i,j,k,bi,bj) +  
 cph     &                               fac*tmpfld3d(i,j,k,bi,bj)  
178                enddo                enddo
179              enddo              enddo
180            enddo            enddo
181         enddo         enddo
182        enddo        enddo
183  #endif  #endif
184    #endif
185    
186    #ifdef ALLOW_SST0_CONTROL
187    c--   sst0.
188          il=ilnblnk( xx_sst_file )
189          write(fnamesst(1:80),'(2a,i10.10)')
190         &     xx_sst_file(1:il),'.',optimcycle
191          call active_read_xy_loc ( fnamesst, tmpfld2d, 1,
192         &                      doglobalread, ladinit, optimcycle,
193         &                      mythid, xx_sst_dummy )
194          do bj = jtlo,jthi
195            do bi = itlo,ithi
196              do j = jmin,jmax
197                do i = imin,imax
198    cph              sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)
199                  theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)
200         &                             + tmpfld2d(i,j,bi,bj)
201                enddo
202              enddo
203            enddo
204          enddo
205    #endif
206    
207    #ifdef ALLOW_SSS0_CONTROL
208    c--   sss0.
209          il=ilnblnk( xx_sss_file )
210          write(fnamesss(1:80),'(2a,i10.10)')
211         &     xx_sss_file(1:il),'.',optimcycle
212          call active_read_xy_loc ( fnamesss, tmpfld2d, 1,
213         &                      doglobalread, ladinit, optimcycle,
214         &                      mythid, xx_sss_dummy )
215          do bj = jtlo,jthi
216            do bi = itlo,ithi
217              do j = jmin,jmax
218                do i = imin,imax
219    cph              sss(i,j,bi,bj) = sss(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)
220                  salt(i,j,1,bi,bj) = salt(i,j,1,bi,bj)
221         &                             + tmpfld2d(i,j,bi,bj)
222                enddo
223              enddo
224            enddo
225          enddo
226    #endif
227    
228  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
229  c--   diffkr.  c--   diffkr.
230        il=ilnblnk( xx_diffkr_file )        il=ilnblnk( xx_diffkr_file )
231        write(fnamediffkr(1:80),'(2a,i10.10)')        write(fnamediffkr(1:80),'(2a,i10.10)')
232       &     xx_diffkr_file(1:il),'.',optimcycle       &     xx_diffkr_file(1:il),'.',optimcycle
233        call active_read_xyz( fnamediffkr, tmpfld3d, 1,        call active_read_xyz_loc( fnamediffkr, tmpfld3d, 1,
234       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
235       &                      mythid, xx_diffkr_dummy )       &                      mythid, xx_diffkr_dummy )
236        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 189  c--   kapgm. Line 252  c--   kapgm.
252        il=ilnblnk( xx_kapgm_file )        il=ilnblnk( xx_kapgm_file )
253        write(fnamekapgm(1:80),'(2a,i10.10)')        write(fnamekapgm(1:80),'(2a,i10.10)')
254       &     xx_kapgm_file(1:il),'.',optimcycle       &     xx_kapgm_file(1:il),'.',optimcycle
255        call active_read_xyz( fnamekapgm, tmpfld3d, 1,        call active_read_xyz_loc( fnamekapgm, tmpfld3d, 1,
256       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
257       &                      mythid, xx_kapgm_dummy )       &                      mythid, xx_kapgm_dummy )
258        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 211  c--   y-component EP-flux field. Line 274  c--   y-component EP-flux field.
274        il=ilnblnk( xx_efluxy_file )        il=ilnblnk( xx_efluxy_file )
275        write(fnameefluxy(1:80),'(2a,i10.10)')        write(fnameefluxy(1:80),'(2a,i10.10)')
276       &     xx_efluxy_file(1:il),'.',optimcycle       &     xx_efluxy_file(1:il),'.',optimcycle
277        call active_read_xyz( fnameefluxy, tmpfld3d, 1,        call active_read_xyz_loc( fnameefluxy, tmpfld3d, 1,
278       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
279       &                      mythid, xx_efluxy_dummy )       &                      mythid, xx_efluxy_dummy )
280    
# Line 238  c--   p-component EP-flux field. Line 301  c--   p-component EP-flux field.
301        il=ilnblnk( xx_efluxp_file )        il=ilnblnk( xx_efluxp_file )
302        write(fnameefluxp(1:80),'(2a,i10.10)')        write(fnameefluxp(1:80),'(2a,i10.10)')
303       &     xx_efluxp_file(1:il),'.',optimcycle       &     xx_efluxp_file(1:il),'.',optimcycle
304        call active_read_xyz( fnameefluxp, tmpfld3d, 1,        call active_read_xyz_loc( fnameefluxp, tmpfld3d, 1,
305       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
306       &                      mythid, xx_efluxp_dummy )       &                      mythid, xx_efluxp_dummy )
307    
# Line 267  c--   bottom drag Line 330  c--   bottom drag
330        il=ilnblnk( xx_bottomdrag_file )        il=ilnblnk( xx_bottomdrag_file )
331        write(fnamebottomdrag(1:80),'(2a,i10.10)')        write(fnamebottomdrag(1:80),'(2a,i10.10)')
332       &     xx_bottomdrag_file(1:il),'.',optimcycle       &     xx_bottomdrag_file(1:il),'.',optimcycle
333        call active_read_xy ( fnamebottomdrag, tmpfld2d, 1,        call active_read_xy_loc ( fnamebottomdrag, tmpfld2d, 1,
334       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
335       &                      mythid, xx_bottomdrag_dummy )       &                      mythid, xx_bottomdrag_dummy )
336        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 285  c--   bottom drag Line 348  c--   bottom drag
348    
349  c--   Update the tile edges.  c--   Update the tile edges.
350    
351  #ifdef ALLOW_THETA0_CONTROL  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))
352        _EXCH_XYZ_R8( theta, mythid )        _EXCH_XYZ_R8( theta, mythid )
 cph      _EXCH_XYZ_R8( gtNm1, mythid )  
353  #endif  #endif
354  #ifdef ALLOW_SALT0_CONTROL  #if (defined (ALLOW_SALT0_CONTROL) || defined (ALLOW_SSS0_CONTROL))
355        _EXCH_XYZ_R8(  salt, mythid )        _EXCH_XYZ_R8(  salt, mythid )
 cph      _EXCH_XYZ_R8( gsNm1, mythid )  
356  #endif  #endif
357  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
358        _EXCH_XYZ_R8(     tr1, mythid )  #ifdef ALLOW_PTRACERS
359  cph      _EXCH_XYZ_R8( gTr1Nm1, mythid )        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,1),myThid)
360    #endif
361  #endif  #endif
362  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
363        _EXCH_XYZ_R8( diffkr, mythid)        _EXCH_XYZ_R8( diffkr, mythid)

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22