/[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.22 by heimbach, Mon May 14 22:02:34 2007 UTC revision 1.26 by heimbach, Tue Oct 30 20:19:13 2007 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 108  c--   Temperature field. Line 109  c--   Temperature field.
109       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
110       $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))       $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
111  #endif  #endif
112  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
113                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
114       &                               fac*xx_theta(i,j,k,bi,bj) +       &                               fac*xx_theta(i,j,k,bi,bj) +
115       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
# Line 116  c--   Temperature field. Line 117  c--   Temperature field.
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  #endif  #endif
120                  if(theta(i,j,k,bi,bj).lt.-2.0)  #ifndef DISABLE_CTRL_THETA_LIMIT
121       &               theta(i,j,k,bi,bj)= -2.0                  if(theta(i,j,k,bi,bj).lt.-2.0)
122         &               theta(i,j,k,bi,bj)= -2.0
123    #endif
124                enddo                enddo
125              enddo              enddo
126            enddo            enddo
# Line 146  c--   Temperature field. Line 149  c--   Temperature field.
149       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
150       $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))       $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
151  #endif  #endif
152  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
153                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
154       &                               fac*xx_salt(i,j,k,bi,bj) +       &                               fac*xx_salt(i,j,k,bi,bj) +
155       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
# Line 200  c--   sst0. Line 203  c--   sst0.
203            do j = jmin,jmax            do j = jmin,jmax
204              do i = imin,imax              do i = imin,imax
205  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)
206                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)
207       &                             + tmpfld2d(i,j,bi,bj)       &                             + tmpfld2d(i,j,bi,bj)
208              enddo              enddo
209            enddo            enddo
# Line 341  c--   bottom drag Line 344  c--   bottom drag
344          do bi = itlo,ithi          do bi = itlo,ithi
345            do j = jmin,jmax            do j = jmin,jmax
346              do i = imin,imax              do i = imin,imax
347                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)
348       &                                   + tmpfld2d(i,j,bi,bj)       &                                   + tmpfld2d(i,j,bi,bj)
349              enddo              enddo
350            enddo            enddo
# Line 406  c-- initial zonal velocity Line 409  c-- initial zonal velocity
409            do k = 1,nr            do k = 1,nr
410              do j = jmin,jmax              do j = jmin,jmax
411                do i = imin,imax                do i = imin,imax
412  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
413                  uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +                  uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
414       &                                  fac*xx_uvel(i,j,k,bi,bj)       &                                  fac*xx_uvel(i,j,k,bi,bj)
415  #else  #else
# Line 433  c-- initial merid. velocity Line 436  c-- initial merid. velocity
436            do k = 1,nr            do k = 1,nr
437              do j = jmin,jmax              do j = jmin,jmax
438                do i = imin,imax                do i = imin,imax
439  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
440                  vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +                  vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
441       &                                  fac*xx_vvel(i,j,k,bi,bj)       &                                  fac*xx_vvel(i,j,k,bi,bj)
442  #else  #else
# Line 459  c--   initial Eta. Line 462  c--   initial Eta.
462          do bi = itlo,ithi          do bi = itlo,ithi
463            do j = jmin,jmax            do j = jmin,jmax
464              do i = imin,imax              do i = imin,imax
465  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
466                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
467       &                              fac*xx_etan(i,j,bi,bj)       &                              fac*xx_etan(i,j,bi,bj)
468  #else  #else
469                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
470       &                              fac*tmpfld2d(i,j,bi,bj)       &                              fac*tmpfld2d(i,j,bi,bj)
471  #endif  #endif
472              enddo              enddo
# Line 484  c--   SST relaxation coefficient. Line 487  c--   SST relaxation coefficient.
487          do bi = itlo,ithi          do bi = itlo,ithi
488            do j = jmin,jmax            do j = jmin,jmax
489              do i = imin,imax              do i = imin,imax
490                lambdaThetaClimRelax(i,j,bi,bj) =                lambdaThetaClimRelax(i,j,bi,bj) =
491       &              lambdaThetaClimRelax(i,j,bi,bj)       &              lambdaThetaClimRelax(i,j,bi,bj)
492       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
493              enddo              enddo
494            enddo            enddo
# Line 505  c--   SSS relaxation coefficient. Line 508  c--   SSS relaxation coefficient.
508          do bi = itlo,ithi          do bi = itlo,ithi
509            do j = jmin,jmax            do j = jmin,jmax
510              do i = imin,imax              do i = imin,imax
511                lambdaSaltClimRelax(i,j,bi,bj) =                lambdaSaltClimRelax(i,j,bi,bj) =
512       &              lambdaSaltClimRelax(i,j,bi,bj)       &              lambdaSaltClimRelax(i,j,bi,bj)
513       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
514              enddo              enddo
515            enddo            enddo
# Line 514  c--   SSS relaxation coefficient. Line 517  c--   SSS relaxation coefficient.
517        enddo        enddo
518  #endif  #endif
519    
520    #ifdef ALLOW_SEAICE
521          call seaice_ctrl_map_ini( mythid )
522    #endif
523    
524  c--   Update the tile edges.  c--   Update the tile edges.
525    
526  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.22