Changeset 10978 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DOM/iscplrst.F90
- Timestamp:
- 2019-05-15T09:41:30+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/DOM/iscplrst.F90
r10425 r10978 40 40 CONTAINS 41 41 42 SUBROUTINE iscpl_stp 42 SUBROUTINE iscpl_stp( Kbb, Kmm ) 43 43 !!---------------------------------------------------------------------- 44 44 !! *** ROUTINE iscpl_stp *** 45 45 !! 46 46 !! ** Purpose : compute initialisation 47 !! compute extrapolation of restart variable u n, vn, tsn, sshn(wetting/drying)47 !! compute extrapolation of restart variable uu(Kmm), vv(Kmm), ts(Kmm), ssh(Kmm) (wetting/drying) 48 48 !! compute correction term if needed 49 49 !! 50 50 !!---------------------------------------------------------------------- 51 INTEGER, INTENT(in) :: Kbb, Kmm ! time level indices 52 ! 51 53 INTEGER :: inum0 52 54 REAL(wp), DIMENSION(jpi,jpj) :: zsmask_b … … 69 71 CALL iscpl_init() ! read namelist 70 72 ! ! Extrapolation/interpolation of modify cell and new cells ... (maybe do it later after domvvl) 71 CALL iscpl_rst_interpol( ztmask_b, zumask_b, zvmask_b, zsmask_b, ze3t_b, ze3u_b, ze3v_b, zdepw_b )73 CALL iscpl_rst_interpol( Kbb, Kmm, ztmask_b, zumask_b, zvmask_b, zsmask_b, ze3t_b, ze3u_b, ze3v_b, zdepw_b ) 72 74 ! 73 75 IF ( ln_hsb ) THEN ! compute correction if conservation needed 74 76 IF( iscpl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'rst_iscpl : unable to allocate rst_iscpl arrays' ) 75 CALL iscpl_cons( ztmask_b, zsmask_b, ze3t_b, htsc_iscpl, hdiv_iscpl, rdt_iscpl)77 CALL iscpl_cons( Kbb, Kmm, ztmask_b, zsmask_b, ze3t_b, htsc_iscpl, hdiv_iscpl, rdt_iscpl ) 76 78 END IF 77 79 … … 92 94 ! 93 95 ! ! set _b and _n variables equal 94 ts b (:,:,:,:) = tsn (:,:,:,:)95 u b (:,:,:) = un (:,:,:)96 v b (:,:,:) = vn (:,:,:)97 ssh b(:,:) = sshn(:,:)96 ts (:,:,:,:,Kbb) = ts (:,:,:,:,Kmm) 97 uu (:,:,:,Kbb) = uu (:,:,:,Kmm) 98 vv (:,:,:,Kbb) = vv (:,:,:,Kmm) 99 ssh(:,:,Kbb) = ssh(:,:,Kmm) 98 100 ! 99 101 ! ! set _b and _n vertical scale factor equal 100 e3t _b (:,:,:) = e3t_n (:,:,:)101 e3u _b (:,:,:) = e3u_n (:,:,:)102 e3v _b (:,:,:) = e3v_n (:,:,:)103 ! 104 e3uw _b (:,:,:) = e3uw_n (:,:,:)105 e3vw _b (:,:,:) = e3vw_n (:,:,:)106 gdept _b(:,:,:) = gdept_n(:,:,:)107 gdepw _b(:,:,:) = gdepw_n(:,:,:)102 e3t (:,:,:,Kbb) = e3t (:,:,:,Kmm) 103 e3u (:,:,:,Kbb) = e3u (:,:,:,Kmm) 104 e3v (:,:,:,Kbb) = e3v (:,:,:,Kmm) 105 ! 106 e3uw (:,:,:,Kbb) = e3uw (:,:,:,Kmm) 107 e3vw (:,:,:,Kbb) = e3vw (:,:,:,Kmm) 108 gdept(:,:,:,Kbb) = gdept(:,:,:,Kmm) 109 gdepw(:,:,:,Kbb) = gdepw(:,:,:,Kmm) 108 110 hu_b (:,:) = hu_n (:,:) 109 111 hv_b (:,:) = hv_n (:,:) … … 114 116 115 117 116 SUBROUTINE iscpl_rst_interpol ( ptmask_b, pumask_b, pvmask_b, psmask_b, pe3t_b, pe3u_b, pe3v_b, pdepw_b)118 SUBROUTINE iscpl_rst_interpol ( Kbb, Kmm, ptmask_b, pumask_b, pvmask_b, psmask_b, pe3t_b, pe3u_b, pe3v_b, pdepw_b ) 117 119 !!---------------------------------------------------------------------- 118 120 !! *** ROUTINE iscpl_rst_interpol *** 119 121 !! 120 !! ** Purpose : compute new t n, sn, un, vn and sshnin case of evolving geometry of ice shelves122 !! ** Purpose : compute new ts(Kmm), uu(Kmm), vv(Kmm) and ssh(Kmm) in case of evolving geometry of ice shelves 121 123 !! compute 2d fields of heat, salt and volume correction 122 124 !! 123 !! ** Method : t n, sn: extrapolation from neigbourg cells124 !! u n, vn: fill with 0 velocity and keep barotropic transport by modifing surface velocity or adjacent velocity125 !! ** Method : ts(Kmm) : extrapolation from neigbourg cells 126 !! uu(Kmm), vv(Kmm) : fill with 0 velocity and keep barotropic transport by modifing surface velocity or adjacent velocity 125 127 !!---------------------------------------------------------------------- 128 INTEGER , INTENT(in ) :: Kbb, Kmm !! time level indices 126 129 REAL(wp), DIMENSION(:,:,: ), INTENT(in ) :: ptmask_b, pumask_b, pvmask_b !! mask before 127 130 REAL(wp), DIMENSION(:,:,: ), INTENT(in ) :: pe3t_b , pe3u_b , pe3v_b !! scale factor before … … 143 146 ! 144 147 ! ! mask value to be sure 145 ts n(:,:,:,jp_tem) = tsn(:,:,:,jp_tem) * ptmask_b(:,:,:)146 ts n(:,:,:,jp_sal) = tsn(:,:,:,jp_sal) * ptmask_b(:,:,:)148 ts(:,:,:,jp_tem,Kmm) = ts(:,:,:,jp_tem,Kmm) * ptmask_b(:,:,:) 149 ts(:,:,:,jp_sal,Kmm) = ts(:,:,:,jp_sal,Kmm) * ptmask_b(:,:,:) 147 150 ! 148 151 ! ! compute wmask … … 155 158 ! 156 159 ! ! compute new ssh if we open a full water column (average of the closest neigbourgs) 157 ssh b (:,:)=sshn(:,:)158 zssh0(:,:)=ssh n(:,:)160 ssh (:,:,Kbb)=ssh(:,:,Kmm) 161 zssh0(:,:)=ssh(:,:,Kmm) 159 162 zsmask0(:,:) = psmask_b(:,:) 160 163 zsmask1(:,:) = psmask_b(:,:) … … 167 170 summsk=(zsmask0(jip1,jj)+zsmask0(jim1,jj)+zsmask0(ji,jjp1)+zsmask0(ji,jjm1)) 168 171 IF (zdsmask(ji,jj) == 1._wp .AND. summsk /= 0._wp) THEN 169 ssh n(ji,jj)=( zssh0(jip1,jj)*zsmask0(jip1,jj) &172 ssh(ji,jj,Kmm)=( zssh0(jip1,jj)*zsmask0(jip1,jj) & 170 173 & + zssh0(jim1,jj)*zsmask0(jim1,jj) & 171 174 & + zssh0(ji,jjp1)*zsmask0(ji,jjp1) & … … 175 178 END DO 176 179 END DO 177 CALL lbc_lnk_multi( 'iscplrst', ssh n, 'T', 1., zsmask1, 'T', 1. )178 zssh0 = ssh n180 CALL lbc_lnk_multi( 'iscplrst', ssh(:,:,Kmm), 'T', 1., zsmask1, 'T', 1. ) 181 zssh0 = ssh(:,:,Kmm) 179 182 zsmask0 = zsmask1 180 183 END DO 181 ssh n(:,:) = sshn(:,:) * ssmask(:,:)184 ssh(:,:,Kmm) = ssh(:,:,Kmm) * ssmask(:,:) 182 185 183 186 !============================================================================= … … 192 195 DO ji=1,jpi 193 196 IF (tmask(ji,jj,1) == 0._wp .OR. ptmask_b(ji,jj,1) == 0._wp) THEN 194 e3t _n(ji,jj,jk) = e3t_0(ji,jj,jk) * ( 1._wp + sshn(ji,jj) / &197 e3t(ji,jj,jk,Kmm) = e3t_0(ji,jj,jk) * ( 1._wp + ssh(ji,jj,Kmm) / & 195 198 & ( ht_0(ji,jj) + 1._wp - ssmask(ji,jj) ) * tmask(ji,jj,jk) ) 196 199 ENDIF … … 199 202 END DO 200 203 ! 201 CALL dom_vvl_interpol( e3t _n(:,:,:), e3u_n(:,:,:), 'U' )202 CALL dom_vvl_interpol( e3t _n(:,:,:), e3v_n(:,:,:), 'V' )203 CALL dom_vvl_interpol( e3u _n(:,:,:), e3f_n(:,:,:), 'F' )204 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 205 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 206 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 204 207 205 208 ! Vertical scale factor interpolations 206 209 ! ------------------------------------ 207 CALL dom_vvl_interpol( e3t _n(:,:,:), e3w_n (:,:,:), 'W' )208 CALL dom_vvl_interpol( e3u _n(:,:,:), e3uw_n(:,:,:), 'UW' )209 CALL dom_vvl_interpol( e3v _n(:,:,:), e3vw_n(:,:,:), 'VW' )210 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) 211 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 212 CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 210 213 211 214 ! t- and w- points depth 212 215 ! ---------------------- 213 gdept _n(:,:,1) = 0.5_wp * e3w_n(:,:,1)214 gdepw _n(:,:,1) = 0.0_wp215 gde3w _n(:,:,1) = gdept_n(:,:,1) - sshn(:,:)216 gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 217 gdepw(:,:,1,Kmm) = 0.0_wp 218 gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 216 219 DO jj = 1,jpj 217 220 DO ji = 1,jpi 218 221 DO jk = 2,mikt(ji,jj)-1 219 gdept _n(ji,jj,jk) = gdept_0(ji,jj,jk)220 gdepw _n(ji,jj,jk) = gdepw_0(ji,jj,jk)221 gde3w _n(ji,jj,jk) = gdept_0(ji,jj,jk) - sshn(ji,jj)222 gdept(ji,jj,jk,Kmm) = gdept_0(ji,jj,jk) 223 gdepw(ji,jj,jk,Kmm) = gdepw_0(ji,jj,jk) 224 gde3w(ji,jj,jk) = gdept_0(ji,jj,jk) - ssh(ji,jj,Kmm) 222 225 END DO 223 226 IF (mikt(ji,jj) > 1) THEN 224 227 jk = mikt(ji,jj) 225 gdept _n(ji,jj,jk) = gdepw_0(ji,jj,jk) + 0.5_wp * e3w_n(ji,jj,jk)226 gdepw _n(ji,jj,jk) = gdepw_0(ji,jj,jk)227 gde3w _n(ji,jj,jk) = gdept_n(ji,jj,jk ) - sshn (ji,jj)228 gdept(ji,jj,jk,Kmm) = gdepw_0(ji,jj,jk) + 0.5_wp * e3w(ji,jj,jk,Kmm) 229 gdepw(ji,jj,jk,Kmm) = gdepw_0(ji,jj,jk) 230 gde3w(ji,jj,jk) = gdept(ji,jj,jk ,Kmm) - ssh (ji,jj,Kmm) 228 231 END IF 229 232 DO jk = mikt(ji,jj)+1, jpk 230 gdept _n(ji,jj,jk) = gdept_n(ji,jj,jk-1) + e3w_n(ji,jj,jk)231 gdepw _n(ji,jj,jk) = gdepw_n(ji,jj,jk-1) + e3t_n(ji,jj,jk-1)232 gde3w _n(ji,jj,jk) = gdept_n(ji,jj,jk ) - sshn (ji,jj)233 gdept(ji,jj,jk,Kmm) = gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm) 234 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 235 gde3w(ji,jj,jk) = gdept(ji,jj,jk ,Kmm) - ssh (ji,jj,Kmm) 233 236 END DO 234 237 END DO … … 239 242 ht_n(:,:) = 0._wp ; hu_n(:,:) = 0._wp ; hv_n(:,:) = 0._wp 240 243 DO jk = 1, jpkm1 241 hu_n(:,:) = hu_n(:,:) + e3u _n(:,:,jk) * umask(:,:,jk)242 hv_n(:,:) = hv_n(:,:) + e3v _n(:,:,jk) * vmask(:,:,jk)243 ht_n(:,:) = ht_n(:,:) + e3t _n(:,:,jk) * tmask(:,:,jk)244 hu_n(:,:) = hu_n(:,:) + e3u(:,:,jk,Kmm) * umask(:,:,jk) 245 hv_n(:,:) = hv_n(:,:) + e3v(:,:,jk,Kmm) * vmask(:,:,jk) 246 ht_n(:,:) = ht_n(:,:) + e3t(:,:,jk,Kmm) * tmask(:,:,jk) 244 247 END DO 245 248 ! ! Inverse of the local depth … … 252 255 ! compute velocity 253 256 ! compute velocity in order to conserve barotropic velocity (modification by poderation of the scale factor). 254 u b(:,:,:)=un(:,:,:)255 v b(:,:,:)=vn(:,:,:)257 uu(:,:,:,Kbb)=uu(:,:,:,Kmm) 258 vv(:,:,:,Kbb)=vv(:,:,:,Kmm) 256 259 DO jk = 1,jpk 257 260 DO jj = 1,jpj 258 261 DO ji = 1,jpi 259 u n(ji,jj,jk) = ub(ji,jj,jk)*pe3u_b(ji,jj,jk)*pumask_b(ji,jj,jk)/e3u_n(ji,jj,jk)*umask(ji,jj,jk);260 v n(ji,jj,jk) = vb(ji,jj,jk)*pe3v_b(ji,jj,jk)*pvmask_b(ji,jj,jk)/e3v_n(ji,jj,jk)*vmask(ji,jj,jk);262 uu(ji,jj,jk,Kmm) = uu(ji,jj,jk,Kbb)*pe3u_b(ji,jj,jk)*pumask_b(ji,jj,jk)/e3u(ji,jj,jk,Kmm)*umask(ji,jj,jk); 263 vv(ji,jj,jk,Kmm) = vv(ji,jj,jk,Kbb)*pe3v_b(ji,jj,jk)*pvmask_b(ji,jj,jk)/e3v(ji,jj,jk,Kmm)*vmask(ji,jj,jk); 261 264 END DO 262 265 END DO … … 265 268 ! compute new velocity if we close a cell (check barotropic velocity and change velocity over the water column) 266 269 ! compute barotropic velocity now and after 267 ztrp(:,:,:) = u b(:,:,:)*pe3u_b(:,:,:);270 ztrp(:,:,:) = uu(:,:,:,Kbb)*pe3u_b(:,:,:); 268 271 zbub(:,:) = SUM(ztrp,DIM=3) 269 ztrp(:,:,:) = v b(:,:,:)*pe3v_b(:,:,:);272 ztrp(:,:,:) = vv(:,:,:,Kbb)*pe3v_b(:,:,:); 270 273 zbvb(:,:) = SUM(ztrp,DIM=3) 271 ztrp(:,:,:) = u n(:,:,:)*e3u_n(:,:,:);274 ztrp(:,:,:) = uu(:,:,:,Kmm)*e3u(:,:,:,Kmm); 272 275 zbun(:,:) = SUM(ztrp,DIM=3) 273 ztrp(:,:,:) = v n(:,:,:)*e3v_n(:,:,:);276 ztrp(:,:,:) = vv(:,:,:,Kmm)*e3v(:,:,:,Kmm); 274 277 zbvn(:,:) = SUM(ztrp,DIM=3) 275 278 … … 278 281 zhv1=0.0_wp ; 279 282 DO jk = 1,jpk 280 zhu1(:,:) = zhu1(:,:) + e3u _n(:,:,jk) * umask(:,:,jk)281 zhv1(:,:) = zhv1(:,:) + e3v _n(:,:,jk) * vmask(:,:,jk)283 zhu1(:,:) = zhu1(:,:) + e3u(:,:,jk,Kmm) * umask(:,:,jk) 284 zhv1(:,:) = zhv1(:,:) + e3v(:,:,jk,Kmm) * vmask(:,:,jk) 282 285 END DO 283 286 … … 298 301 ! update velocity 299 302 DO jk = 1,jpk 300 u n(:,:,jk)=(un(:,:,jk) - zucorr(:,:))*umask(:,:,jk)301 v n(:,:,jk)=(vn(:,:,jk) - zvcorr(:,:))*vmask(:,:,jk)303 uu(:,:,jk,Kmm)=(uu(:,:,jk,Kmm) - zucorr(:,:))*umask(:,:,jk) 304 vv(:,:,jk,Kmm)=(vv(:,:,jk,Kmm) - zvcorr(:,:))*vmask(:,:,jk) 302 305 END DO 303 306 … … 305 308 ! compute temp and salt 306 309 ! compute new tn and sn if we open a new cell 307 ts b (:,:,:,:) = tsn(:,:,:,:)308 zts0(:,:,:,:) = ts n(:,:,:,:)310 ts (:,:,:,:,Kbb) = ts(:,:,:,:,Kmm) 311 zts0(:,:,:,:) = ts(:,:,:,:,Kmm) 309 312 ztmask1(:,:,:) = ptmask_b(:,:,:) 310 313 ztmask0(:,:,:) = ptmask_b(:,:,:) … … 319 322 IF (zdmask(ji,jj) == 1._wp .AND. summsk /= 0._wp) THEN 320 323 !! horizontal basic extrapolation 321 ts n(ji,jj,jk,1)=( zts0(jip1,jj ,jk,1)*ztmask0(jip1,jj ,jk) &324 ts(ji,jj,jk,1,Kmm)=( zts0(jip1,jj ,jk,1)*ztmask0(jip1,jj ,jk) & 322 325 & +zts0(jim1,jj ,jk,1)*ztmask0(jim1,jj ,jk) & 323 326 & +zts0(ji ,jjp1,jk,1)*ztmask0(ji ,jjp1,jk) & 324 327 & +zts0(ji ,jjm1,jk,1)*ztmask0(ji ,jjm1,jk) ) / summsk 325 ts n(ji,jj,jk,2)=( zts0(jip1,jj ,jk,2)*ztmask0(jip1,jj ,jk) &328 ts(ji,jj,jk,2,Kmm)=( zts0(jip1,jj ,jk,2)*ztmask0(jip1,jj ,jk) & 326 329 & +zts0(jim1,jj ,jk,2)*ztmask0(jim1,jj ,jk) & 327 330 & +zts0(ji ,jjp1,jk,2)*ztmask0(ji ,jjp1,jk) & … … 333 336 summsk=(ztmask0(ji,jj,jkm1)+ztmask0(ji,jj,jkp1)) 334 337 IF (zdmask(ji,jj) == 1._wp .AND. summsk /= 0._wp ) THEN 335 ts n(ji,jj,jk,1)=( zts0(ji,jj,jkp1,1)*ztmask0(ji,jj,jkp1) &338 ts(ji,jj,jk,1,Kmm)=( zts0(ji,jj,jkp1,1)*ztmask0(ji,jj,jkp1) & 336 339 & +zts0(ji,jj,jkm1,1)*ztmask0(ji,jj,jkm1))/summsk 337 ts n(ji,jj,jk,2)=( zts0(ji,jj,jkp1,2)*ztmask0(ji,jj,jkp1) &340 ts(ji,jj,jk,2,Kmm)=( zts0(ji,jj,jkp1,2)*ztmask0(ji,jj,jkp1) & 338 341 & +zts0(ji,jj,jkm1,2)*ztmask0(ji,jj,jkm1))/summsk 339 342 ztmask1(ji,jj,jk)=1._wp … … 344 347 END DO 345 348 346 CALL lbc_lnk_multi( 'iscplrst', ts n(:,:,:,jp_tem), 'T', 1., tsn(:,:,:,jp_sal), 'T', 1., ztmask1, 'T', 1.)349 CALL lbc_lnk_multi( 'iscplrst', ts(:,:,:,jp_tem,Kmm), 'T', 1., ts(:,:,:,jp_sal,Kmm), 'T', 1., ztmask1, 'T', 1.) 347 350 348 351 ! update 349 zts0(:,:,:,:) = ts n(:,:,:,:)352 zts0(:,:,:,:) = ts(:,:,:,:,Kmm) 350 353 ztmask0 = ztmask1 351 354 352 355 END DO 353 356 354 ! mask new ts nfield355 ts n(:,:,:,jp_tem) = tsn(:,:,:,jp_tem) * tmask(:,:,:)356 ts n(:,:,:,jp_sal) = tsn(:,:,:,jp_sal) * tmask(:,:,:)357 ! mask new ts(:,:,:,:,Kmm) field 358 ts(:,:,:,jp_tem,Kmm) = ts(:,:,:,jp_tem,Kmm) * tmask(:,:,:) 359 ts(:,:,:,jp_sal,Kmm) = ts(:,:,:,jp_sal,Kmm) * tmask(:,:,:) 357 360 358 361 ! compute new T/S (interpolation) if vvl only for common wet cell in before and after wmask … … 365 368 & (tmask(ji,jj,1)==0._wp .OR. ptmask_b(ji,jj,1)==0._wp) ) THEN 366 369 !compute weight 367 zdzp1 = MAX(0._wp,gdepw _n(ji,jj,jk+1) - pdepw_b(ji,jj,jk+1))368 zdz = gdepw _n(ji,jj,jk+1) - pdepw_b(ji,jj,jk )369 zdzm1 = MAX(0._wp,pdepw_b(ji,jj,jk ) - gdepw _n(ji,jj,jk))370 zdzp1 = MAX(0._wp,gdepw(ji,jj,jk+1,Kmm) - pdepw_b(ji,jj,jk+1)) 371 zdz = gdepw(ji,jj,jk+1,Kmm) - pdepw_b(ji,jj,jk ) 372 zdzm1 = MAX(0._wp,pdepw_b(ji,jj,jk ) - gdepw(ji,jj,jk ,Kmm)) 370 373 IF (zdz .LT. 0._wp) THEN 371 374 CALL ctl_stop( 'STOP', 'rst_iscpl : unable to compute the interpolation' ) 372 375 END IF 373 ts n(ji,jj,jk,jp_tem) = ( zdzp1*tsb(ji,jj,jk+1,jp_tem) &374 & + zdz *ts b(ji,jj,jk ,jp_tem) &375 & + zdzm1*ts b(ji,jj,jk-1,jp_tem) )/e3t_n(ji,jj,jk)376 ts n(ji,jj,jk,jp_sal) = ( zdzp1*tsb(ji,jj,jk+1,jp_sal) &377 & + zdz *ts b(ji,jj,jk ,jp_sal) &378 & + zdzm1*ts b(ji,jj,jk-1,jp_sal) )/e3t_n(ji,jj,jk)376 ts(ji,jj,jk,jp_tem,Kmm) = ( zdzp1*ts(ji,jj,jk+1,jp_tem,Kbb) & 377 & + zdz *ts(ji,jj,jk ,jp_tem,Kbb) & 378 & + zdzm1*ts(ji,jj,jk-1,jp_tem,Kbb) )/e3t(ji,jj,jk,Kmm) 379 ts(ji,jj,jk,jp_sal,Kmm) = ( zdzp1*ts(ji,jj,jk+1,jp_sal,Kbb) & 380 & + zdz *ts(ji,jj,jk ,jp_sal,Kbb) & 381 & + zdzm1*ts(ji,jj,jk-1,jp_sal,Kbb) )/e3t(ji,jj,jk,Kmm) 379 382 END IF 380 383 END DO … … 386 389 ! ----------------------------------------------------------------------------------------- 387 390 ! case we open a cell but no neigbour cells available to get an estimate of T and S 388 WHERE (tmask(:,:,:) == 1._wp .AND. ts n(:,:,:,2) == 0._wp)389 ts n(:,:,:,2) = -99._wp ! Special value for closed pool (checking purpose in output.init)391 WHERE (tmask(:,:,:) == 1._wp .AND. ts(:,:,:,2,Kmm) == 0._wp) 392 ts(:,:,:,2,Kmm) = -99._wp ! Special value for closed pool (checking purpose in output.init) 390 393 tmask(:,:,:) = 0._wp ! set mask to 0 to run 391 394 umask(:,:,:) = 0._wp
Note: See TracChangeset
for help on using the changeset viewer.