- Timestamp:
- 2017-12-06T11:23:32+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfphy.F90
r8866 r8911 18 18 USE zdftke ! vertical physics: TKE vertical mixing 19 19 USE zdfgls ! vertical physics: GLS vertical mixing 20 USE zdfosm ! vertical physics: OSMOSIS vertical mixing 20 21 USE zdfddm ! vertical physics: double diffusion mixing 21 22 USE zdfevd ! vertical physics: convection via enhanced vertical diffusion … … 49 50 INTEGER, PARAMETER :: np_TKE = 3 ! Turbulente Kinetic Eenergy closure scheme for Kz 50 51 INTEGER, PARAMETER :: np_GLS = 4 ! Generic Length Scale closure scheme for Kz 52 INTEGER, PARAMETER :: np_OSM = 5 ! OSMOSIS-OBL closure scheme for Kz 51 53 52 54 LOGICAL :: l_zdfsh2 ! shear production term flag (=F for CST, =T otherwise (i.e. TKE, GLS, RIC)) … … 72 74 !! 73 75 NAMELIST/namzdf/ ln_zdfcst, ln_zdfric, ln_zdftke, ln_zdfgls, & ! type of closure scheme 76 & ln_zdfosm, & ! type of closure scheme 74 77 & ln_zdfevd, nn_evdm, rn_evd , & ! convection : evd 75 78 & ln_zdfnpc, nn_npc , nn_npcp, & ! convection : npc … … 102 105 WRITE(numout,*) ' Turbulent Kinetic Energy closure (TKE) ln_zdftke = ', ln_zdftke 103 106 WRITE(numout,*) ' Generic Length Scale closure (GLS) ln_zdfgls = ', ln_zdfgls 107 WRITE(numout,*) ' OSMOSIS-OBL closure (OSM) ln_zdfosm = ', ln_zdfosm 104 108 WRITE(numout,*) ' convection: ' 105 109 WRITE(numout,*) ' enhanced vertical diffusion ln_zdfevd = ', ln_zdfevd … … 156 160 ! 157 161 IF( ln_zdfnpc .AND. ln_zdfevd ) CALL ctl_stop( 'zdf_phy_init: chose between ln_zdfnpc and ln_zdfevd' ) 162 IF( ln_zdfosm .AND. ln_zdfevd ) CALL ctl_stop( 'zdf_phy_init: chose between ln_zdfosm and ln_zdfevd' ) 158 163 IF( lk_top .AND. ln_zdfnpc ) CALL ctl_stop( 'zdf_phy_init: npc scheme is not working with key_top' ) 164 !IF( lk_top .AND. ln_zdfosm ) CALL ctl_stop( 'zdf_phy_init: osmosis scheme is not working with key_top' ) 159 165 IF(lwp) THEN 160 166 WRITE(numout,*) … … 178 184 IF( ln_zdftke ) THEN ; ioptio = ioptio + 1 ; nzdf_phy = np_TKE ; CALL zdf_tke_init ; ENDIF 179 185 IF( ln_zdfgls ) THEN ; ioptio = ioptio + 1 ; nzdf_phy = np_GLS ; CALL zdf_gls_init ; ENDIF 186 IF( ln_zdfosm ) THEN ; ioptio = ioptio + 1 ; nzdf_phy = np_OSM ; CALL zdf_osm_init ; ENDIF 180 187 ! 181 188 IF( ioptio /= 1 ) CALL ctl_stop( 'zdf_phy_init: one and only one vertical diffusion option has to be defined ' ) … … 247 254 CASE( np_TKE ) ; CALL zdf_tke( kt , zsh2, avm_k, avt_k ) ! TKE closure scheme for Kz 248 255 CASE( np_GLS ) ; CALL zdf_gls( kt , zsh2, avm_k, avt_k ) ! GLS closure scheme for Kz 256 CASE( np_OSM ) ; CALL zdf_osm( kt , avm_k, avt_k ) ! OSMOSIS closure scheme for Kz 249 257 ! CASE( np_CST ) ! Constant Kz (reset avt, avm to the background value) 250 258 ! ! avt_k and avm_k set one for all at initialisation phase … … 290 298 CALL lbc_lnk( avm , 'W', 1. ) ! needed to compute avm at u- and v-points 291 299 CALL lbc_lnk( avt , 'W', 1. ) !!gm a priori only avm_k and avm are required 292 CALL lbc_lnk( avs , 'W', 1. ) !!gm for calculation, ke epedhere for output only300 CALL lbc_lnk( avs , 'W', 1. ) !!gm for calculation, kept here for output only 293 301 ! 294 302 IF( l_zdfdrg ) THEN ! drag have been updated (non-linear cases) … … 302 310 IF( ln_zdftke ) CALL tke_rst( kt, 'WRITE' ) 303 311 IF( ln_zdfgls ) CALL gls_rst( kt, 'WRITE' ) 312 IF( ln_zdfosm ) CALL osm_rst( kt, 'WRITE' ) 304 313 IF( ln_zdfric ) CALL ric_rst( kt, 'WRITE' ) 305 314 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.