Changeset 15055 for NEMO/trunk/src/OCE/DYN
- Timestamp:
- 2021-06-25T00:36:40+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
r14834 r15055 79 79 ENDIF 80 80 ! 81 DO_3D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls, 1, jpkm1 )!== Horizontal divergence ==!81 DO_3D_OVR( 0, 0, 0, 0, 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 ww 92 94 ! 93 IF( ln_rnf ) CALL sbc_rnf_div( hdiv, Kmm ) !== runoffs ==! (update hdiv field)95 IF( ln_rnf ) CALL sbc_rnf_div( hdiv, Kmm ) !== runoffs ==! (update hdiv field) 94 96 ! 95 97 #if defined key_asminc … … 99 101 IF( ln_isf ) CALL isf_hdiv( kt, Kmm, hdiv ) !== ice shelf ==! (update hdiv field) 100 102 ! 101 IF (nn_hls==1) CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp ) ! (no sign change)102 !103 103 IF( ln_timing ) CALL timing_stop('div_hor') 104 104 ! -
NEMO/trunk/src/OCE/DYN/sshwzv.F90
r15004 r15055 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( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1)184 DO_2D( 0, 0, 0, 0 ) 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 IF (nn_hls==1)CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.0_wp) ! - ML - Perhaps not necessary: not used for horizontal "connexions"188 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 DO_3DS( 1, 1, 1, 1, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 191 ! ! clem: yes it is a problem because ww is used in many other places where we need the halos 192 ! 193 DO_3DS( nn_hls, nn_hls, nn_hls, nn_hls, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 192 194 ! computation of w 193 195 pww(ji,jj,jk) = pww(ji,jj,jk+1) - ( e3t(ji,jj,jk,Kmm) * hdiv(ji,jj,jk) & … … 201 203 ELSEIF( ln_linssh ) THEN !== linear free surface cases ==! 202 204 ! !=================================! 203 DO_3DS( 1, 1, 1, 1, jpkm1, 1, -1 )! integrate from the bottom the hor. divergence205 DO_3DS( nn_hls, nn_hls, nn_hls, nn_hls, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 204 206 pww(ji,jj,jk) = pww(ji,jj,jk+1) - ( e3t(ji,jj,jk,Kmm) * hdiv(ji,jj,jk) ) * tmask(ji,jj,jk) 205 207 END_3D … … 207 209 ELSE !== Quasi-Eulerian vertical coordinate ==! ('key_qco') 208 210 ! !==========================================! 209 DO_3DS( 1, 1, 1, 1, jpkm1, 1, -1 )! integrate from the bottom the hor. divergence211 DO_3DS( nn_hls, nn_hls, nn_hls, nn_hls, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 210 212 pww(ji,jj,jk) = pww(ji,jj,jk+1) - ( e3t(ji,jj,jk,Kmm) * hdiv(ji,jj,jk) & 211 213 & + r1_Dt * ( e3t(ji,jj,jk,Kaa) & … … 216 218 IF( ln_bdy ) THEN 217 219 DO jk = 1, jpkm1 218 pww(:,:,jk) = pww(:,:,jk) * bdytmask(:,:) 220 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 221 pww(ji,jj,jk) = pww(ji,jj,jk) * bdytmask(ji,jj) 222 END_2D 219 223 END DO 220 224 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.