Changeset 3497
- Timestamp:
- 2012-10-12T18:14:36+02:00 (11 years ago)
- Location:
- branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilap.F90
r3294 r3497 144 144 145 145 ! Multiply by the eddy viscosity coef. (at u- and v-points) 146 zlu(:,:,jk) = zlu(:,:,jk) * fsahmu(:,:,jk) 147 zlv(:,:,jk) = zlv(:,:,jk) * fsahmv(:,:,jk) 146 zlu(:,:,jk) = zlu(:,:,jk) * ( fsahmu(:,:,jk) * (1-nkahm_smag) + nkahm_smag) 147 148 zlv(:,:,jk) = zlv(:,:,jk) * ( fsahmv(:,:,jk) * (1-nkahm_smag) + nkahm_smag) 148 149 149 150 ! Contravariant "laplacian" … … 200 201 & + ( zut(ji,jj+1,jk) - zut(ji ,jj,jk) ) / e2v(ji,jj) 201 202 ! add it to the general momentum trends 202 ua(ji,jj,jk) = ua(ji,jj,jk) + zua 203 va(ji,jj,jk) = va(ji,jj,jk) + zva 203 ua(ji,jj,jk) = ua(ji,jj,jk) + zua * ( fsahmu(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 204 va(ji,jj,jk) = va(ji,jj,jk) + zva * ( fsahmv(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag )) 204 205 END DO 205 206 END DO -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90
r3294 r3497 414 414 ! II.3 Divergence of vertical fluxes added to the horizontal divergence 415 415 ! --------------------------------------------------------------------- 416 417 IF( kahm == 1 ) THEN 416 IF( (kahm -nkahm_smag) ==1 ) THEN 418 417 ! multiply the laplacian by the eddy viscosity coefficient 419 418 DO jk = 1, jpkm1 … … 430 429 END DO 431 430 END DO 432 ELSEIF( kahm== 2 ) THEN431 ELSEIF( (kahm +nkahm_smag ) == 2 ) THEN 433 432 ! second call, no multiplication 434 433 DO jk = 1, jpkm1 -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90
r3294 r3497 67 67 NAMELIST/namdyn_ldf/ ln_dynldf_lap , ln_dynldf_bilap, & 68 68 & ln_dynldf_level, ln_dynldf_hor , ln_dynldf_iso, & 69 & rn_ahm_0_lap , rn_ahmb_0 , rn_ahm_0_blp 70 !!---------------------------------------------------------------------- 69 & rn_ahm_0_lap , rn_ahmb_0 , rn_ahm_0_blp , & 70 & rn_cmsmag_1 , rn_cmsmag_2 , rn_cmsh, & 71 & rn_ahm_m_lap , rn_ahm_m_blp 72 73 !!---------------------------------------------------------------------- 71 74 72 75 REWIND( numnam ) ! Read Namelist namdyn_ldf : Lateral physics … … 86 89 WRITE(numout,*) ' background viscosity rn_ahmb_0 = ', rn_ahmb_0 87 90 WRITE(numout,*) ' horizontal bilaplacian eddy viscosity rn_ahm_0_blp = ', rn_ahm_0_blp 91 WRITE(numout,*) ' upper limit for laplacian eddy visc rn_ahm_m_lap = ', rn_ahm_m_lap 92 WRITE(numout,*) ' upper limit for bilap eddy viscosity rn_ahm_m_blp = ', rn_ahm_m_blp 93 88 94 ENDIF 89 95 … … 142 148 IF(lwp) WRITE(numout,*) ' ahm1 = ahm2 = ahm0 = ',ahm0 143 149 #endif 150 nkahm_smag = 0 151 #if defined key_dynldf_smag 152 nkahm_smag = 1 153 #endif 154 144 155 ! 145 156 END SUBROUTINE ldf_dyn_init -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_oce.F90
r2715 r3497 23 23 REAL(wp), PUBLIC :: rn_ahm_0_blp = 0._wp !: lateral bilaplacian eddy viscosity (m4/s) 24 24 REAL(wp), PUBLIC :: ahm0, ahmb0, ahm0_blp !: OLD namelist names 25 REAL(wp), PUBLIC :: rn_cmsmag_1 = 3._wp !: constant in laplacian Smagorinsky viscosity 26 REAL(wp), PUBLIC :: rn_cmsmag_2 = 3._wp !: constant in bilaplacian Smagorinsky viscosity 27 REAL(wp), PUBLIC :: rn_cmsh = 1._wp !: 1 or 0 , if 0 -use only shear for Smagorinsky viscosity 28 REAL(wp), PUBLIC :: rn_ahm_m_blp = -1.e12_wp !: upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 29 REAL(wp), PUBLIC :: rn_ahm_m_lap = 40000_wp !: upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) 30 INTEGER , PUBLIC :: nkahm_smag = 0 !: 25 31 26 32 ! !!! eddy coeff. at U-,V-,W-pts [m2/s] -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r3294 r3497 66 66 NAMELIST/namtra_ldf/ ln_traldf_lap , ln_traldf_bilap, & 67 67 & ln_traldf_level, ln_traldf_hor , ln_traldf_iso, & 68 & ln_traldf_grif , ln_traldf_gdia ,&69 & ln_triad_iso , ln_botmix_grif ,&68 & ln_traldf_grif , ln_traldf_gdia , & 69 & ln_triad_iso , ln_botmix_grif , & 70 70 & rn_aht_0 , rn_ahtb_0 , rn_aeiv_0, & 71 & rn_slpmax 71 & rn_slpmax , rn_chsmag , rn_smsh, & 72 & rn_aht_m 72 73 !!---------------------------------------------------------------------- 73 74 … … 153 154 IF(lwp)WRITE(numout,*) ' constant eddy diffusivity coef. ahtu = ahtv = ahtw = aht0 = ', aht0 154 155 IF( lk_traldf_eiv ) THEN 155 IF(lwp)WRITE(numout,*)156 156 IF(lwp)WRITE(numout,*) ' constant eddy induced velocity coef. aeiu = aeiv = aeiw = aeiv0 = ', aeiv0 157 157 158 ENDIF 158 159 #endif 160 161 #if defined key_traldf_smag && ! defined key_traldf_c3d 162 CALL ctl_stop( 'key_traldf_smag can only be used with key_traldf_c3d' ) 163 #endif 164 #if defined key_traldf_smag 165 IF(lwp) WRITE(numout,*)' SMAGORINSKY DIFFUSION' 166 IF(lwp .AND. rn_smsh < 1) WRITE(numout,*)' only shear is used ' 167 IF(lwp.and.ln_traldf_bilap) CALL ctl_stop(' SMAGORINSKY + BILAPLACIAN - UNSTABLE OR NON_CONSERVATIVE' ) 168 #endif 169 159 170 ! 160 171 END SUBROUTINE ldf_tra_init -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_c3d.h90
r2715 r3497 108 108 CALL lbc_lnk( aeiv, 'V', 1. ) 109 109 CALL lbc_lnk( aeiw, 'W', 1. ) 110 # endif111 112 110 IF(lwp .AND. ld_print ) THEN 113 111 WRITE(numout,*) … … 121 119 CALL prihre(aeiw(:,:,1),jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout) 122 120 ENDIF 123 ! 121 122 # endif 124 123 END SUBROUTINE ldf_tra_c3d -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_oce.F90
r3294 r3497 30 30 REAL(wp), PUBLIC :: rn_aeiv_0 = 2000._wp !: eddy induced velocity coefficient (m2/s) 31 31 REAL(wp), PUBLIC :: rn_slpmax = 0.01_wp !: slope limit 32 REAL(wp), PUBLIC :: rn_chsmag = 1._wp !: multiplicative factor in Smagorinsky diffusivity 33 REAL(wp), PUBLIC :: rn_smsh = 1._wp !: Smagorinsky diffusivity: = 0 - use only sheer 34 REAL(wp), PUBLIC :: rn_aht_m = 2000._wp !: upper limit or stability criteria for lateral eddy diffusivity (m2/s) 32 35 33 36 REAL(wp), PUBLIC :: aht0, ahtb0, aeiv0 !!: OLD namelist names 37 34 38 LOGICAL , PUBLIC :: ln_triad_iso = .FALSE. !: calculate triads twice 35 39 LOGICAL , PUBLIC :: ln_botmix_grif = .FALSE. !: mixing on bottom -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/step.F90
r3294 r3497 155 155 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient 156 156 #endif 157 #if defined key_traldf_c3d && key_traldf_smag 158 CALL ldf_tra_smag( kstp ) ! eddy induced velocity coefficient 159 # endif 160 #if defined key_dynldf_c3d && key_dynldf_smag 161 CALL ldf_dyn_smag( kstp ) ! eddy induced velocity coefficient 162 # endif 163 157 164 158 165 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -
branches/2012/dev_r3452_NOCL02_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r3294 r3497 61 61 USE ldfslp ! iso-neutral slopes (ldf_slp routine) 62 62 USE ldfeiv ! eddy induced velocity coef. (ldf_eiv routine) 63 USE ldftra_smag ! Smagirinsky diffusion (ldftra_smag routine) 64 USE ldfdyn_smag ! Smagorinsky viscosity (ldfdyn_smag routine) 63 65 64 66 USE zdftmx ! tide-induced vertical mixing (zdf_tmx routine)
Note: See TracChangeset
for help on using the changeset viewer.