Changeset 11001 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/C1D/dyndmp.F90
- Timestamp:
- 2019-05-20T14:19:17+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/C1D/dyndmp.F90
r10425 r11001 130 130 131 131 132 SUBROUTINE dyn_dmp( kt )132 SUBROUTINE dyn_dmp( kt, Kbb, Kmm, puu, pvv, Krhs ) 133 133 !!---------------------------------------------------------------------- 134 134 !! *** ROUTINE dyn_dmp *** … … 140 140 !! ** Method : Compute Newtonian damping towards u_dta and v_dta 141 141 !! and add to the general momentum trends: 142 !! ua = ua + resto_uv * (u_dta - ub)143 !! va = va + resto_uv * (v_dta - vb)142 !! puu(Krhs) = puu(Krhs) + resto_uv * (u_dta - puu(Kbb)) 143 !! pvv(Krhs) = pvv(Krhs) + resto_uv * (v_dta - pvv(Kbb)) 144 144 !! The trend is computed either throughout the water column 145 145 !! (nn_zdmp=0), where the vertical mixing is weak (nn_zdmp=1) or 146 146 !! below the well mixed layer (nn_zdmp=2) 147 147 !! 148 !! ** Action : - (ua,va) momentum trends updated with the damping trend 149 !!---------------------------------------------------------------------- 150 INTEGER, INTENT(in) :: kt ! ocean time-step index 148 !! ** Action : - (puu(:,:,:,Krhs),pvv(:,:,:,Krhs)) momentum trends updated with the damping trend 149 !!---------------------------------------------------------------------- 150 INTEGER , INTENT(in ) :: kt ! ocean time-step index 151 INTEGER , INTENT(in ) :: Kbb, Kmm, Krhs ! ocean time level indices 152 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 151 153 !! 152 154 INTEGER :: ji, jj, jk ! dummy loop indices … … 159 161 ! 160 162 ! !== read and interpolate U & V current data at kt ==! 161 CALL dta_uvd( kt, zuv_dta ) !!! NOTE: This subroutine must be altered for use outside163 CALL dta_uvd( kt, Kmm, zuv_dta ) !!! NOTE: This subroutine must be altered for use outside 162 164 !!! the C1D context (use of U,V grid variables) 163 165 ! … … 168 170 DO jj = 2, jpjm1 169 171 DO ji = fs_2, fs_jpim1 ! vector opt. 170 zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) )171 zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) )172 ua(ji,jj,jk) = ua(ji,jj,jk) + zua173 va(ji,jj,jk) = va(ji,jj,jk) + zva172 zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - puu(ji,jj,jk,Kbb) ) 173 zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - pvv(ji,jj,jk,Kbb) ) 174 puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + zua 175 pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) + zva 174 176 utrdmp(ji,jj,jk) = zua ! save the trends 175 177 vtrdmp(ji,jj,jk) = zva … … 183 185 DO ji = fs_2, fs_jpim1 ! vector opt. 184 186 IF( avt(ji,jj,jk) <= avt_c ) THEN 185 zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) )186 zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) )187 zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - puu(ji,jj,jk,Kbb) ) 188 zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - pvv(ji,jj,jk,Kbb) ) 187 189 ELSE 188 190 zua = 0._wp 189 191 zva = 0._wp 190 192 ENDIF 191 ua(ji,jj,jk) = ua(ji,jj,jk) + zua192 va(ji,jj,jk) = va(ji,jj,jk) + zva193 puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + zua 194 pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) + zva 193 195 utrdmp(ji,jj,jk) = zua ! save the trends 194 196 vtrdmp(ji,jj,jk) = zva … … 201 203 DO jj = 2, jpjm1 202 204 DO ji = fs_2, fs_jpim1 ! vector opt. 203 IF( gdept _n(ji,jj,jk) >= hmlp (ji,jj) ) THEN204 zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - ub(ji,jj,jk) )205 zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - vb(ji,jj,jk) )205 IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 206 zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - puu(ji,jj,jk,Kbb) ) 207 zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - pvv(ji,jj,jk,Kbb) ) 206 208 ELSE 207 209 zua = 0._wp 208 210 zva = 0._wp 209 211 ENDIF 210 ua(ji,jj,jk) = ua(ji,jj,jk) + zua211 va(ji,jj,jk) = va(ji,jj,jk) + zva212 puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + zua 213 pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) + zva 212 214 utrdmp(ji,jj,jk) = zua ! save the trends 213 215 vtrdmp(ji,jj,jk) = zva … … 219 221 ! 220 222 ! ! Control print 221 IF( ln_ctl ) CALL prt_ctl( tab3d_1= ua(:,:,:), clinfo1=' dmp - Ua: ', mask1=umask, &222 & tab3d_2= va(:,:,:), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )223 IF( ln_ctl ) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' dmp - Ua: ', mask1=umask, & 224 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 223 225 ! 224 226 !
Note: See TracChangeset
for help on using the changeset viewer.