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 15278 for NEMO/branches/UKMO/tools_r4.0-HEAD_dev_MEs/DOMAINcfg/src/mes.F90 – NEMO

Ignore:
Timestamp:
2021-09-22T18:44:26+02:00 (3 years ago)
Author:
dbruciaferri
Message:

reorganising code in more general structure and adding partial-steps for MEs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/tools_r4.0-HEAD_dev_MEs/DOMAINcfg/src/mes.F90

    r15271 r15278  
    4444   REAL(wp)           :: rn_e_al(max_nn_env)     ! Array specifing stretching parameter rn_alpha of SF12 for 
    4545                                                 ! each vertical sub-zone 
    46    LOGICAL, PUBLIC    :: ln_loc_mes              ! To use localised MEs (.TRUE.) or not (.FALSE. 
     46   LOGICAL, PUBLIC    :: ln_pst_mes              ! To apply partial steps to MEs (.TRUE.) or not (.FALSE.). 
     47   LOGICAL, PUBLIC    :: ln_pst_l2g              ! To apply partial steps to the transition zone (.TRUE.)  
     48                                                 ! or not (.FALSE.) when ln_loc_zgr = .TRUE.  
     49   REAL, PUBLIC       :: rn_e3pst_min            ! partial steps parameters (require ln_pst_mes = .TRUE.) 
     50   REAL, PUBLIC       :: rn_e3pst_rat            ! partial steps parameters (require ln_pst_mes = .TRUE.) 
    4751   ! 
    4852   REAL(wp), POINTER, DIMENSION(:,:,:) :: envlt  ! array for the envelopes 
     
    669673      REAL(wp)                     :: rn_bot_max ! max depth of ocean bottom (= ocean depth) (>0) (m) 
    670674 
    671       NAMELIST/namzgr_mes/rn_bot_min , rn_bot_max , ln_envl, & 
    672                           nn_strt    , nn_slev    , rn_e_hc, & 
    673                           rn_e_th    , rn_e_bb    , rn_e_ba, & 
    674                           rn_e_al    , ln_loc_mes 
     675      NAMELIST/namzgr_mes/rn_bot_min  , rn_bot_max  , ln_envl   , & 
     676          &               nn_strt     , nn_slev     , rn_e_hc   , & 
     677          &               rn_e_th     , rn_e_bb     , rn_e_ba   , & 
     678          &               rn_e_al     , ln_pst_mes  , ln_pst_l2g, & 
     679          &               rn_e3pst_min, rn_e3pst_rat 
    675680      !!---------------------------------------------------------------------- 
    676681      ! 
     
    720725      WRITE(ctlmes,*) 'TOT number of levels (jpk) IS DIFFERENT from sum over nn_slev(:)' 
    721726      IF ( SUM(nn_slev(:)) /= jpk ) CALL ctl_stop( ctlmes ) 
     727      ! 
     728      IF( .NOT.(ln_loc_zgr) .AND. ln_pst_l2g) ln_pst_l2g = .FALSE. 
    722729      ! 
    723730      ! 3) Reading Bathymetry and envelopes 
     
    810817            WRITE(numout,*) '          ------------------------------------------------------------------' 
    811818         ENDDO 
     819         IF( ln_loc_zgr) THEN 
     820           WRITE(numout,*) '' 
     821           WRITE(numout,*) '          LOCALISED MEs ' 
     822           WRITE(numout,*) '          ============= ' 
     823         ENDIF 
     824         IF( ln_pst_mes .OR. ln_pst_l2g) THEN 
     825           WRITE(numout,*) '' 
     826           WRITE(numout,*) '          APPLYING PARTIAL-STEPS to ' 
     827           WRITE(numout,*) '          ========================= ' 
     828           WRITE(numout,*) '' 
     829           WRITE(numout,*) '            a) MEs area       : ', ln_pst_mes 
     830           IF( ln_loc_zgr) WRITE(numout,*) '            b) Transition area: ', ln_pst_l2g 
     831           WRITE(numout,*) '' 
     832           WRITE(numout,*) '            Partial step thickness is set larger than the minimum of' 
     833           WRITE(numout,*) '' 
     834           WRITE(numout,*) '                  rn_e3pst_min = ', rn_e3pst_min 
     835           WRITE(numout,*) '            and' 
     836           WRITE(numout,*) '                  rn_e3pst_rat = ', rn_e3pst_rat 
     837           WRITE(numout,*) '' 
     838           WRITE(numout,*) '            with 0 < rn_e3pst_rat < 1' 
     839         ENDIF 
    812840      ENDIF 
    813841 
Note: See TracChangeset for help on using the changeset viewer.