- Timestamp:
- 2017-05-20T13:49:38+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/wrk_OMP_test_for_Silvia/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90
r7990 r8055 31 31 32 32 !! * Substitutions 33 # include " vectopt_loop_substitute.h90"33 # include "domain_substitute.h90" 34 34 !!---------------------------------------------------------------------- 35 35 !! NEMO/OPA 3.7 , NEMO Consortium (2014) … … 39 39 CONTAINS 40 40 41 SUBROUTINE zdf_ddm( kt)41 SUBROUTINE zdf_ddm( ARG_2D, kt, p_avm, p_avt, p_avs ) 42 42 !!---------------------------------------------------------------------- 43 43 !! *** ROUTINE zdf_ddm *** … … 69 69 !! References : Merryfield et al., JPO, 29, 1124-1142, 1999. 70 70 !!---------------------------------------------------------------------- 71 INTEGER, INTENT(in) :: kt ! ocean time-step indexocean time step 71 INTEGER, INTENT(in ) :: ARG_2D ! inner domain start-end i-indices 72 INTEGER, INTENT(in ) :: kt ! ocean time-step indexocean time step 73 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: p_avm ! Kz on momentum (w-points) 74 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: p_avt ! Kz on temperature (w-points) 75 REAL(wp), DIMENSION(:,:,:), INTENT( out) :: p_avs ! Kz on salinity (w-points) 72 76 ! 73 77 INTEGER :: ji, jj , jk ! dummy loop indices … … 77 81 REAL(wp) :: zavft, zavfs ! - - 78 82 REAL(wp) :: zavdt, zavds ! - - 79 REAL(wp), DIMENSION( jpi,jpj) :: zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd383 REAL(wp), DIMENSION(WRK_2D) :: zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 80 84 !!---------------------------------------------------------------------- 81 85 ! … … 91 95 !!gm and many acces in memory 92 96 93 DO jj = 1, jpj ! R=zrau = (alpha / beta) (dk[t] / dk[s])94 DO ji = 1, jpi97 DO jj = k_Jstr, k_Jend !== R=zrau = (alpha / beta) (dk[t] / dk[s]) ==! 98 DO ji = k_Jstr, k_Iend 95 99 zrw = ( gdepw_n(ji,jj,jk ) - gdept_n(ji,jj,jk) ) & 96 100 !!gm please, use e3w_n below … … 109 113 END DO 110 114 111 DO jj = 1, jpj ! indicators:112 DO ji = 1, jpi115 DO jj = k_Jstr, k_Jend !== indicators ==! 116 DO ji = k_Jstr, k_Iend 113 117 ! stability indicator: msks=1 if rn2>0; 0 elsewhere 114 118 IF( rn2(ji,jj,jk) + 1.e-12 <= 0. ) THEN ; zmsks(ji,jj) = 0._wp … … 135 139 END DO 136 140 ! mask zmsk in order to have avt and avs masked 137 zmsks( :,:) = zmsks(:,:) * wmask(:,:,jk)141 zmsks(WRK_2D) = zmsks(WRK_2D) * wmask(WRK_2D,jk) 138 142 139 143 … … 141 145 ! ------------------ 142 146 ! Constant eddy coefficient: reset to the background value 143 DO jj = 1, jpj144 DO ji = 1, jpi147 DO jj = k_Jstr, k_Jend 148 DO ji = k_Jstr, k_Iend 145 149 zinr = 1._wp / zrau(ji,jj) 146 150 ! salt fingering … … 154 158 & + 0.15 * zrau(ji,jj) * zmskd2(ji,jj) ) 155 159 ! add to the eddy viscosity coef. previously computed 156 avs(ji,jj,jk) =avt(ji,jj,jk) + zavfs + zavds157 avt(ji,jj,jk) =avt(ji,jj,jk) + zavft + zavdt158 avm(ji,jj,jk) =avm(ji,jj,jk) + MAX( zavft + zavdt, zavfs + zavds )160 p_avs(ji,jj,jk) = p_avt(ji,jj,jk) + zavfs + zavds 161 p_avt(ji,jj,jk) = p_avt(ji,jj,jk) + zavft + zavdt 162 p_avm(ji,jj,jk) = p_avm(ji,jj,jk) + MAX( zavft + zavdt, zavfs + zavds ) 159 163 END DO 160 164 END DO
Note: See TracChangeset
for help on using the changeset viewer.