/[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.24 by heimbach, Thu Jun 21 04:06:21 2007 UTC revision 1.29 by heimbach, Fri Mar 28 18:48:05 2008 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4  #include "CTRL_CPPOPTIONS.h"  #include "CTRL_CPPOPTIONS.h"
5    
# Line 10  C     !INTERFACE: Line 11  C     !INTERFACE:
11  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
12  c     *=================================================================  c     *=================================================================
13  c     | SUBROUTINE ctrl_map_ini  c     | SUBROUTINE ctrl_map_ini
14  c     | Add the temperature, salinity, and diffusivity parts of the  c     | Add the temperature, salinity, and diffusivity parts of the
15  c     | control vector to the model state and update the tile halos.  c     | control vector to the model state and update the tile halos.
16  c     | The control vector is defined in the header file "ctrl.h".  c     | The control vector is defined in the header file "ctrl.h".
17  c     *=================================================================  c     *=================================================================
18  C     \ev  C     \ev
# Line 31  c     == global variables == Line 32  c     == global variables ==
32  #include "optim.h"  #include "optim.h"
33  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
34  # include "PTRACERS_SIZE.h"  # include "PTRACERS_SIZE.h"
35  # include "PTRACERS.h"  c#include "PTRACERS_PARAMS.h"
36    # include "PTRACERS_FIELDS.h"
37  #endif  #endif
38  #ifdef ALLOW_ECCO  #ifdef ALLOW_ECCO
39  # include "ecco_cost.h"  # include "ecco_cost.h"
# Line 116  c--   Temperature field. Line 118  c--   Temperature field.
118                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
119       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
120  #endif  #endif
121                  if(theta(i,j,k,bi,bj).lt.-2.0)  #ifndef DISABLE_CTRL_THETA_LIMIT
122       &               theta(i,j,k,bi,bj)= -2.0                  if(theta(i,j,k,bi,bj).lt.-2.0)
123         &               theta(i,j,k,bi,bj)= -2.0
124    #endif
125                enddo                enddo
126              enddo              enddo
127            enddo            enddo
# Line 200  c--   sst0. Line 204  c--   sst0.
204            do j = jmin,jmax            do j = jmin,jmax
205              do i = imin,imax              do i = imin,imax
206  cph              sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)  cph              sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)
207                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)
208       &                             + tmpfld2d(i,j,bi,bj)       &                             + tmpfld2d(i,j,bi,bj)
209              enddo              enddo
210            enddo            enddo
# Line 229  cph              sss(i,j,bi,bj) = sss(i, Line 233  cph              sss(i,j,bi,bj) = sss(i,
233        enddo        enddo
234  #endif  #endif
235    
236    #ifdef ALLOW_AUTODIFF
237  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
238  c--   diffkr.  c--   diffkr.
239        il=ilnblnk( xx_diffkr_file )        il=ilnblnk( xx_diffkr_file )
# Line 250  c--   diffkr. Line 255  c--   diffkr.
255         enddo         enddo
256        enddo        enddo
257  #endif  #endif
258    #endif
259    
260    #ifdef ALLOW_AUTODIFF
261  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
262  c--   kapgm.  c--   kapgm.
263        il=ilnblnk( xx_kapgm_file )        il=ilnblnk( xx_kapgm_file )
# Line 272  c--   kapgm. Line 279  c--   kapgm.
279         enddo         enddo
280        enddo        enddo
281  #endif  #endif
282    #endif
283    
284    #ifdef ALLOW_AUTODIFF
285    #ifdef ALLOW_KAPREDI_CONTROL
286    c--   kapredi.
287          il=ilnblnk( xx_kapredi_file )
288          write(fnamegeneric(1:80),'(2a,i10.10)')
289         &     xx_kapredi_file(1:il),'.',optimcycle
290          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
291         &                      doglobalread, ladinit, optimcycle,
292         &                      mythid, xx_kapredi_dummy )
293          do bj = jtlo,jthi
294            do bi = itlo,ithi
295              do k = 1,nr
296                do j = jmin,jmax
297                  do i = imin,imax
298                    kapredi(i,j,k,bi,bj) = kapredi(i,j,k,bi,bj) +
299         &                               tmpfld3d(i,j,k,bi,bj)
300                  enddo
301                enddo
302              enddo
303           enddo
304          enddo
305    #endif
306    #endif
307    
308  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
309  c--   y-component EP-flux field.  c--   y-component EP-flux field.
# Line 341  c--   bottom drag Line 373  c--   bottom drag
373          do bi = itlo,ithi          do bi = itlo,ithi
374            do j = jmin,jmax            do j = jmin,jmax
375              do i = imin,imax              do i = imin,imax
376                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)
377       &                                   + tmpfld2d(i,j,bi,bj)       &                                   + tmpfld2d(i,j,bi,bj)
378              enddo              enddo
379            enddo            enddo
# Line 463  c--   initial Eta. Line 495  c--   initial Eta.
495                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
496       &                              fac*xx_etan(i,j,bi,bj)       &                              fac*xx_etan(i,j,bi,bj)
497  #else  #else
498                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
499       &                              fac*tmpfld2d(i,j,bi,bj)       &                              fac*tmpfld2d(i,j,bi,bj)
500  #endif  #endif
501              enddo              enddo
# Line 484  c--   SST relaxation coefficient. Line 516  c--   SST relaxation coefficient.
516          do bi = itlo,ithi          do bi = itlo,ithi
517            do j = jmin,jmax            do j = jmin,jmax
518              do i = imin,imax              do i = imin,imax
519                lambdaThetaClimRelax(i,j,bi,bj) =                lambdaThetaClimRelax(i,j,bi,bj) =
520       &              lambdaThetaClimRelax(i,j,bi,bj)       &              lambdaThetaClimRelax(i,j,bi,bj)
521       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
522              enddo              enddo
523            enddo            enddo
# Line 505  c--   SSS relaxation coefficient. Line 537  c--   SSS relaxation coefficient.
537          do bi = itlo,ithi          do bi = itlo,ithi
538            do j = jmin,jmax            do j = jmin,jmax
539              do i = imin,imax              do i = imin,imax
540                lambdaSaltClimRelax(i,j,bi,bj) =                lambdaSaltClimRelax(i,j,bi,bj) =
541       &              lambdaSaltClimRelax(i,j,bi,bj)       &              lambdaSaltClimRelax(i,j,bi,bj)
542       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
543              enddo              enddo
544            enddo            enddo
# Line 531  c--   Update the tile edges. Line 563  c--   Update the tile edges.
563        _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)
564  #endif  #endif
565  #endif  #endif
566  #ifdef ALLOW_DIFFKR_CONTROL  
567    #ifdef ALLOW_AUTODIFF
568    # ifdef ALLOW_DIFFKR_CONTROL
569        _EXCH_XYZ_R8( diffkr, mythid)        _EXCH_XYZ_R8( diffkr, mythid)
570  #endif  # endif
571  #ifdef ALLOW_KAPGM_CONTROL  # ifdef ALLOW_KAPGM_CONTROL
572        _EXCH_XYZ_R8( kapgm, mythid)        _EXCH_XYZ_R8( kapgm, mythid)
573    # endif
574    # ifdef ALLOW_KAPREDI_CONTROL
575          _EXCH_XYZ_R8( kapredi, mythid)
576    # endif
577  #endif  #endif
578    
579  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
580        _EXCH_XYZ_R8( EfluxY, mythid )        _EXCH_XYZ_R8( EfluxY, mythid )
581  #endif  #endif

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.29

  ViewVC Help
Powered by ViewVC 1.1.22