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 14072 for NEMO/trunk/src/OCE/ZDF/zdfphy.F90 – NEMO

Ignore:
Timestamp:
2020-12-04T08:48:38+01:00 (3 years ago)
Author:
laurent
Message:

Merging branch "2020/dev_r13648_ASINTER-04_laurent_bulk_ice", ticket #2369

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ZDF/zdfphy.F90

    r14045 r14072  
    99   !!---------------------------------------------------------------------- 
    1010   !!   zdf_phy_init  : initialization of all vertical physics packages 
    11    !!   zdf_phy       : upadate at each time-step the vertical mixing coeff.  
     11   !!   zdf_phy       : upadate at each time-step the vertical mixing coeff. 
    1212   !!---------------------------------------------------------------------- 
    1313   USE oce            ! ocean dynamics and tracers variables 
    14    USE zdf_oce        ! vertical physics: shared variables          
     14   USE zdf_oce        ! vertical physics: shared variables 
    1515   USE zdfdrg         ! vertical physics: top/bottom drag coef. 
    1616   USE zdfsh2         ! vertical physics: shear production term of TKE 
    17    USE zdfric         ! vertical physics: RIChardson dependent vertical mixing    
     17   USE zdfric         ! vertical physics: RIChardson dependent vertical mixing 
    1818   USE zdftke         ! vertical physics: TKE vertical mixing 
    1919   USE zdfgls         ! vertical physics: GLS vertical mixing 
    2020   USE zdfosm         ! vertical physics: OSMOSIS vertical mixing 
    21    USE zdfddm         ! vertical physics: double diffusion mixing       
    22    USE zdfevd         ! vertical physics: convection via enhanced vertical diffusion   
    23    USE zdfmfc         ! vertical physics: Mass Flux Convection  
    24    USE zdfiwm         ! vertical physics: internal wave-induced mixing   
     21   USE zdfddm         ! vertical physics: double diffusion mixing 
     22   USE zdfevd         ! vertical physics: convection via enhanced vertical diffusion 
     23   USE zdfmfc         ! vertical physics: Mass Flux Convection 
     24   USE zdfiwm         ! vertical physics: internal wave-induced mixing 
    2525   USE zdfswm         ! vertical physics: surface  wave-induced mixing 
    2626   USE zdfmxl         ! vertical physics: mixed layer 
    2727   USE tranpc         ! convection: non penetrative adjustment 
    28    USE trc_oce        ! variables shared between passive tracer & ocean            
     28   USE trc_oce        ! variables shared between passive tracer & ocean 
    2929   USE sbc_oce        ! surface module (only for nn_isf in the option compatibility test) 
    3030   USE sbcrnf         ! surface boundary condition: runoff variables 
     
    4646   PUBLIC   zdf_phy       ! called by step.F90 
    4747 
    48    INTEGER ::   nzdf_phy   ! type of vertical closure used  
     48   INTEGER ::   nzdf_phy   ! type of vertical closure used 
    4949   !                       ! associated indicators 
    5050   INTEGER, PARAMETER ::   np_CST = 1   ! Constant Kz 
     
    6666      !!---------------------------------------------------------------------- 
    6767      !!                  ***  ROUTINE zdf_phy_init  *** 
    68       !!  
     68      !! 
    6969      !! ** Purpose :   initializations of the vertical ocean physics 
    7070      !! 
    71       !! ** Method  :   Read namelist namzdf, control logicals  
     71      !! ** Method  :   Read namelist namzdf, control logicals 
    7272      !!                set horizontal shape and vertical profile of background mixing coef. 
    7373      !!---------------------------------------------------------------------- 
     
    143143      IF( nn_avb == 0 ) THEN             ! Define avmb, avtb from namelist parameter 
    144144         avmb(:) = rn_avm0 
    145          avtb(:) = rn_avt0                      
     145         avtb(:) = rn_avt0 
    146146      ELSE                               ! Background profile of avt (fit a theoretical/observational profile (Krauss 1990) 
    147147         avmb(:) = rn_avm0 
     
    150150      ENDIF 
    151151      !                                  ! 2D shape of the avtb 
    152       avtb_2d(:,:) = 1._wp                   ! uniform  
     152      avtb_2d(:,:) = 1._wp                   ! uniform 
    153153      ! 
    154154      IF( nn_havtb == 1 ) THEN               ! decrease avtb by a factor of ten in the equatorial band 
     
    198198 
    199199      !                          !==  type of vertical turbulent closure  ==!    (set nzdf_phy) 
    200       ioptio = 0  
     200      ioptio = 0 
    201201      IF( ln_zdfcst ) THEN   ;   ioptio = ioptio + 1   ;    nzdf_phy = np_CST   ;   ENDIF 
    202202      IF( ln_zdfric ) THEN   ;   ioptio = ioptio + 1   ;    nzdf_phy = np_RIC   ;   CALL zdf_ric_init          ;   ENDIF 
     
    236236      !! ** Purpose :  Update ocean physics at each time-step 
    237237      !! 
    238       !! ** Method  :  
     238      !! ** Method  : 
    239239      !! 
    240240      !! ** Action  :   avm, avt vertical eddy viscosity and diffusivity at w-points 
     
    254254         ! 
    255255         !                       !* bottom drag 
    256          CALL zdf_drg( kt, Kmm, mbkt , r_Cdmin_bot, r_Cdmax_bot,   &   ! <<== in  
     256         CALL zdf_drg( kt, Kmm, mbkt , r_Cdmin_bot, r_Cdmax_bot,   &   ! <<== in 
    257257            &              r_z0_bot,   r_ke0_bot,    rCd0_bot,   & 
    258258            &                                        rCdU_bot  )     ! ==>> out : bottom drag [m/s] 
    259259         IF( ln_isfcav ) THEN    !* top drag   (ocean cavities) 
    260             CALL zdf_drg( kt, Kmm, mikt , r_Cdmin_top, r_Cdmax_top,   &   ! <<== in  
     260            CALL zdf_drg( kt, Kmm, mikt , r_Cdmin_top, r_Cdmax_top,   &   ! <<== in 
    261261               &              r_z0_top,   r_ke0_top,    rCd0_top,   & 
    262262               &                                        rCdU_top  )     ! ==>> out : bottom drag [m/s] 
     
    273273      ENDIF 
    274274#endif 
    275       !  
     275      ! 
    276276      !                       !==  Kz from chosen turbulent closure  ==!   (avm_k, avt_k) 
    277277      ! 
     
    290290!!gm         avm(2:jpim1,2:jpjm1,1:jpkm1) = rn_avm0 * wmask(2:jpim1,2:jpjm1,1:jpkm1) 
    291291      END SELECT 
    292       !   
     292      ! 
    293293      !                          !==  ocean Kz  ==!   (avt, avs, avm) 
    294294      ! 
     
    312312      ENDIF 
    313313      ! 
    314       !                                         !* wave-induced mixing  
    315       IF( ln_zdfswm )   CALL zdf_swm( kt, Kmm, avm, avt, avs )   ! surface  wave (Qiao et al. 2004)  
     314      !                                         !* wave-induced mixing 
     315      IF( ln_zdfswm )   CALL zdf_swm( kt, Kmm, avm, avt, avs )   ! surface  wave (Qiao et al. 2004) 
    316316      IF( ln_zdfiwm )   CALL zdf_iwm( kt, Kmm, avm, avt, avs )   ! internal wave (de Lavergne et al 2017) 
    317317 
    318 #if defined key_agrif  
     318#if defined key_agrif 
    319319      ! interpolation parent grid => child grid for avm_k ( ex : at west border: update column 1 and 2) 
    320320      IF( l_zdfsh2 )   CALL Agrif_avm 
     
    340340         IF( ln_zdftke )   CALL tke_rst( kt, 'WRITE' ) 
    341341         IF( ln_zdfgls )   CALL gls_rst( kt, 'WRITE' ) 
    342          IF( ln_zdfric )   CALL ric_rst( kt, 'WRITE' )  
     342         IF( ln_zdfric )   CALL ric_rst( kt, 'WRITE' ) 
    343343         ! NB. OSMOSIS restart (osm_rst) will be called in step.F90 after ww has been updated 
    344344      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.