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 15265 – NEMO

Changeset 15265


Ignore:
Timestamp:
2021-09-16T13:13:13+02:00 (3 years ago)
Author:
jchanut
Message:

Improve ghost cell initialization with AGRIF + minor changes such as missing _wp, tests namelists updates, etc... can be assigned to #2638

Location:
NEMO/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/NST/agrif_oce_update.F90

    r14976 r15265  
    135135      IF (Agrif_Root()) RETURN 
    136136      ! 
    137       Agrif_UseSpecialValueInUpdate = .TRUE. 
     137      l_vremap = ln_vert_remap 
     138      Agrif_UseSpecialValueInUpdate = .NOT.l_vremap  
    138139      Agrif_SpecialValueFineGrid = 0._wp 
    139140# if ! defined DECAL_FEEDBACK_2D 
     
    144145      ! 
    145146      Agrif_UseSpecialValueInUpdate = .FALSE. 
     147      l_vremap = .FALSE. 
    146148      ! 
    147149#  if defined VOL_REFLUX 
     
    173175      !        
    174176      Agrif_UseSpecialValueInUpdate = .TRUE. 
    175       Agrif_SpecialValueFineGrid = 0. 
     177      Agrif_SpecialValueFineGrid = 0._wp 
    176178 
    177179      CALL Agrif_Update_Variable( en_id, locupdate=(/0,0/), procname=updateEN  ) 
     
    199201      ! 
    200202#else 
    201       Agrif_UseSpecialValueInUpdate = .TRUE. 
    202       Agrif_SpecialValueFineGrid = 0. 
     203      Agrif_UseSpecialValueInUpdate = .FALSE. 
     204      Agrif_SpecialValueFineGrid = 0._wp 
    203205      !  
    204206      ! No interface separation here, update vertical grid at T points  
     
    271273         ! Update total depths: 
    272274         ! -------------------- 
    273       hu(:,:,Kmm_a) = 0._wp                        ! Ocean depth at U-points 
    274       hv(:,:,Kmm_a) = 0._wp                        ! Ocean depth at V-points 
     275      hu(:,:,Kmm_a) = 0._wp                    ! Ocean depth at U-points 
     276      hv(:,:,Kmm_a) = 0._wp                    ! Ocean depth at V-points 
    275277      DO jk = 1, jpkm1 
    276278         hu(:,:,Kmm_a) = hu(:,:,Kmm_a) + e3u(:,:,jk,Kmm_a) * umask(:,:,jk) 
     
    657659                  N_out = 0 
    658660                  DO jk=1,jpk 
    659                      IF (vmask(ji,jj,jk) == 0) EXIT 
     661                     IF (vmask(ji,jj,jk) == 0._wp) EXIT 
    660662                     N_out = N_out + 1 
    661663                     h_out(N_out) = e3v(ji,jj,jk,Kmm_a) 
     
    10971099            DO jj=j1,j2 
    10981100               DO ji=i1,i2 
    1099                   IF( tabres(ji,jj,jk,1) .NE. 0. ) THEN  
     1101                  IF( tabres(ji,jj,jk,1) .NE. 0._wp ) THEN  
    11001102                     print *,'VAL = ',ji,jj,jk,tabres(ji,jj,jk,1),e1t(ji,jj)*e2t(ji,jj)*tmask(ji,jj,jk) 
    11011103                     print *,'VAL2 = ',ji,jj,jk,tabres(ji,jj,jk,2),e1t(ji,jj)*tmask(ji,jj,jk) 
     
    12261228                     &                                        ( e3t(ji,jj,jk  ,Kbb_a) - e3t_0(ji,jj,jk  ) ) 
    12271229                     gdepw(ji,jj,jk,Kbb_a) = gdepw(ji,jj,jk-1,Kbb_a) + e3t(ji,jj,jk-1,Kbb_a) 
    1228                      gdept(ji,jj,jk,Kbb_a) =      zcoef  * ( gdepw(ji,jj,jk  ,Kbb_a) + 0.5 * e3w(ji,jj,jk,Kbb_a))  & 
     1230                     gdept(ji,jj,jk,Kbb_a) =      zcoef  * ( gdepw(ji,jj,jk  ,Kbb_a) + 0.5_wp * e3w(ji,jj,jk,Kbb_a))  & 
    12291231                         &               + (1-zcoef) * ( gdept(ji,jj,jk-1,Kbb_a) +       e3w(ji,jj,jk,Kbb_a))  
    12301232                  END DO 
     
    12591261               &                                  +            0.5_wp * tmask(ji,jj,jk)   * ( e3t(ji,jj,jk  ,Kmm_a) - e3t_0(ji,jj,jk  ) ) 
    12601262               gdepw(ji,jj,jk,Kmm_a) = gdepw(ji,jj,jk-1,Kmm_a) + e3t(ji,jj,jk-1,Kmm_a) 
    1261                gdept(ji,jj,jk,Kmm_a) =      zcoef  * ( gdepw(ji,jj,jk  ,Kmm_a) + 0.5 * e3w(ji,jj,jk,Kmm_a))  & 
     1263               gdept(ji,jj,jk,Kmm_a) =      zcoef  * ( gdepw(ji,jj,jk  ,Kmm_a) + 0.5_wp * e3w(ji,jj,jk,Kmm_a))  & 
    12621264                   &               + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm_a) +       e3w(ji,jj,jk,Kmm_a))  
    12631265               gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm_a) - (ht(ji,jj)-ht_0(ji,jj)) ! Last term in the rhs is ssh 
  • NEMO/trunk/src/NST/agrif_top_update.F90

    r14148 r15265  
    120120                  N_out = 0 
    121121                  DO jk=1,jpk ! jpk of parent grid 
    122                      IF (tmask(ji,jj,jk) == 0 ) EXIT ! TODO: Will not work with ISF 
     122                     IF (tmask(ji,jj,jk) == 0._wp ) EXIT ! TODO: Will not work with ISF 
    123123                     N_out = N_out + 1 
    124124                     h_out(N_out) = e3t(ji,jj,jk,Kmm_a) 
  • NEMO/trunk/src/NST/agrif_user.F90

    r15130 r15265  
    838838      ! 
    839839      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     840      INTEGER  ::   imin, imax, jmin, jmax 
    840841      NAMELIST/namagrif/ ln_agrif_2way, ln_init_chfrpar, rn_sponge_tra, rn_sponge_dyn, rn_trelax_tra, rn_trelax_dyn, & 
    841842                       & ln_spc_dyn, ln_vert_remap, ln_chk_bathy 
    842843      !!-------------------------------------------------------------------------------------- 
    843844      ! 
    844       READ  ( numnam_ref, namagrif, IOSTAT = ios, ERR = 901) 
     845      IF ( .NOT.Agrif_Root() ) THEN 
     846         ! 
     847         READ  ( numnam_ref, namagrif, IOSTAT = ios, ERR = 901) 
    845848901 IF( ios /= 0 )   CALL ctl_nam ( ios , 'namagrif in reference namelist' ) 
    846       READ  ( numnam_cfg, namagrif, IOSTAT = ios, ERR = 902 ) 
     849         READ  ( numnam_cfg, namagrif, IOSTAT = ios, ERR = 902 ) 
    847850902 IF( ios >  0 )   CALL ctl_nam ( ios , 'namagrif in configuration namelist' ) 
    848       IF(lwm) WRITE ( numond, namagrif ) 
    849       ! 
    850       IF(lwp) THEN                    ! control print 
    851          WRITE(numout,*) 
    852          WRITE(numout,*) 'agrif_nemo_init : AGRIF parameters' 
    853          WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    854          WRITE(numout,*) '   Namelist namagrif : set AGRIF parameters' 
    855          WRITE(numout,*) '      Two way nesting activated ln_agrif_2way         = ', ln_agrif_2way 
    856          WRITE(numout,*) '      child initial state from parent ln_init_chfrpar = ', ln_init_chfrpar 
    857          WRITE(numout,*) '      ad. sponge coeft for tracers      rn_sponge_tra = ', rn_sponge_tra 
    858          WRITE(numout,*) '      ad. sponge coeft for dynamics     rn_sponge_tra = ', rn_sponge_dyn 
    859          WRITE(numout,*) '      ad. time relaxation for tracers   rn_trelax_tra = ', rn_trelax_tra 
    860          WRITE(numout,*) '      ad. time relaxation for dynamics  rn_trelax_dyn = ', rn_trelax_dyn 
    861          WRITE(numout,*) '      use special values for dynamics   ln_spc_dyn    = ', ln_spc_dyn 
    862          WRITE(numout,*) '      vertical remapping                ln_vert_remap = ', ln_vert_remap 
    863          WRITE(numout,*) '      check bathymetry                  ln_chk_bathy  = ', ln_chk_bathy 
    864       ENDIF 
    865  
    866 ! JC => side effects of lines below to be checked: 
    867       IF (.not.agrif_root()) THEN 
    868          nbghostcells_x_w = nbghostcells 
    869          nbghostcells_x_e = nbghostcells 
    870          nbghostcells_y_s = nbghostcells 
    871          nbghostcells_y_n = nbghostcells 
    872   
    873  
    874          lk_west  = .TRUE. 
    875          lk_east  = .TRUE. 
    876          lk_south = .TRUE. 
    877          lk_north = .TRUE. 
     851         IF(lwm) WRITE ( numond, namagrif ) 
    878852         ! 
    879          ! Correct number of ghost cells according to periodicity 
    880          ! 
    881          IF( l_Iperio         ) THEN ; lk_west  = .FALSE. ; lk_east = .FALSE. ; nbghostcells_x_w = 0 ; nbghostcells_x_e = 0 ; ENDIF 
    882          IF( l_NFold          ) THEN  
    883             lk_west   = .FALSE. ; lk_east  = .FALSE. ; nbghostcells_x_w = 0 ; nbghostcells_x_e = 0  
    884             lk_north  = .FALSE. ; lk_south = .FALSE. ; nbghostcells_y_s = 0 ; nbghostcells_y_n = 0  
    885          ENDIF 
    886          IF( Agrif_Iy() == 1  ) THEN ; lk_south = .FALSE. ; nbghostcells_y_s = 1 ; ENDIF 
    887          IF( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() ==  Agrif_Parent(Nj0glo) - 1 ) THEN ; lk_north = .FALSE. ; nbghostcells_y_n = 1 ; ENDIF 
    888          IF( Agrif_Ix() == 1  ) THEN ; lk_west  = .FALSE. ; nbghostcells_x_w = 1 ; ENDIF 
    889          IF( Agrif_Ix() + nbcellsx/AGRIF_Irhox() ==  Agrif_Parent(Ni0glo) - 1 ) THEN ; lk_east  = .FALSE. ; nbghostcells_x_e = 1 ; ENDIF 
    890          ! 
    891          ! Some checks 
    892          IF( (.NOT.ln_vert_remap).AND.(jpkglo>Agrif_Parent(jpkglo)) )                    CALL ctl_stop( 'STOP',    & 
    893            &   'agrif_nemo_init: Agrif children must have less or equal number of vertical levels without ln_vert_remap defined' )  
    894          IF( Ni0glo /= nbcellsx + nbghostcells_x_w + nbghostcells_x_e   )   CALL ctl_stop( 'STOP',    & 
    895            &   'agrif_nemo_init: Agrif children requires jpiglo == nbcellsx + nbghostcells_x_w + nbghostcells_x_e' ) 
    896          IF( Nj0glo /= nbcellsy + nbghostcells_y_s + nbghostcells_y_n )   CALL ctl_stop( 'STOP',    & 
    897            &   'agrif_nemo_init: Agrif children requires jpjglo == nbcellsy + nbghostcells_y_s + nbghostcells_y_n' ) 
    898          IF( ln_use_jattr )   CALL ctl_stop( 'STOP', 'agrif_nemo_init:Agrif children requires ln_use_jattr = .false. ' ) 
    899       ELSE 
    900          ! Root grid 
    901          nbghostcells_x_w = 1  
    902          nbghostcells_x_e = 1  
    903          nbghostcells_y_s = 1  
    904          nbghostcells_y_n = 1  
    905          IF ( l_Iperio.OR.l_NFold ) THEN 
    906            nbghostcells_x_w = 0 
    907            nbghostcells_x_e = 0 
    908          ENDIF 
    909          IF ( l_NFold ) THEN 
    910            nbghostcells_y_n = 0 ! for completeness 
    911          ENDIF 
    912       ENDIF 
     853         IF(lwp) THEN                    ! control print 
     854            WRITE(numout,*) 
     855            WRITE(numout,*) 'agrif_nemo_init : AGRIF parameters' 
     856            WRITE(numout,*) '~~~~~~~~~~~~~~~' 
     857            WRITE(numout,*) '   Namelist namagrif : set AGRIF parameters' 
     858            WRITE(numout,*) '      Two way nesting activated ln_agrif_2way         = ', ln_agrif_2way 
     859            WRITE(numout,*) '      child initial state from parent ln_init_chfrpar = ', ln_init_chfrpar 
     860            WRITE(numout,*) '      ad. sponge coeft for tracers      rn_sponge_tra = ', rn_sponge_tra 
     861            WRITE(numout,*) '      ad. sponge coeft for dynamics     rn_sponge_tra = ', rn_sponge_dyn 
     862            WRITE(numout,*) '      ad. time relaxation for tracers   rn_trelax_tra = ', rn_trelax_tra 
     863            WRITE(numout,*) '      ad. time relaxation for dynamics  rn_trelax_dyn = ', rn_trelax_dyn 
     864            WRITE(numout,*) '      use special values for dynamics   ln_spc_dyn    = ', ln_spc_dyn 
     865            WRITE(numout,*) '      vertical remapping                ln_vert_remap = ', ln_vert_remap 
     866            WRITE(numout,*) '      check bathymetry                  ln_chk_bathy  = ', ln_chk_bathy 
     867         ENDIF 
     868 
     869         imin = Agrif_Ix() 
     870         imax = Agrif_Ix() + nbcellsx/AGRIF_Irhox() 
     871         jmin = Agrif_Iy() 
     872         jmax = Agrif_Iy() + nbcellsy/AGRIF_Irhoy() 
     873         lk_west  = .TRUE. ; lk_east  = .TRUE. 
     874         lk_north = .TRUE. ; lk_south = .TRUE. 
     875 
     876         ! Check zoom position along i: 
     877         ! ---------------------------- 
     878         IF ( imin >= imax ) THEN 
     879            CALL ctl_stop( 'STOP', 'AGRIF zoom imin must be < imax' ) 
     880         ENDIF 
     881 
     882         IF ( Agrif_Parent(l_Iperio) ) THEN 
     883            IF ( l_Iperio ) THEN ! Cyclic east-west zoom 
     884               lk_west = .FALSE. ; lk_east = .FALSE. 
     885               ! Checks: 
     886               IF ( imin/=1-Agrif_Parent(nbghostcells_x_w) ) THEN 
     887                  WRITE(ctmp1, 9000) ' AGRIF zoom is East-West cyclic, imin must = ', & 
     888                  1 - Agrif_Parent(nbghostcells_x_w) 
     889                  CALL ctl_stop( 'STOP', ctmp1 ) 
     890               ENDIF 
     891               IF ( imax/=Agrif_Parent(Ni0glo)+1-Agrif_Parent(nbghostcells_x_w)) THEN 
     892                  WRITE(ctmp1, 9000) ' AGRIF zoom is East-West cyclic, imax must = ', & 
     893                  Agrif_Parent(Ni0glo) + 1 - Agrif_Parent(nbghostcells_x_w) 
     894                  CALL ctl_stop( 'STOP', ctmp1 ) 
     895               ENDIF 
     896            ELSE 
     897               IF ( imax>Agrif_Parent(Ni0glo)-Agrif_Parent(nbghostcells_x_w)) THEN 
     898                  WRITE(ctmp1, 9000) ' AGRIF zoom imax must be <= ', & 
     899                  Agrif_Parent(Ni0glo) - Agrif_Parent(nbghostcells_x_w) 
     900                  CALL ctl_stop( 'STOP', ctmp1 ) 
     901               ENDIF 
     902            ENDIF 
     903         ELSE 
     904            IF ( imin<2-Agrif_Parent(nbghostcells_x_w) ) THEN 
     905               WRITE(ctmp1, 9000) ' AGRIF zoom imin must be >= ', & 
     906               2 - Agrif_Parent(nbghostcells_x_w) 
     907               CALL ctl_stop( 'STOP', ctmp1 ) 
     908            ENDIF 
     909            IF ( imax>Agrif_Parent(Ni0glo)-Agrif_Parent(nbghostcells_x_w)) THEN 
     910               WRITE(ctmp1, 9000) ' AGRIF zoom imax must be <= ', & 
     911               Agrif_Parent(Ni0glo) - Agrif_Parent(nbghostcells_x_w) 
     912               CALL ctl_stop( 'STOP', ctmp1 ) 
     913            ENDIF 
     914            IF ( imin==2-Agrif_Parent(nbghostcells_x_w) )                    lk_west = .FALSE. 
     915            IF ( imax==Agrif_Parent(Ni0glo)-Agrif_Parent(nbghostcells_x_w) ) lk_east = .FALSE.   
     916         ENDIF 
     917 
     918         ! Check zoom position along j: 
     919         ! ---------------------------- 
     920         IF ( jmin >= jmax ) THEN 
     921            CALL ctl_stop( 'STOP', 'AGRIF zoom jmin must be < jmax' ) 
     922         ENDIF 
     923 
     924         IF ( Agrif_Parent(l_NFold) ) THEN 
     925            IF ( l_NFold ) THEN ! North-Fold  
     926               lk_north = .FALSE. 
     927               ! Checks: 
     928               IF ( jmax/=Agrif_Parent(Nj0glo)+1-Agrif_Parent(nbghostcells_y_s)) THEN  
     929                  WRITE(ctmp1, 9000) ' AGRIF zoom has a North-Fold, jmax must = ', & 
     930                  Agrif_Parent(Nj0glo) + 1 - Agrif_Parent(nbghostcells_y_s) 
     931                  CALL ctl_stop( 'STOP', ctmp1 ) 
     932               ENDIF 
     933            ENDIF 
     934         ELSE 
     935            IF ( jmax>Agrif_Parent(Nj0glo)-Agrif_Parent(nbghostcells_y_s)) THEN  
     936               WRITE(ctmp1, 9000) ' AGRIF zoom jmax must be <= ', & 
     937               Agrif_Parent(Nj0glo) - Agrif_Parent(nbghostcells_y_s) 
     938               CALL ctl_stop( 'STOP', ctmp1 ) 
     939            ENDIF 
     940            IF ( jmax==Agrif_Parent(Nj0glo)-Agrif_Parent(nbghostcells_y_s) ) lk_north = .FALSE.  
     941         ENDIF 
     942 
     943         IF ( jmin<2-Agrif_Parent(nbghostcells_y_s)) THEN  
     944            WRITE(ctmp1, 9000) ' AGRIF zoom jmin must be >= ', & 
     945            2 - Agrif_Parent(nbghostcells_y_s) 
     946            CALL ctl_stop( 'STOP', ctmp1 ) 
     947         ENDIF 
     948         IF ( jmin==2-Agrif_Parent(nbghostcells_y_s) ) lk_south = .FALSE.  
     949 
     950      ELSE ! Root grid 
     951         lk_west  = .FALSE. ; lk_east  = .FALSE. 
     952         lk_north = .FALSE. ; lk_south = .FALSE. 
     953      ENDIF 
     954   
     955      ! Set ghost cells including over Parent grid:  
     956      nbghostcells_x_w = nbghostcells 
     957      nbghostcells_x_e = nbghostcells 
     958      nbghostcells_y_s = nbghostcells 
     959      nbghostcells_y_n = nbghostcells 
     960 
     961      IF (.NOT.lk_west ) nbghostcells_x_w = 1 
     962      IF (.NOT.lk_east ) nbghostcells_x_e = 1 
     963      IF (.NOT.lk_south) nbghostcells_y_s = 1 
     964      IF (.NOT.lk_north) nbghostcells_y_n = 1 
     965 
     966      IF ( l_Iperio ) THEN 
     967         nbghostcells_x_w = 0 ; nbghostcells_x_e = 0 
     968      ENDIF 
     969      IF ( l_NFold ) THEN 
     970         nbghostcells_y_n = 0 
     971      ENDIF 
     972       
     973      IF ( .NOT.Agrif_Root() ) THEN ! Check expected grid size:  
     974         IF( (.NOT.ln_vert_remap).AND.(jpkglo>Agrif_Parent(jpkglo)) )   CALL ctl_stop( 'STOP',    & 
     975           &   'AGRIF children must have less or equal number of vertical levels without ln_vert_remap defined' )  
     976         IF( Ni0glo /= nbcellsx + nbghostcells_x_w + nbghostcells_x_e ) CALL ctl_stop( 'STOP',    & 
     977           &   'AGRIF children requires jpiglo == nbcellsx + nbghostcells_x_w + nbghostcells_x_e' ) 
     978         IF( Nj0glo /= nbcellsy + nbghostcells_y_s + nbghostcells_y_n ) CALL ctl_stop( 'STOP',    & 
     979           &   'AGRIF children requires jpjglo == nbcellsy + nbghostcells_y_s + nbghostcells_y_n' ) 
     980         IF( ln_use_jattr )   CALL ctl_stop( 'STOP', 'AGRIF children requires ln_use_jattr = .false. ' ) 
     981 
     982         IF(lwp) THEN                     ! Control print 
     983            WRITE(numout,*) 
     984            WRITE(numout,*) 'AGRIF boundaries and ghost cells:' 
     985            WRITE(numout,*) 'lk_west' , lk_west 
     986            WRITE(numout,*) 'lk_east' , lk_east 
     987            WRITE(numout,*) 'lk_south', lk_south 
     988            WRITE(numout,*) 'lk_north', lk_north 
     989            WRITE(numout,*) 'nbghostcells_y_s', nbghostcells_y_s 
     990            WRITE(numout,*) 'nbghostcells_y_n', nbghostcells_y_n 
     991            WRITE(numout,*) 'nbghostcells_x_w', nbghostcells_x_w 
     992            WRITE(numout,*) 'nbghostcells_x_e', nbghostcells_x_e 
     993         ENDIF 
     994      ENDIF 
     995 
     9969000  FORMAT (a, i4) 
    913997      ! 
    914998      ! 
  • NEMO/trunk/tests/DOME/EXPREF/1_namelist_cfg

    r14843 r15265  
    77&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    88!----------------------------------------------------------------------- 
    9    ln_agrif_2way   = .true. !  activate two way nesting 
    10    ln_init_chfrpar = .false.!  initialize child grids from parent 
    119   ln_vert_remap   = .true. !  use vertical remapping 
    12    ln_chk_bathy    = .true. !  =T  check the parent bathymetry 
    13    ln_spc_dyn      = .false. 
    1410   rn_sponge_tra   = 0.0    !  coefficient for tracer   sponge layer [] 
    15    rn_sponge_dyn   = 0.002  !  coefficient for dynamics sponge layer [] 
    16    rn_trelax_tra   = 0.01   !  inverse of relaxation time (in steps) for tracers [] 
    17    rn_trelax_dyn   = 0.01   !  inverse of relaxation time (in steps) for dynamics [] 
    1811/ 
    1912!----------------------------------------------------------------------- 
  • NEMO/trunk/tests/DOME/MY_SRC/usrdef_nam.F90

    r15119 r15265  
    9696         ighost_s = nbghostcells 
    9797         ighost_n = nbghostcells 
    98  
    99          IF  ( Agrif_Ix() == 1 ) ighost_w = 1  
    100          IF  ( Agrif_Ix() + nbcellsx/AGRIF_Irhox() == Agrif_Parent(Ni0glo)-1 ) ighost_e = 1  
    101          IF  ( Agrif_Iy() == 1 ) ighost_s = 1  
    102          IF  ( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo)-1 ) ighost_n = 1  
     98         ! In case one sets zoom boundaries over domain edges:  
     99         IF  ( Agrif_Ix() == 2 - Agrif_Parent(nbghostcells_x_w) ) ighost_w = 1  
     100         IF  ( Agrif_Ix() + nbcellsx/AGRIF_Irhox() == Agrif_Parent(Ni0glo)-Agrif_Parent(nbghostcells_x_w) ) ighost_e = 1  
     101         IF  ( Agrif_Iy() == 2 - Agrif_Parent(nbghostcells_y_s) ) ighost_s = 1  
     102         IF  ( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo)-Agrif_Parent(nbghostcells_y_s) ) ighost_n = 1  
    103103         kpi  = nbcellsx + ighost_w + ighost_e 
    104104         kpj  = nbcellsy + ighost_s + ighost_n 
  • NEMO/trunk/tests/OVERFLOW/EXPREF/AGRIF/1_namelist_cfg

    r14843 r15265  
    1818!----------------------------------------------------------------------- 
    1919   ln_vert_remap   = .true.  !  use vertical remapping 
    20    ln_chk_bathy    = .true.  !  =T  check the parent bathymetry 
    2120/ 
    2221!----------------------------------------------------------------------- 
  • NEMO/trunk/tests/VORTEX/MY_SRC/usrdef_nam.F90

    r14976 r15265  
    9797         ighost_n = nbghostcells 
    9898 
    99          IF  ( Agrif_Ix() == 1 ) ighost_w = 1  
    100          IF  ( Agrif_Ix() + nbcellsx/AGRIF_Irhox() == Agrif_Parent(Ni0glo) - 1 ) ighost_e = 1  
    101          IF  ( Agrif_Iy() == 1 ) ighost_s = 1  
    102          IF  ( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo) - 1 ) ighost_n = 1  
     99         ! In case one sets zoom boundaries over domain edges:  
     100         IF  ( Agrif_Ix() == 2 - Agrif_Parent(nbghostcells_x_w) ) ighost_w = 1 
     101         IF  ( Agrif_Ix() + nbcellsx/AGRIF_Irhox() == Agrif_Parent(Ni0glo) - Agrif_Parent(nbghostcells_x_w) ) ighost_e = 1  
     102         IF  ( Agrif_Iy() == 2 - Agrif_Parent(nbghostcells_y_s) ) ighost_s = 1 
     103         IF  ( Agrif_Iy() + nbcellsy/AGRIF_Irhoy() == Agrif_Parent(Nj0glo) - Agrif_Parent(nbghostcells_y_s) ) ighost_n = 1  
    103104!         kpi  = nbcellsx + 2 * ( nbghostcells + 1 ) 
    104105!         kpj  = nbcellsy + 2 * ( nbghostcells + 1 ) 
Note: See TracChangeset for help on using the changeset viewer.