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 8093 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90 – NEMO

Ignore:
Timestamp:
2017-05-30T10:13:14+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09) - step-6: prepare some forthcoming evolutions (ZDF modules mainly)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90

    r7990 r8093  
    3838CONTAINS 
    3939 
    40    SUBROUTINE zdf_evd( kt ) 
     40   SUBROUTINE zdf_evd( kt, p_avm, p_avt ) 
    4141      !!---------------------------------------------------------------------- 
    4242      !!                  ***  ROUTINE zdf_evd  *** 
     
    5555      !! ** Action  :   avt, avm   enhanced where static instability occurs 
    5656      !!---------------------------------------------------------------------- 
    57       INTEGER, INTENT(in) ::   kt   ! ocean time-step indexocean time step 
     57      INTEGER                    , INTENT(in   ) ::   kt             ! ocean time-step indexocean time step 
     58      REAL(wp), DIMENSION(:,:,:) , INTENT(inout) ::   p_avm, p_avt   !  momentum and tracer Kz (w-points) 
    5859      ! 
    5960      INTEGER ::   ji, jj, jk   ! dummy loop indices 
     
    7172      ! 
    7273      ! 
    73       zavt_evd(:,:,:) = avt(:,:,:)           ! set avt prior to evd application 
     74      zavt_evd(:,:,:) = p_avt(:,:,:)         ! set avt prior to evd application 
    7475      ! 
    7576      SELECT CASE ( nn_evdm ) 
     
    7778      CASE ( 1 )           !==  enhance tracer & momentum Kz  ==!   (if rn2<-1.e-12) 
    7879         ! 
    79          zavm_evd(:,:,:) = avm(:,:,:)           ! set avm prior to evd application 
     80         zavm_evd(:,:,:) = p_avm(:,:,:)      ! set avm prior to evd application 
    8081         ! 
    8182!! change last digits results 
    8283!         WHERE( MAX( rn2(2:jpi,2:jpj,2:jpkm1), rn2b(2:jpi,2:jpj,2:jpkm1) )  <= -1.e-12 ) THEN 
    83 !            avt(2:jpi,2:jpj,2:jpkm1) = rn_evd * wmask(2:jpi,2:jpj,2:jpkm1) 
    84 !            avm(2:jpi,2:jpj,2:jpkm1) = rn_evd * wmask(2:jpi,2:jpj,2:jpkm1) 
     84!            p_avt(2:jpi,2:jpj,2:jpkm1) = rn_evd * wmask(2:jpi,2:jpj,2:jpkm1) 
     85!            p_avm(2:jpi,2:jpj,2:jpkm1) = rn_evd * wmask(2:jpi,2:jpj,2:jpkm1) 
    8586!         END WHERE 
    8687         ! 
     
    8990               DO ji = 2, jpim1 
    9091                  IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 ) THEN 
    91                      avt(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
    92                      avm(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
     92                     p_avt(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
     93                     p_avm(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
    9394                  ENDIF 
    9495               END DO 
     
    9697         END DO  
    9798         ! 
    98          zavm_evd(:,:,:) = avm(:,:,:) - zavm_evd(:,:,:)   ! change in avm due to evd 
    99          CALL iom_put( "avm_evd", zavm_evd )              ! output this change 
     99         zavm_evd(:,:,:) = p_avm(:,:,:) - zavm_evd(:,:,:)   ! change in avm due to evd 
     100         CALL iom_put( "avm_evd", zavm_evd )                ! output this change 
    100101         ! 
    101102      CASE DEFAULT         !==  enhance tracer Kz  ==!   (if rn2<-1.e-12)  
    102103!! change last digits results 
    103104!         WHERE( MAX( rn2(2:jpi,2:jpj,2:jpkm1), rn2b(2:jpi,2:jpj,2:jpkm1) )  <= -1.e-12 ) 
    104 !            avt(2:jpi,2:jpj,2:jpkm1) = rn_evd * wmask(2:jpi,2:jpj,2:jpkm1) 
     105!            p_avt(2:jpi,2:jpj,2:jpkm1) = rn_evd * wmask(2:jpi,2:jpj,2:jpkm1) 
    105106!         END WHERE 
    106107 
     
    109110               DO ji = 2, jpim1 
    110111                  IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 )   & 
    111                      avt(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
     112                     p_avt(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
    112113               END DO 
    113114            END DO 
     
    116117      END SELECT  
    117118      ! 
    118       zavt_evd(:,:,:) = avt(:,:,:) - zavt_evd(:,:,:)   ! change in avt due to evd 
     119      zavt_evd(:,:,:) = p_avt(:,:,:) - zavt_evd(:,:,:)   ! change in avt due to evd 
    119120      CALL iom_put( "avt_evd", zavt_evd )              ! output this change 
    120121      IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 
Note: See TracChangeset for help on using the changeset viewer.