- Timestamp:
- 2020-07-02T16:41:07+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traadv_mus.F90
r12590 r13228 137 137 END_3D 138 138 ! lateral boundary conditions (changed sign) 139 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1.)139 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) 140 140 ! !-- Slopes of tracer 141 141 zslpx(:,:,jpk) = 0._wp ! bottom values 142 142 zslpy(:,:,jpk) = 0._wp 143 143 DO_3D_01_01( 1, jpkm1 ) 144 zslpx(ji,jj,jk) = ( zwx(ji,jj,jk) + zwx(ji-1,jj ,jk) ) &145 & * ( 0.25 + SIGN( 0.25 , zwx(ji,jj,jk) * zwx(ji-1,jj ,jk) ) )146 zslpy(ji,jj,jk) = ( zwy(ji,jj,jk) + zwy(ji ,jj-1,jk) ) &147 & * ( 0.25 + SIGN( 0.25 , zwy(ji,jj,jk) * zwy(ji ,jj-1,jk) ) )144 zslpx(ji,jj,jk) = ( zwx(ji,jj,jk) + zwx(ji-1,jj ,jk) ) & 145 & * ( 0.25 + SIGN( 0.25_wp, zwx(ji,jj,jk) * zwx(ji-1,jj ,jk) ) ) 146 zslpy(ji,jj,jk) = ( zwy(ji,jj,jk) + zwy(ji ,jj-1,jk) ) & 147 & * ( 0.25 + SIGN( 0.25_wp, zwy(ji,jj,jk) * zwy(ji ,jj-1,jk) ) ) 148 148 END_3D 149 149 ! 150 150 DO_3D_01_01( 1, jpkm1 ) 151 zslpx(ji,jj,jk) = SIGN( 1. , zslpx(ji,jj,jk) ) * MIN( ABS( zslpx(ji ,jj,jk) ), &152 & 2.*ABS( zwx (ji-1,jj,jk) ), &153 & 2.*ABS( zwx (ji ,jj,jk) ) )154 zslpy(ji,jj,jk) = SIGN( 1. , zslpy(ji,jj,jk) ) * MIN( ABS( zslpy(ji,jj ,jk) ), &155 & 2.*ABS( zwy (ji,jj-1,jk) ), &156 & 2.*ABS( zwy (ji,jj ,jk) ) )151 zslpx(ji,jj,jk) = SIGN( 1.0_wp, zslpx(ji,jj,jk) ) * MIN( ABS( zslpx(ji ,jj,jk) ), & 152 & 2.*ABS( zwx (ji-1,jj,jk) ), & 153 & 2.*ABS( zwx (ji ,jj,jk) ) ) 154 zslpy(ji,jj,jk) = SIGN( 1.0_wp, zslpy(ji,jj,jk) ) * MIN( ABS( zslpy(ji,jj ,jk) ), & 155 & 2.*ABS( zwy (ji,jj-1,jk) ), & 156 & 2.*ABS( zwy (ji,jj ,jk) ) ) 157 157 END_3D 158 158 ! 159 159 DO_3D_00_00( 1, jpkm1 ) 160 160 ! MUSCL fluxes 161 z0u = SIGN( 0.5 , pU(ji,jj,jk) )161 z0u = SIGN( 0.5_wp, pU(ji,jj,jk) ) 162 162 zalpha = 0.5 - z0u 163 163 zu = z0u - 0.5 * pU(ji,jj,jk) * p2dt * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm) … … 166 166 zwx(ji,jj,jk) = pU(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 167 167 ! 168 z0v = SIGN( 0.5 , pV(ji,jj,jk) )168 z0v = SIGN( 0.5_wp, pV(ji,jj,jk) ) 169 169 zalpha = 0.5 - z0v 170 170 zv = z0v - 0.5 * pV(ji,jj,jk) * p2dt * r1_e1e2v(ji,jj) / e3v(ji,jj,jk,Kmm) … … 173 173 zwy(ji,jj,jk) = pV(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 174 174 END_3D 175 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1.) ! lateral boundary conditions (changed sign)175 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) ! lateral boundary conditions (changed sign) 176 176 ! 177 177 DO_3D_00_00( 1, jpkm1 ) … … 201 201 zslpx(:,:,1) = 0._wp ! surface values 202 202 DO_3D_11_11( 2, jpkm1 ) 203 zslpx(ji,jj,jk) = ( zwx(ji,jj,jk) + zwx(ji,jj,jk+1) ) &204 & * ( 0.25 + SIGN( 0.25 , zwx(ji,jj,jk) * zwx(ji,jj,jk+1) ) )203 zslpx(ji,jj,jk) = ( zwx(ji,jj,jk) + zwx(ji,jj,jk+1) ) & 204 & * ( 0.25 + SIGN( 0.25_wp, zwx(ji,jj,jk) * zwx(ji,jj,jk+1) ) ) 205 205 END_3D 206 206 DO_3D_11_11( 2, jpkm1 ) 207 zslpx(ji,jj,jk) = SIGN( 1. , zslpx(ji,jj,jk) ) * MIN( ABS( zslpx(ji,jj,jk ) ), &208 & 2.*ABS( zwx (ji,jj,jk+1) ), &209 & 2.*ABS( zwx (ji,jj,jk ) ) )207 zslpx(ji,jj,jk) = SIGN( 1.0_wp, zslpx(ji,jj,jk) ) * MIN( ABS( zslpx(ji,jj,jk ) ), & 208 & 2.*ABS( zwx (ji,jj,jk+1) ), & 209 & 2.*ABS( zwx (ji,jj,jk ) ) ) 210 210 END_3D 211 211 DO_3D_00_00( 1, jpk-2 ) 212 z0w = SIGN( 0.5 , pW(ji,jj,jk+1) )212 z0w = SIGN( 0.5_wp, pW(ji,jj,jk+1) ) 213 213 zalpha = 0.5 + z0w 214 214 zw = z0w - 0.5 * pW(ji,jj,jk+1) * p2dt * r1_e1e2t(ji,jj) / e3w(ji,jj,jk+1,Kmm)
Note: See TracChangeset
for help on using the changeset viewer.