New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5214 for branches/2014/dev_r4650_UKMO11_restart_functionality/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90 – NEMO

Ignore:
Timestamp:
2015-04-15T17:14:06+02:00 (9 years ago)
Author:
davestorkey
Message:

Merge in changes from the trunk up to rev 5107.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO11_restart_functionality/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r5208 r5214  
    5151   LOGICAL, PUBLIC ::   ln_dynvor_mix   !: mixed scheme 
    5252   LOGICAL, PUBLIC ::   ln_dynvor_een   !: energy and enstrophy conserving scheme 
     53   LOGICAL, PUBLIC ::   ln_dynvor_een_old !: energy and enstrophy conserving scheme (original formulation) 
    5354 
    5455   INTEGER ::   nvor = 0   ! type of vorticity trend used 
     
    596597 
    597598      IF( kt == nit000 .OR. lk_vvl ) THEN      ! reciprocal of e3 at F-point (masked averaging of e3t over ocean points) 
    598          DO jk = 1, jpk 
    599             DO jj = 1, jpjm1 
    600                DO ji = 1, jpim1 
    601                   ze3  = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk)   & 
    602                      &   + fse3t(ji,jj  ,jk)*tmask(ji,jj  ,jk) + fse3t(ji+1,jj  ,jk)*tmask(ji+1,jj  ,jk) ) 
    603                   zmsk = (                   tmask(ji,jj+1,jk) +                     tmask(ji+1,jj+1,jk)   & 
    604                      &                     + tmask(ji,jj  ,jk) +                     tmask(ji+1,jj  ,jk) ) 
    605                   IF( ze3 /= 0._wp )   ze3f(ji,jj,jk) = zmsk / ze3 
    606                END DO 
    607             END DO 
    608          END DO 
     599 
     600         IF( ln_dynvor_een_old ) THEN ! original formulation 
     601            DO jk = 1, jpk 
     602               DO jj = 1, jpjm1 
     603                  DO ji = 1, jpim1 
     604                     ze3  = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk)   & 
     605                        &   + fse3t(ji,jj  ,jk)*tmask(ji,jj  ,jk) + fse3t(ji+1,jj  ,jk)*tmask(ji+1,jj  ,jk) ) 
     606                     IF( ze3 /= 0._wp )   ze3f(ji,jj,jk) = 4.0_wp / ze3 
     607                  END DO 
     608               END DO 
     609            END DO 
     610         ELSE ! new formulation from NEMO 3.6 
     611            DO jk = 1, jpk 
     612               DO jj = 1, jpjm1 
     613                  DO ji = 1, jpim1 
     614                     ze3  = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk)   & 
     615                        &   + fse3t(ji,jj  ,jk)*tmask(ji,jj  ,jk) + fse3t(ji+1,jj  ,jk)*tmask(ji+1,jj  ,jk) ) 
     616                     zmsk = (                   tmask(ji,jj+1,jk) +                     tmask(ji+1,jj+1,jk)   & 
     617                        &                     + tmask(ji,jj  ,jk) +                     tmask(ji+1,jj  ,jk) ) 
     618                     IF( ze3 /= 0._wp )   ze3f(ji,jj,jk) = zmsk / ze3 
     619                  END DO 
     620               END DO 
     621            END DO 
     622         ENDIF 
     623 
    609624         CALL lbc_lnk( ze3f, 'F', 1. ) 
    610625      ENDIF 
     
    705720      INTEGER ::   ios             ! Local integer output status for namelist read 
    706721      !! 
    707       NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een 
     722      NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een, ln_dynvor_een_old 
    708723      !!---------------------------------------------------------------------- 
    709724 
     
    726741         WRITE(numout,*) '           mixed enstrophy/energy conserving scheme   ln_dynvor_mix = ', ln_dynvor_mix 
    727742         WRITE(numout,*) '           enstrophy and energy conserving scheme     ln_dynvor_een = ', ln_dynvor_een 
     743         WRITE(numout,*) '           enstrophy and energy conserving scheme (old) ln_dynvor_een_old= ', ln_dynvor_een_old 
    728744      ENDIF 
    729745 
     
    749765      IF( ln_dynvor_mix )   ioptio = ioptio + 1 
    750766      IF( ln_dynvor_een )   ioptio = ioptio + 1 
     767      IF( ln_dynvor_een_old )   ioptio = ioptio + 1 
    751768      IF( lk_esopa      )   ioptio =          1 
    752769 
     
    757774      IF( ln_dynvor_ens )   nvor =  1 
    758775      IF( ln_dynvor_mix )   nvor =  2 
    759       IF( ln_dynvor_een )   nvor =  3 
     776      IF( ln_dynvor_een .or. ln_dynvor_een_old )   nvor =  3 
    760777      IF( lk_esopa      )   nvor = -1 
    761778       
Note: See TracChangeset for help on using the changeset viewer.