/[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.10 by heimbach, Fri Jun 27 01:54:20 2003 UTC revision 1.13 by heimbach, Fri Sep 17 23:02:01 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    
3  #include "CTRL_CPPOPTIONS.h"  #include "CTRL_CPPOPTIONS.h"
 #ifdef ALLOW_PTRACERS  
 # include "PTRACERS_OPTIONS.h"  
 #endif  
4    
5  CBOP  CBOP
6  C     !ROUTINE: ctrl_map_ini  C     !ROUTINE: ctrl_map_ini
# Line 28  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"
 #ifdef ALLOW_PASSIVE_TRACER  
 # include "TR1.h"  
 #endif  
 #ifdef ALLOW_PTRACERS  
 # include "PTRACERS.h"  
 #endif  
   
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 68  c     == local variables == Line 65  c     == local variables ==
65        character*( 80)   fnamebottomdrag        character*( 80)   fnamebottomdrag
66    
67        _RL     fac        _RL     fac
68          _RL tmptest
69    
70  c     == external ==  c     == external ==
71        integer  ilnblnk        integer  ilnblnk
# Line 101  c--   Temperature field. Line 99  c--   Temperature field.
99        il=ilnblnk( xx_theta_file )        il=ilnblnk( xx_theta_file )
100        write(fnametheta(1:80),'(2a,i10.10)')        write(fnametheta(1:80),'(2a,i10.10)')
101       &     xx_theta_file(1:il),'.',optimcycle       &     xx_theta_file(1:il),'.',optimcycle
102        call active_read_xyz( fnametheta, tmpfld3d, 1,        call active_read_xyz_loc( fnametheta, tmpfld3d, 1,
103       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
104       &                      mythid, xx_theta_dummy )       &                      mythid, xx_theta_dummy )
105    
# Line 110  c--   Temperature field. Line 108  c--   Temperature field.
108            do k = 1,nr            do k = 1,nr
109              do j = jmin,jmax              do j = jmin,jmax
110                do i = imin,imax                do i = imin,imax
111    #ifdef ALLOW_ECCO
112                   IF (abs(tmpfld3d(i,j,k,bi,bj)).gt.
113         $          2.0/sqrt(wtheta(k,bi,bj)))
114         $          tmpfld3d(i,j,k,bi,bj)=
115         $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
116    #endif
117                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
118       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
119                  if(theta(i,j,k,bi,bj).lt.-2.0)                  if(theta(i,j,k,bi,bj).lt.-2.0)
120       &               theta(i,j,k,bi,bj)= -2.0         &               theta(i,j,k,bi,bj)= -2.0
121                enddo                enddo
122              enddo              enddo
123            enddo            enddo
124         enddo         enddo
125        enddo        enddo
126    
127  #endif  #endif
128    
129  #ifdef ALLOW_SALT0_CONTROL  #ifdef ALLOW_SALT0_CONTROL
# Line 126  c--   Temperature field. Line 131  c--   Temperature field.
131        il=ilnblnk( xx_salt_file )        il=ilnblnk( xx_salt_file )
132        write(fnamesalt(1:80),'(2a,i10.10)')        write(fnamesalt(1:80),'(2a,i10.10)')
133       &     xx_salt_file(1:il),'.',optimcycle       &     xx_salt_file(1:il),'.',optimcycle
134        call active_read_xyz( fnamesalt, tmpfld3d, 1,        call active_read_xyz_loc( fnamesalt, tmpfld3d, 1,
135       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
136       &                      mythid, xx_salt_dummy )       &                      mythid, xx_salt_dummy )
137    
# Line 135  c--   Temperature field. Line 140  c--   Temperature field.
140            do k = 1,nr            do k = 1,nr
141              do j = jmin,jmax              do j = jmin,jmax
142                do i = imin,imax                do i = imin,imax
143    #ifdef ALLOW_ECCO
144                   IF (abs(tmpfld3d(i,j,k,bi,bj)).gt.
145         $          2.0/sqrt(wsalt(k,bi,bj)))
146         $          tmpfld3d(i,j,k,bi,bj)=
147         $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
148    #endif
149                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
150       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
151    
152                enddo                enddo
153              enddo              enddo
154            enddo            enddo
155         enddo         enddo
156        enddo        enddO
157  #endif  #endif
158    
159  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
160    #ifdef ALLOW_PTRACERS
161  c--   Temperature field.  c--   Temperature field.
162        il=ilnblnk( xx_tr1_file )        il=ilnblnk( xx_tr1_file )
163        write(fnametr1(1:80),'(2a,i10.10)')        write(fnametr1(1:80),'(2a,i10.10)')
164       &     xx_tr1_file(1:il),'.',optimcycle       &     xx_tr1_file(1:il),'.',optimcycle
165        call active_read_xyz( fnametr1, tmpfld3d, 1,        call active_read_xyz_loc( fnametr1, tmpfld3d, 1,
166       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
167       &                      mythid, xx_tr1_dummy )       &                      mythid, xx_tr1_dummy )
168    
# Line 158  c--   Temperature field. Line 171  c--   Temperature field.
171            do k = 1,nr            do k = 1,nr
172              do j = jmin,jmax              do j = jmin,jmax
173                do i = imin,imax                do i = imin,imax
 #if (defined (ALLOW_PASSIVE_TRACER))  
                 tr1(i,j,k,bi,bj) = tr1(i,j,k,bi,bj) +  
      &                               fac*tmpfld3d(i,j,k,bi,bj)  
 #elif (defined (ALLOW_PTRACERS))  
                 IF ( NUMBER_OF_PTRACERS .GT. 1 ) STOP  
      & 'ALLOW_TR10_CONTROL with ALLOW_PTRACERS implemented for 1 tracer'  
174                  ptracer(i,j,k,bi,bj,1) = ptracer(i,j,k,bi,bj,1) +                  ptracer(i,j,k,bi,bj,1) = ptracer(i,j,k,bi,bj,1) +
175       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
 #endif  
176                enddo                enddo
177              enddo              enddo
178            enddo            enddo
179         enddo         enddo
180        enddo        enddo
181  #endif  #endif
182    #endif
183    
184  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
185  c--   diffkr.  c--   diffkr.
186        il=ilnblnk( xx_diffkr_file )        il=ilnblnk( xx_diffkr_file )
187        write(fnamediffkr(1:80),'(2a,i10.10)')        write(fnamediffkr(1:80),'(2a,i10.10)')
188       &     xx_diffkr_file(1:il),'.',optimcycle       &     xx_diffkr_file(1:il),'.',optimcycle
189        call active_read_xyz( fnamediffkr, tmpfld3d, 1,        call active_read_xyz_loc( fnamediffkr, tmpfld3d, 1,
190       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
191       &                      mythid, xx_diffkr_dummy )       &                      mythid, xx_diffkr_dummy )
192        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 201  c--   kapgm. Line 208  c--   kapgm.
208        il=ilnblnk( xx_kapgm_file )        il=ilnblnk( xx_kapgm_file )
209        write(fnamekapgm(1:80),'(2a,i10.10)')        write(fnamekapgm(1:80),'(2a,i10.10)')
210       &     xx_kapgm_file(1:il),'.',optimcycle       &     xx_kapgm_file(1:il),'.',optimcycle
211        call active_read_xyz( fnamekapgm, tmpfld3d, 1,        call active_read_xyz_loc( fnamekapgm, tmpfld3d, 1,
212       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
213       &                      mythid, xx_kapgm_dummy )       &                      mythid, xx_kapgm_dummy )
214        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 223  c--   y-component EP-flux field. Line 230  c--   y-component EP-flux field.
230        il=ilnblnk( xx_efluxy_file )        il=ilnblnk( xx_efluxy_file )
231        write(fnameefluxy(1:80),'(2a,i10.10)')        write(fnameefluxy(1:80),'(2a,i10.10)')
232       &     xx_efluxy_file(1:il),'.',optimcycle       &     xx_efluxy_file(1:il),'.',optimcycle
233        call active_read_xyz( fnameefluxy, tmpfld3d, 1,        call active_read_xyz_loc( fnameefluxy, tmpfld3d, 1,
234       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
235       &                      mythid, xx_efluxy_dummy )       &                      mythid, xx_efluxy_dummy )
236    
# Line 250  c--   p-component EP-flux field. Line 257  c--   p-component EP-flux field.
257        il=ilnblnk( xx_efluxp_file )        il=ilnblnk( xx_efluxp_file )
258        write(fnameefluxp(1:80),'(2a,i10.10)')        write(fnameefluxp(1:80),'(2a,i10.10)')
259       &     xx_efluxp_file(1:il),'.',optimcycle       &     xx_efluxp_file(1:il),'.',optimcycle
260        call active_read_xyz( fnameefluxp, tmpfld3d, 1,        call active_read_xyz_loc( fnameefluxp, tmpfld3d, 1,
261       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
262       &                      mythid, xx_efluxp_dummy )       &                      mythid, xx_efluxp_dummy )
263    
# Line 279  c--   bottom drag Line 286  c--   bottom drag
286        il=ilnblnk( xx_bottomdrag_file )        il=ilnblnk( xx_bottomdrag_file )
287        write(fnamebottomdrag(1:80),'(2a,i10.10)')        write(fnamebottomdrag(1:80),'(2a,i10.10)')
288       &     xx_bottomdrag_file(1:il),'.',optimcycle       &     xx_bottomdrag_file(1:il),'.',optimcycle
289        call active_read_xy ( fnamebottomdrag, tmpfld2d, 1,        call active_read_xy_loc ( fnamebottomdrag, tmpfld2d, 1,
290       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
291       &                      mythid, xx_bottomdrag_dummy )       &                      mythid, xx_bottomdrag_dummy )
292        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 304  c--   Update the tile edges. Line 311  c--   Update the tile edges.
311        _EXCH_XYZ_R8(  salt, mythid )        _EXCH_XYZ_R8(  salt, mythid )
312  #endif  #endif
313  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
314  # if (defined (ALLOW_PASSIVE_TRACER))  #ifdef ALLOW_PTRACERS
       _EXCH_XYZ_R8(     tr1, mythid )  
 # elif (defined (ALLOW_PTRACERS))  
315        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,1),myThid)        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,1),myThid)
316  # endif  #endif
317  #endif  #endif
318  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
319        _EXCH_XYZ_R8( diffkr, mythid)        _EXCH_XYZ_R8( diffkr, mythid)

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22