- Timestamp:
- 2020-05-14T21:46:00+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Property svn:externals
-
old new 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@HEAD sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/ZDF/zdfmxl.F90
r10425 r12928 12 12 !!---------------------------------------------------------------------- 13 13 USE oce ! ocean dynamics and tracers variables 14 USE isf_oce ! ice shelf 14 15 USE dom_oce ! ocean space and time domain variables 15 16 USE trc_oce , ONLY: l_offline ! ocean space and time domain variables … … 35 36 REAL(wp), PUBLIC :: avt_c = 5.e-4_wp ! Kz criterion for the turbocline depth 36 37 38 !! * Substitutions 39 # include "do_loop_substitute.h90" 37 40 !!---------------------------------------------------------------------- 38 41 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 57 60 58 61 59 SUBROUTINE zdf_mxl( kt )62 SUBROUTINE zdf_mxl( kt, Kmm ) 60 63 !!---------------------------------------------------------------------- 61 64 !! *** ROUTINE zdfmxl *** … … 75 78 !!---------------------------------------------------------------------- 76 79 INTEGER, INTENT(in) :: kt ! ocean time-step index 80 INTEGER, INTENT(in) :: Kmm ! ocean time level index 77 81 ! 78 82 INTEGER :: ji, jj, jk ! dummy loop indices … … 93 97 nmln(:,:) = nlb10 ! Initialization to the number of w ocean point 94 98 hmlp(:,:) = 0._wp ! here hmlp used as a dummy variable, integrating vertically N^2 95 zN2_c = grav * rho_c * r1_rau0 ! convert density criteria into N^2 criteria 96 DO jk = nlb10, jpkm1 97 DO jj = 1, jpj ! Mixed layer level: w-level 98 DO ji = 1, jpi 99 ikt = mbkt(ji,jj) 100 hmlp(ji,jj) = hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w_n(ji,jj,jk) 101 IF( hmlp(ji,jj) < zN2_c ) nmln(ji,jj) = MIN( jk , ikt ) + 1 ! Mixed layer level 102 END DO 103 END DO 104 END DO 99 zN2_c = grav * rho_c * r1_rho0 ! convert density criteria into N^2 criteria 100 DO_3D_11_11( nlb10, jpkm1 ) 101 ikt = mbkt(ji,jj) 102 hmlp(ji,jj) = hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 103 IF( hmlp(ji,jj) < zN2_c ) nmln(ji,jj) = MIN( jk , ikt ) + 1 ! Mixed layer level 104 END_3D 105 105 ! 106 106 ! w-level of the turbocline and mixing layer (iom_use) 107 107 imld(:,:) = mbkt(:,:) + 1 ! Initialization to the number of w ocean point 108 DO jk = jpkm1, nlb10, -1 ! from the bottom to nlb10 109 DO jj = 1, jpj 110 DO ji = 1, jpi 111 IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) ) imld(ji,jj) = jk ! Turbocline 112 END DO 113 END DO 114 END DO 108 DO_3DS_11_11( jpkm1, nlb10, -1 ) 109 IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) ) imld(ji,jj) = jk ! Turbocline 110 END_3D 115 111 ! depth of the mixing and mixed layers 116 DO jj = 1, jpj 117 DO ji = 1, jpi 118 iiki = imld(ji,jj) 119 iikn = nmln(ji,jj) 120 hmld (ji,jj) = gdepw_n(ji,jj,iiki ) * ssmask(ji,jj) ! Turbocline depth 121 hmlp (ji,jj) = gdepw_n(ji,jj,iikn ) * ssmask(ji,jj) ! Mixed layer depth 122 hmlpt(ji,jj) = gdept_n(ji,jj,iikn-1) * ssmask(ji,jj) ! depth of the last T-point inside the mixed layer 123 END DO 124 END DO 112 DO_2D_11_11 113 iiki = imld(ji,jj) 114 iikn = nmln(ji,jj) 115 hmld (ji,jj) = gdepw(ji,jj,iiki ,Kmm) * ssmask(ji,jj) ! Turbocline depth 116 hmlp (ji,jj) = gdepw(ji,jj,iikn ,Kmm) * ssmask(ji,jj) ! Mixed layer depth 117 hmlpt(ji,jj) = gdept(ji,jj,iikn-1,Kmm) * ssmask(ji,jj) ! depth of the last T-point inside the mixed layer 118 END_2D 125 119 ! 126 120 IF( .NOT.l_offline ) THEN … … 137 131 ENDIF 138 132 ! 139 IF( ln_ctl) CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' )133 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' ) 140 134 ! 141 135 END SUBROUTINE zdf_mxl
Note: See TracChangeset
for help on using the changeset viewer.