Changeset 5989 for branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
- Timestamp:
- 2015-12-03T09:10:32+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
r5260 r5989 18 18 USE zdf_oce ! ocean vertical physics variables 19 19 USE sbc_oce ! surface boundary condition: ocean 20 USE dynspg_oce 20 ! 21 USE ldftra ! lateral diffusion: eddy diffusivity 22 USE ldfslp ! lateral diffusion: iso-neutral slope 21 23 USE trazdf_exp ! vertical diffusion: explicit (tra_zdf_exp routine) 22 24 USE trazdf_imp ! vertical diffusion: implicit (tra_zdf_imp routine) 23 USE ldftra_oce ! ocean active tracers: lateral physics25 ! 24 26 USE trd_oce ! trends: ocean variables 25 27 USE trdtra ! trends manager: tracers … … 45 47 # include "vectopt_loop_substitute.h90" 46 48 !!---------------------------------------------------------------------- 47 !! NEMO/OPA 3.7 , NEMO Consortium (201 4)49 !! NEMO/OPA 3.7 , NEMO Consortium (2015) 48 50 !! $Id$ 49 51 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 80 82 CASE ( 0 ) ; CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts ) ! explicit scheme 81 83 CASE ( 1 ) ; CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra, tsb, tsa, jpts ) ! implicit scheme 82 CASE ( -1 ) ! esopa: test all possibility with control print83 CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )84 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf0 - Ta: ', mask1=tmask, &85 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )86 CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra, tsb, tsa, jpts )87 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf1 - Ta: ', mask1=tmask, &88 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )89 84 END SELECT 85 !!gm WHY here ! and I don't like that ! 86 ! DRAKKAR SSS control { 87 ! JMM avoid negative salinities near river outlet ! Ugly fix 88 ! JMM : restore negative salinities to small salinities: 89 WHERE ( tsa(:,:,:,jp_sal) < 0._wp ) tsa(:,:,:,jp_sal) = 0.1_wp 90 !!gm 90 91 91 92 IF( l_trdtra ) THEN ! save the vertical diffusive trends for further diagnostics … … 94 95 ztrds(:,:,jk) = ( ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / r2dtra(jk) ) - ztrds(:,:,jk) 95 96 END DO 97 !!gm this should be moved in trdtra.F90 and done on all trends 96 98 CALL lbc_lnk( ztrdt, 'T', 1. ) 97 99 CALL lbc_lnk( ztrds, 'T', 1. ) 100 !!gm 98 101 CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt ) 99 102 CALL trd_tra( kt, 'TRA', jp_sal, jptra_zdf, ztrds ) … … 119 122 !! nzdf = 0 explicit (time-splitting) scheme (ln_zdfexp=T) 120 123 !! = 1 implicit (euler backward) scheme (ln_zdfexp=F) 121 !! NB: rotation of lateral mixing operator or TKE or KPP scheme,122 !! theimplicit scheme is required.124 !! NB: rotation of lateral mixing operator or TKE & GLS schemes, 125 !! an implicit scheme is required. 123 126 !!---------------------------------------------------------------------- 124 127 USE zdftke 125 128 USE zdfgls 126 USE zdfkpp127 129 !!---------------------------------------------------------------------- 128 130 … … 133 135 134 136 ! Force implicit schemes 135 IF( lk_zdftke .OR. lk_zdfgls .OR. lk_zdfkpp ) nzdf = 1 ! TKE, GLS or KPPphysics136 IF( ln_traldf_iso ) nzdf = 1! iso-neutral lateral physics137 IF( ln_traldf_hor .AND. ln_sco ) nzdf = 1! horizontal lateral physics in s-coordinate137 IF( lk_zdftke .OR. lk_zdfgls ) nzdf = 1 ! TKE, or GLS physics 138 IF( ln_traldf_iso ) nzdf = 1 ! iso-neutral lateral physics 139 IF( ln_traldf_hor .AND. ln_sco ) nzdf = 1 ! horizontal lateral physics in s-coordinate 138 140 IF( ln_zdfexp .AND. nzdf == 1 ) CALL ctl_stop( 'tra_zdf : If using the rotation of lateral mixing operator', & 139 & ' TKE or KPP scheme, the implicit scheme is required, set ln_zdfexp = .false.' ) 140 141 ! Test: esopa 142 IF( lk_esopa ) nzdf = -1 ! All schemes used 141 & ' GLS or TKE scheme, the implicit scheme is required, set ln_zdfexp = .false.' ) 143 142 144 143 IF(lwp) THEN … … 146 145 WRITE(numout,*) 'tra_zdf_init : vertical tracer physics scheme' 147 146 WRITE(numout,*) '~~~~~~~~~~~' 148 IF( nzdf == -1 ) WRITE(numout,*) ' ESOPA test All scheme used'149 147 IF( nzdf == 0 ) WRITE(numout,*) ' Explicit time-splitting scheme' 150 148 IF( nzdf == 1 ) WRITE(numout,*) ' Implicit (euler backward) scheme'
Note: See TracChangeset
for help on using the changeset viewer.