- Timestamp:
- 2021-06-25T11:15:15+02:00 (3 years ago)
- Location:
- NEMO/trunk/src/OCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ASM/asminc.F90
r15055 r15058 822 822 ! 823 823 IF( ln_linssh ) THEN 824 DO_2D_OVR( nn_hls , nn_hls, nn_hls, nn_hls )824 DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 825 825 phdivn(ji,jj,1) = phdivn(ji,jj,1) - ssh_iau(ji,jj) / e3t(ji,jj,1,Kmm) * tmask(ji,jj,1) 826 826 END_2D 827 827 ELSE 828 828 ALLOCATE( ztim(A2D(nn_hls)) ) 829 DO_2D_OVR( nn_hls , nn_hls, nn_hls, nn_hls )829 DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 830 830 ztim(ji,jj) = ssh_iau(ji,jj) / ( ht(ji,jj) + 1.0 - ssmask(ji,jj) ) 831 831 DO jk = 1, jpkm1 -
NEMO/trunk/src/OCE/DYN/divhor.F90
r15055 r15058 79 79 ENDIF 80 80 ! 81 DO_3D_OVR( 0, 0, 0, 0, 1, jpkm1 ) !== Horizontal divergence ==!81 DO_3D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls, 1, jpkm1 ) !== Horizontal divergence ==! 82 82 ! round brackets added to fix the order of floating point operations 83 83 ! needed to ensure halo 1 - halo 2 compatibility … … 90 90 & ) * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 91 91 END_3D 92 CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp ) ! (no sign change)93 ! ! needed for ww94 92 ! 95 93 IF( ln_rnf ) CALL sbc_rnf_div( hdiv, Kmm ) !== runoffs ==! (update hdiv field) … … 101 99 IF( ln_isf ) CALL isf_hdiv( kt, Kmm, hdiv ) !== ice shelf ==! (update hdiv field) 102 100 ! 101 IF( nn_hls==1 ) CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp ) ! (no sign change) 102 ! ! needed for ww in sshwzv 103 103 IF( ln_timing ) CALL timing_stop('div_hor') 104 104 ! -
NEMO/trunk/src/OCE/DYN/sshwzv.F90
r15055 r15058 182 182 ! horizontal divergence of thickness diffusion transport ( velocity multiplied by e3t) 183 183 ! - ML - note: computation already done in dom_vvl_sf_nxt. Could be optimized (not critical and clearer this way) 184 DO_2D( 0, 0, 0, 0)184 DO_2D( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 185 185 zhdiv(ji,jj,jk) = r1_e1e2t(ji,jj) * ( un_td(ji,jj,jk) - un_td(ji-1,jj,jk) + vn_td(ji,jj,jk) - vn_td(ji,jj-1,jk) ) 186 186 END_2D 187 187 END DO 188 CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.0_wp) ! - ML - Perhaps not necessary: not used for horizontal "connexions"188 IF( nn_hls == 1) CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.0_wp) ! - ML - Perhaps not necessary: not used for horizontal "connexions" 189 189 ! ! Is it problematic to have a wrong vertical velocity in boundary cells? 190 190 ! ! Same question holds for hdiv. Perhaps just for security 191 191 ! ! clem: yes it is a problem because ww is used in many other places where we need the halos 192 192 ! 193 DO_3DS( nn_hls , nn_hls, nn_hls, nn_hls, jpkm1, 1, -1 )! integrate from the bottom the hor. divergence193 DO_3DS( nn_hls-1, nn_hls, nn_hls-1, nn_hls, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 194 194 ! computation of w 195 195 pww(ji,jj,jk) = pww(ji,jj,jk+1) - ( e3t(ji,jj,jk,Kmm) * hdiv(ji,jj,jk) & … … 203 203 ELSEIF( ln_linssh ) THEN !== linear free surface cases ==! 204 204 ! !=================================! 205 DO_3DS( nn_hls , nn_hls, nn_hls, nn_hls, jpkm1, 1, -1 )! integrate from the bottom the hor. divergence205 DO_3DS( nn_hls-1, nn_hls, nn_hls-1, nn_hls, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 206 206 pww(ji,jj,jk) = pww(ji,jj,jk+1) - ( e3t(ji,jj,jk,Kmm) * hdiv(ji,jj,jk) ) * tmask(ji,jj,jk) 207 207 END_3D … … 209 209 ELSE !== Quasi-Eulerian vertical coordinate ==! ('key_qco') 210 210 ! !==========================================! 211 DO_3DS( nn_hls , nn_hls, nn_hls, nn_hls, jpkm1, 1, -1 )! integrate from the bottom the hor. divergence211 DO_3DS( nn_hls-1, nn_hls, nn_hls-1, nn_hls, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 212 212 pww(ji,jj,jk) = pww(ji,jj,jk+1) - ( e3t(ji,jj,jk,Kmm) * hdiv(ji,jj,jk) & 213 213 & + r1_Dt * ( e3t(ji,jj,jk,Kaa) & … … 218 218 IF( ln_bdy ) THEN 219 219 DO jk = 1, jpkm1 220 DO_2D( nn_hls , nn_hls, nn_hls, nn_hls )220 DO_2D( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 221 221 pww(ji,jj,jk) = pww(ji,jj,jk) * bdytmask(ji,jj) 222 222 END_2D -
NEMO/trunk/src/OCE/ISF/isfhdiv.F90
r15055 r15058 97 97 ! 98 98 ! compute integrated divergence correction 99 DO_2D( nn_hls , nn_hls, nn_hls, nn_hls )99 DO_2D( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 100 100 zhdiv(ji,jj) = 0.5_wp * ( pfwf(ji,jj) + pfwf_b(ji,jj) ) * r1_rho0 / phtbl(ji,jj) 101 101 END_2D 102 102 ! 103 103 ! update divergence at each level affected by ice shelf top boundary layer 104 DO_2D_OVR( nn_hls , nn_hls, nn_hls, nn_hls )104 DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 105 105 ikt = ktop(ji,jj) 106 106 ikb = kbot(ji,jj) … … 136 136 !!---------------------------------------------------------------------- 137 137 ! 138 DO_3D_OVR( nn_hls , nn_hls, nn_hls, nn_hls, 1, jpk )138 DO_3D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls, 1, jpk ) 139 139 phdiv(ji,jj,jk) = phdiv(ji,jj,jk) + pqvol(ji,jj,jk) * r1_e1e2t(ji,jj) & 140 140 & / e3t(ji,jj,jk,Kmm) -
NEMO/trunk/src/OCE/SBC/sbcrnf.F90
r15055 r15058 211 211 IF( ln_rnf_depth .OR. ln_rnf_depth_ini ) THEN !== runoff distributed over several levels ==! 212 212 IF( ln_linssh ) THEN !* constant volume case : just apply the runoff input flow 213 DO_2D_OVR( nn_hls , nn_hls, nn_hls, nn_hls )213 DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 214 214 DO jk = 1, nk_rnf(ji,jj) 215 215 phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rho0 / h_rnf(ji,jj) … … 222 222 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t(ji,jj,jk,Kmm) ! to the bottom of the relevant grid box 223 223 END DO 224 ! ! apply the runoff input flow 224 END_2D 225 DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) ! apply the runoff input flow 225 226 DO jk = 1, nk_rnf(ji,jj) 226 227 phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rho0 / h_rnf(ji,jj) … … 231 232 DO_2D_OVR( nn_hls, nn_hls, nn_hls, nn_hls ) 232 233 h_rnf (ji,jj) = e3t (ji,jj,1,Kmm) ! update h_rnf to be depth of top box 234 END_2D 235 DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 233 236 phdivn(ji,jj,1) = phdivn(ji,jj,1) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rho0 / e3t(ji,jj,1,Kmm) 234 237 END_2D
Note: See TracChangeset
for help on using the changeset viewer.