- Timestamp:
- 2020-11-27T17:26:33+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/tickets_icb_1900
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/tickets_icb_1900
- Property svn:externals
-
NEMO/branches/2020/tickets_icb_1900/src/OCE/ISF/isfcpl.F90
r13237 r13899 20 20 USE domqco , ONLY: dom_qco_zgr ! vertical scale factor interpolation 21 21 #endif 22 USE dom ngb, ONLY: dom_ngb ! find the closest grid point from a given lon/lat position22 USE domutl , ONLY: dom_ngb ! find the closest grid point from a given lon/lat position 23 23 ! 24 24 USE oce ! ocean dynamics and tracers … … 183 183 !!---------------------------------------------------------------------- 184 184 ! 185 CALL iom_get( numror, jpdom_auto glo, 'ssmask' , zssmask_b, ldxios = lrxios ) ! need to extrapolate T/S185 CALL iom_get( numror, jpdom_auto, 'ssmask' , zssmask_b, ldxios = lrxios ) ! need to extrapolate T/S 186 186 187 187 ! compute new ssh if we open a full water column … … 194 194 ! 195 195 zdssmask(:,:) = ssmask(:,:) - zssmask0(:,:) 196 DO_2D _00_00196 DO_2D( 0, 0, 0, 0 ) 197 197 jip1=ji+1; jim1=ji-1; 198 198 jjp1=jj+1; jjm1=jj-1; … … 264 264 !!---------------------------------------------------------------------- 265 265 ! 266 CALL iom_get( numror, jpdom_auto glo, 'tmask' , ztmask_b, ldxios = lrxios ) ! need to extrapolate T/S267 !CALL iom_get( numror, jpdom_auto glo, 'wmask' , zwmask_b, ldxios = lrxios ) ! need to extrapolate T/S268 !CALL iom_get( numror, jpdom_auto glo, 'gdepw_n', zdepw_b(:,:,:), ldxios = lrxios ) ! need to interpol vertical profile (vvl)266 CALL iom_get( numror, jpdom_auto, 'tmask' , ztmask_b, ldxios = lrxios ) ! need to extrapolate T/S 267 !CALL iom_get( numror, jpdom_auto, 'wmask' , zwmask_b, ldxios = lrxios ) ! need to extrapolate T/S 268 !CALL iom_get( numror, jpdom_auto, 'gdepw_n', zdepw_b(:,:,:), ldxios = lrxios ) ! need to interpol vertical profile (vvl) 269 269 ! 270 270 ! … … 317 317 zdmask(:,:) = tmask(:,:,jk) - ztmask0(:,:,jk); 318 318 ! 319 DO_2D _00_00319 DO_2D( 0, 0, 0, 0 ) 320 320 jip1=ji+1; jim1=ji-1; 321 321 jjp1=jj+1; jjm1=jj-1; … … 378 378 ! ----------------------------------------------------------------------------------------- 379 379 ! case we open a cell but no neigbour cells available to get an estimate of T and S 380 DO_3D _11_11(1,jpk-1 )380 DO_3D( 1, 1, 1, 1, 1,jpk-1 ) 381 381 IF (tmask(ji,jj,jk) == 1._wp .AND. ts(ji,jj,jk,2,Kmm) == 0._wp) & 382 382 & CALL ctl_stop('STOP', 'failing to fill all new weet cell, & … … 410 410 !!---------------------------------------------------------------------- 411 411 ! 412 CALL iom_get( numror, jpdom_auto glo, 'tmask' , ztmask_b, ldxios = lrxios )413 CALL iom_get( numror, jpdom_auto glo, 'e3u_n' , ze3u_b , ldxios = lrxios )414 CALL iom_get( numror, jpdom_auto glo, 'e3v_n' , ze3v_b , ldxios = lrxios )412 CALL iom_get( numror, jpdom_auto, 'tmask' , ztmask_b, ldxios = lrxios ) 413 CALL iom_get( numror, jpdom_auto, 'e3u_n' , ze3u_b , ldxios = lrxios ) 414 CALL iom_get( numror, jpdom_auto, 'e3v_n' , ze3v_b , ldxios = lrxios ) 415 415 ! 416 416 ! 1.0: compute horizontal volume flux divergence difference before-after coupling … … 418 418 DO jk = 1, jpk ! Horizontal slab 419 419 ! 1.1: get volume flux before coupling (>0 out) 420 DO_2D _00_00420 DO_2D( 0, 0, 0, 0 ) 421 421 zqvolb(ji,jj,jk) = & 422 422 & ( e2u(ji ,jj ) * ze3u_b(ji ,jj ,jk) * uu(ji ,jj ,jk,Kmm) & … … 433 433 vv(:,:,jk,Kmm) = vv(:,:,jk,Kmm) * vmask(:,:,jk) 434 434 ! compute volume flux divergence after coupling 435 DO_2D _00_00435 DO_2D( 0, 0, 0, 0 ) 436 436 zqvoln(ji,jj,jk) = & 437 437 & ( e2u(ji ,jj ) * e3u(ji ,jj ,jk,Kmm) * uu(ji ,jj ,jk,Kmm) & … … 449 449 ! 2.0: include the contribution of the vertical velocity in the volume flux correction 450 450 ! 451 DO_2D _00_00451 DO_2D( 0, 0, 0, 0 ) 452 452 ! 453 453 ikt = mikt(ji,jj) … … 520 520 521 521 ! get restart variable 522 CALL iom_get( numror, jpdom_auto glo, 'tmask' , ztmask_b(:,:,:), ldxios = lrxios ) ! need to extrapolate T/S523 CALL iom_get( numror, jpdom_auto glo, 'e3t_n' , ze3t_b(:,:,:) , ldxios = lrxios )524 CALL iom_get( numror, jpdom_auto glo, 'tn' , zt_b(:,:,:) , ldxios = lrxios )525 CALL iom_get( numror, jpdom_auto glo, 'sn' , zs_b(:,:,:) , ldxios = lrxios )522 CALL iom_get( numror, jpdom_auto, 'tmask' , ztmask_b(:,:,:), ldxios = lrxios ) ! need to extrapolate T/S 523 CALL iom_get( numror, jpdom_auto, 'e3t_n' , ze3t_b(:,:,:) , ldxios = lrxios ) 524 CALL iom_get( numror, jpdom_auto, 'tn' , zt_b(:,:,:) , ldxios = lrxios ) 525 CALL iom_get( numror, jpdom_auto, 'sn' , zs_b(:,:,:) , ldxios = lrxios ) 526 526 527 527 ! compute run length … … 544 544 545 545 DO jk = 1,jpk-1 546 DO jj = nldj,nlej547 DO ji = nldi,nlei546 DO jj = Njs0,Nje0 547 DO ji = Nis0,Nie0 548 548 549 549 ! volume diff … … 578 578 nisfl(:)=0 579 579 DO jk = 1,jpk-1 580 DO jj = nldj,nlej581 DO ji = nldi,nlei580 DO jj = Njs0,Nje0 581 DO ji = Nis0,Nie0 582 582 jip1=MIN(ji+1,jpi) ; jim1=MAX(ji-1,1) ; jjp1=MIN(jj+1,jpj) ; jjm1=MAX(jj-1,1) ; 583 583 IF ( tmask(ji,jj,jk) == 0._wp .AND. ztmask_b(ji,jj,jk) == 1._wp ) THEN … … 600 600 jisf = 0 601 601 DO jk = 1,jpk-1 602 DO jj = nldj,nlej603 DO ji = nldi,nlei602 DO jj = Njs0,Nje0 603 DO ji = Nis0,Nie0 604 604 IF ( tmask(ji,jj,jk) == 0._wp .AND. ztmask_b(ji,jj,jk) == 1._wp ) THEN 605 605
Note: See TracChangeset
for help on using the changeset viewer.