New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13899 for NEMO/branches/2020/tickets_icb_1900/src/OCE/ISF/isfcpl.F90 – NEMO

Ignore:
Timestamp:
2020-11-27T17:26:33+01:00 (4 years ago)
Author:
mathiot
Message:

ticket #1900: update branch to trunk and add ICB test case

Location:
NEMO/branches/2020/tickets_icb_1900
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/tickets_icb_1900

    • Property svn:externals
      •  

        old new  
        22^/utils/build/makenemo@HEAD   makenemo 
        33^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools/@HEAD           tools 
         4^/utils/tools@HEAD            tools 
        55^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
         
        88 
        99# SETTE 
        10 ^/utils/CI/sette@12931        sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/tickets_icb_1900/src/OCE/ISF/isfcpl.F90

    r13237 r13899  
    2020   USE domqco   , ONLY: dom_qco_zgr      ! vertical scale factor interpolation 
    2121#endif 
    22    USE domngb  , ONLY: dom_ngb          ! find the closest grid point from a given lon/lat position 
     22   USE domutl  , ONLY: dom_ngb          ! find the closest grid point from a given lon/lat position 
    2323   ! 
    2424   USE oce            ! ocean dynamics and tracers 
     
    183183      !!---------------------------------------------------------------------- 
    184184      ! 
    185       CALL iom_get( numror, jpdom_autoglo, 'ssmask'  , zssmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
     185      CALL iom_get( numror, jpdom_auto, 'ssmask'  , zssmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
    186186 
    187187      ! compute new ssh if we open a full water column  
     
    194194         ! 
    195195         zdssmask(:,:) = ssmask(:,:) - zssmask0(:,:) 
    196          DO_2D_00_00 
     196         DO_2D( 0, 0, 0, 0 ) 
    197197            jip1=ji+1; jim1=ji-1; 
    198198            jjp1=jj+1; jjm1=jj-1; 
     
    264264      !!---------------------------------------------------------------------- 
    265265      !  
    266       CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
    267       !CALL iom_get( numror, jpdom_autoglo, 'wmask'  , zwmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
    268       !CALL iom_get( numror, jpdom_autoglo, '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) 
    269269      ! 
    270270      !  
     
    317317            zdmask(:,:) = tmask(:,:,jk) - ztmask0(:,:,jk); 
    318318            ! 
    319             DO_2D_00_00 
     319            DO_2D( 0, 0, 0, 0 ) 
    320320               jip1=ji+1; jim1=ji-1; 
    321321               jjp1=jj+1; jjm1=jj-1; 
     
    378378      ! ----------------------------------------------------------------------------------------- 
    379379      ! 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 ) 
    381381         IF (tmask(ji,jj,jk) == 1._wp .AND. ts(ji,jj,jk,2,Kmm) == 0._wp)              & 
    382382            &   CALL ctl_stop('STOP', 'failing to fill all new weet cell,     & 
     
    410410      !!---------------------------------------------------------------------- 
    411411      ! 
    412       CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b, ldxios = lrxios ) 
    413       CALL iom_get( numror, jpdom_autoglo, 'e3u_n'  , ze3u_b  , ldxios = lrxios ) 
    414       CALL iom_get( numror, jpdom_autoglo, '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 ) 
    415415      ! 
    416416      ! 1.0: compute horizontal volume flux divergence difference before-after coupling 
     
    418418      DO jk = 1, jpk                                 ! Horizontal slab 
    419419         ! 1.1: get volume flux before coupling (>0 out) 
    420          DO_2D_00_00 
     420         DO_2D( 0, 0, 0, 0 ) 
    421421            zqvolb(ji,jj,jk) =    & 
    422422               &  (   e2u(ji  ,jj  ) * ze3u_b(ji  ,jj  ,jk) * uu(ji  ,jj  ,jk,Kmm)      & 
     
    433433         vv(:,:,jk,Kmm) = vv(:,:,jk,Kmm) * vmask(:,:,jk) 
    434434         ! compute volume flux divergence after coupling 
    435          DO_2D_00_00 
     435         DO_2D( 0, 0, 0, 0 ) 
    436436            zqvoln(ji,jj,jk) =   & 
    437437               &  (   e2u(ji  ,jj  ) * e3u(ji  ,jj  ,jk,Kmm) * uu(ji  ,jj  ,jk,Kmm)    & 
     
    449449      ! 2.0: include the contribution of the vertical velocity in the volume flux correction 
    450450      ! 
    451       DO_2D_00_00 
     451      DO_2D( 0, 0, 0, 0 ) 
    452452         ! 
    453453         ikt = mikt(ji,jj) 
     
    520520 
    521521      ! get restart variable 
    522       CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b(:,:,:), ldxios = lrxios   ) ! need to extrapolate T/S 
    523       CALL iom_get( numror, jpdom_autoglo, 'e3t_n'  , ze3t_b(:,:,:)  , ldxios = lrxios ) 
    524       CALL iom_get( numror, jpdom_autoglo, 'tn'     , zt_b(:,:,:)    , ldxios = lrxios ) 
    525       CALL iom_get( numror, jpdom_autoglo, '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 ) 
    526526 
    527527      ! compute run length 
     
    544544 
    545545      DO jk = 1,jpk-1 
    546          DO jj = nldj,nlej 
    547             DO ji = nldi,nlei 
     546         DO jj = Njs0,Nje0 
     547            DO ji = Nis0,Nie0 
    548548 
    549549               ! volume diff 
     
    578578      nisfl(:)=0 
    579579      DO jk = 1,jpk-1 
    580          DO jj = nldj,nlej 
    581             DO ji = nldi,nlei 
     580         DO jj = Njs0,Nje0 
     581            DO ji = Nis0,Nie0 
    582582               jip1=MIN(ji+1,jpi) ; jim1=MAX(ji-1,1) ; jjp1=MIN(jj+1,jpj) ; jjm1=MAX(jj-1,1) ; 
    583583               IF ( tmask(ji,jj,jk) == 0._wp .AND. ztmask_b(ji,jj,jk) == 1._wp ) THEN  
     
    600600      jisf = 0 
    601601      DO jk = 1,jpk-1 
    602          DO jj = nldj,nlej 
    603             DO ji = nldi,nlei 
     602         DO jj = Njs0,Nje0 
     603            DO ji = Nis0,Nie0 
    604604               IF ( tmask(ji,jj,jk) == 0._wp .AND. ztmask_b(ji,jj,jk) == 1._wp ) THEN 
    605605 
Note: See TracChangeset for help on using the changeset viewer.