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 5282 for branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90 – NEMO

Ignore:
Timestamp:
2015-05-18T17:19:50+02:00 (9 years ago)
Author:
diovino
Message:

Dev. branch CMCC4_simplification ticket #1456

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90

    r4990 r5282  
    2727 
    2828   PUBLIC   trc_zdf          ! called by step.F90  
    29    PUBLIC   trc_zdf_alloc    ! called by nemogcm.F90  
    3029 
    3130   INTEGER ::   nzdf = 0               ! type vertical diffusion algorithm used 
    3231      !                                ! defined from ln_zdf...  namlist logicals) 
    33    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) ::  r2dt   ! vertical profile time-step, = 2 rdttra 
    34       !                                                 ! except at nittrc000 (=rdttra) if neuler=0 
     32   REAL(wp) ::  r2dtrc   ! vertical profile time-step, = 2 rdt 
     33      !                  ! except at nittrc000 (=rdt) if neuler=0 
    3534 
    3635   !! * Substitutions 
     
    4443   !!---------------------------------------------------------------------- 
    4544CONTAINS 
    46     
    47    INTEGER FUNCTION trc_zdf_alloc() 
    48       !!---------------------------------------------------------------------- 
    49       !!                  ***  ROUTINE trc_zdf_alloc  *** 
    50       !!---------------------------------------------------------------------- 
    51       ALLOCATE( r2dt(jpk) , STAT=trc_zdf_alloc ) 
    52       ! 
    53       IF( trc_zdf_alloc /= 0 )   CALL ctl_warn('trc_zdf_alloc : failed to allocate array.') 
    54       ! 
    55    END FUNCTION trc_zdf_alloc 
    56  
    5745 
    5846   SUBROUTINE trc_zdf( kt ) 
     
    7462 
    7563      IF( ln_top_euler) THEN 
    76          r2dt(:) =  rdttrc(:)              ! = rdttrc (use Euler time stepping) 
     64         r2dtrc =  rdttrc              ! = rdttrc (use Euler time stepping) 
    7765      ELSE 
    7866         IF( neuler == 0 .AND. kt == nittrc000 ) THEN     ! at nittrc000 
    79             r2dt(:) =  rdttrc(:)           ! = rdttrc (restarting with Euler time stepping) 
     67            r2dtrc =  rdttrc           ! = rdttrc (restarting with Euler time stepping) 
    8068         ELSEIF( kt <= nittrc000 + 1 ) THEN          ! at nittrc000 or nittrc000+1 
    81             r2dt(:) = 2. * rdttrc(:)       ! = 2 rdttrc (leapfrog) 
     69            r2dtrc = 2. * rdttrc       ! = 2 rdttrc (leapfrog) 
    8270         ENDIF 
    8371      ENDIF 
     
    9078      SELECT CASE ( nzdf )                       ! compute lateral mixing trend and add it to the general trend 
    9179      CASE ( -1 )                                       ! esopa: test all possibility with control print 
    92          CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )  
     80         CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dtrc, nn_trczdf_exp, trb, tra, jptra ) 
    9381         WRITE(charout, FMT="('zdf1 ')") ;  CALL prt_ctl_trc_info(charout) 
    9482                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    95          CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dt,                trb, tra, jptra )  
     83         CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dtrc,                trb, tra, jptra ) 
    9684         WRITE(charout, FMT="('zdf2 ')") ;  CALL prt_ctl_trc_info(charout) 
    9785                                            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    98       CASE ( 0 ) ;  CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dt, nn_trczdf_exp, trb, tra, jptra )    !   explicit scheme  
    99       CASE ( 1 ) ;  CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dt,                trb, tra, jptra )    !   implicit scheme           
     86      CASE ( 0 ) ;  CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dtrc, nn_trczdf_exp, trb, tra, jptra )    !   explicit scheme 
     87      CASE ( 1 ) ;  CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dtrc,                trb, tra, jptra )    !   implicit scheme 
    10088 
    10189      END SELECT 
     
    10492         DO jn = 1, jptra 
    10593            DO jk = 1, jpkm1 
    106                ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dt(jk) ) - ztrtrd(:,:,jk,jn) 
     94               ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dtrc ) - ztrtrd(:,:,jk,jn) 
    10795            END DO 
    10896            CALL trd_tra( kt, 'TRC', jn, jptra_zdf, ztrtrd(:,:,:,jn) ) 
Note: See TracChangeset for help on using the changeset viewer.