/[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.11 by heimbach, Fri Jul 18 21:10:16 2003 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 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                  if(theta(i,j,k,bi,bj).lt.-2.0)                  if(theta(i,j,k,bi,bj).lt.-2.0)
122       &               theta(i,j,k,bi,bj)= -2.0         &               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 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    
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)')
# Line 149  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)
178                enddo                enddo
179              enddo              enddo
# Line 157  c--   Temperature field. Line 181  c--   Temperature field.
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.
# Line 281  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.11  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22