Changeset 15058 for NEMO/trunk/src/OCE/DYN
- Timestamp:
- 2021-06-25T11:15:15+02:00 (3 years ago)
- Location:
- NEMO/trunk/src/OCE/DYN
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.