/[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.25 by jmc, Tue Oct 9 00:00:00 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)                  if(theta(i,j,k,bi,bj).lt.-2.0)
121       &               theta(i,j,k,bi,bj)= -2.0       &               theta(i,j,k,bi,bj)= -2.0
122                enddo                enddo
123              enddo              enddo
124            enddo            enddo
# Line 146  c--   Temperature field. Line 147  c--   Temperature field.
147       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
148       $          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))
149  #endif  #endif
150  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
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*xx_salt(i,j,k,bi,bj) +       &                               fac*xx_salt(i,j,k,bi,bj) +
153       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
# Line 200  c--   sst0. Line 201  c--   sst0.
201            do j = jmin,jmax            do j = jmin,jmax
202              do i = imin,imax              do i = imin,imax
203  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)
204                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)
205       &                             + tmpfld2d(i,j,bi,bj)       &                             + tmpfld2d(i,j,bi,bj)
206              enddo              enddo
207            enddo            enddo
# Line 341  c--   bottom drag Line 342  c--   bottom drag
342          do bi = itlo,ithi          do bi = itlo,ithi
343            do j = jmin,jmax            do j = jmin,jmax
344              do i = imin,imax              do i = imin,imax
345                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)
346       &                                   + tmpfld2d(i,j,bi,bj)       &                                   + tmpfld2d(i,j,bi,bj)
347              enddo              enddo
348            enddo            enddo
# Line 406  c-- initial zonal velocity Line 407  c-- initial zonal velocity
407            do k = 1,nr            do k = 1,nr
408              do j = jmin,jmax              do j = jmin,jmax
409                do i = imin,imax                do i = imin,imax
410  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
411                  uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +                  uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
412       &                                  fac*xx_uvel(i,j,k,bi,bj)       &                                  fac*xx_uvel(i,j,k,bi,bj)
413  #else  #else
# Line 433  c-- initial merid. velocity Line 434  c-- initial merid. velocity
434            do k = 1,nr            do k = 1,nr
435              do j = jmin,jmax              do j = jmin,jmax
436                do i = imin,imax                do i = imin,imax
437  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
438                  vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +                  vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
439       &                                  fac*xx_vvel(i,j,k,bi,bj)       &                                  fac*xx_vvel(i,j,k,bi,bj)
440  #else  #else
# Line 459  c--   initial Eta. Line 460  c--   initial Eta.
460          do bi = itlo,ithi          do bi = itlo,ithi
461            do j = jmin,jmax            do j = jmin,jmax
462              do i = imin,imax              do i = imin,imax
463  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
464                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
465       &                              fac*xx_etan(i,j,bi,bj)       &                              fac*xx_etan(i,j,bi,bj)
466  #else  #else
467                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
468       &                              fac*tmpfld2d(i,j,bi,bj)       &                              fac*tmpfld2d(i,j,bi,bj)
469  #endif  #endif
470              enddo              enddo
# Line 484  c--   SST relaxation coefficient. Line 485  c--   SST relaxation coefficient.
485          do bi = itlo,ithi          do bi = itlo,ithi
486            do j = jmin,jmax            do j = jmin,jmax
487              do i = imin,imax              do i = imin,imax
488                lambdaThetaClimRelax(i,j,bi,bj) =                lambdaThetaClimRelax(i,j,bi,bj) =
489       &              lambdaThetaClimRelax(i,j,bi,bj)       &              lambdaThetaClimRelax(i,j,bi,bj)
490       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
491              enddo              enddo
492            enddo            enddo
# Line 505  c--   SSS relaxation coefficient. Line 506  c--   SSS relaxation coefficient.
506          do bi = itlo,ithi          do bi = itlo,ithi
507            do j = jmin,jmax            do j = jmin,jmax
508              do i = imin,imax              do i = imin,imax
509                lambdaSaltClimRelax(i,j,bi,bj) =                lambdaSaltClimRelax(i,j,bi,bj) =
510       &              lambdaSaltClimRelax(i,j,bi,bj)       &              lambdaSaltClimRelax(i,j,bi,bj)
511       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
512              enddo              enddo
513            enddo            enddo
# Line 514  c--   SSS relaxation coefficient. Line 515  c--   SSS relaxation coefficient.
515        enddo        enddo
516  #endif  #endif
517    
518    #ifdef ALLOW_SEAICE
519          call seaice_ctrl_map_ini( mythid )
520    #endif
521    
522  c--   Update the tile edges.  c--   Update the tile edges.
523    
524  #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.25

  ViewVC Help
Powered by ViewVC 1.1.22