Ignore:
Timestamp:
2020-06-08T18:11:57+02:00 (8 months ago)
Author:
smasson
Message:

Extra_Halo: toward AGRIF compatibility, see #2366

Location:
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/BENCH/MY_SRC/usrdef_nam.F90

    r12989 r13065  
    2929CONTAINS 
    3030 
    31    SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio, khls ) 
     31   SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 
    3232      !!---------------------------------------------------------------------- 
    3333      !!                     ***  ROUTINE dom_nam  *** 
     
    4545      INTEGER                       , INTENT(out) ::   kpi, kpj, kpk   ! global domain sizes  
    4646      INTEGER                       , INTENT(out) ::   kperio          ! lateral global domain b.c.  
    47       INTEGER                       , INTENT(out) ::   khls            ! halo dimension  
    4847      ! 
    4948      ! 
     
    5857      LOGICAL          ::   ln_nnogather, ln_listonly 
    5958      !! 
    60       NAMELIST/namusr_def/ nn_isize, nn_jsize, nn_ksize, nn_perio, nn_hls 
    61       NAMELIST/nammpp/ jpni, jpnj, ln_nnogather, ln_listonly 
     59      NAMELIST/namusr_def/ nn_isize, nn_jsize, nn_ksize, nn_perio 
     60      NAMELIST/nammpp/ jpni, jpnj, nn_hls, ln_nnogather, ln_listonly 
    6261      !!----------------------------------------------------------------------      
    6362      ! 
     
    8786      kpk = nn_ksize 
    8887      kperio = nn_perio 
    89       khls = nn_hls  
    9088      !                             ! control print 
    9189      IF(lwp) THEN 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_ADV1D/MY_SRC/usrdef_hgr.F90

    r12960 r13065  
    7575 
    7676      !                          ========== 
    77       zlam0 = -REAL(Ni0glo-1)/2, wp) * 1.e-3 * rn_dx 
    78       zphi0 = -REAL(Nj0glo-1)/2, wp) * 1.e-3 * rn_dy 
     77      zlam0 = -REAL( (Ni0glo-2)/2, wp) * 1.e-3 * rn_dx 
     78      zphi0 = -REAL( (Nj0glo-2)/2, wp) * 1.e-3 * rn_dy 
    7979 
    8080      DO_2D_11_11 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_ADV1D/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    9090         WRITE(numout,*) '         LX [km]: ', zlx 
    9191         WRITE(numout,*) '         LY [km]: ', zly 
    92          WRITE(numout,*) '         resulting global domain size :        jpiglo = ', kpi 
    93          WRITE(numout,*) '                                               jpjglo = ', kpj 
     92         WRITE(numout,*) '         resulting global domain size :        Ni0glo = ', kpi 
     93         WRITE(numout,*) '                                               Nj0glo = ', kpj 
    9494         WRITE(numout,*) '                                               jpkglo = ', kpk 
    9595         WRITE(numout,*) '         Coriolis:', ln_corio 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_ADV2D/MY_SRC/usrdef_hgr.F90

    r12960 r13065  
    7676 
    7777      !                          ========== 
    78       zlam0 = -REAL(Ni0glo-1)/2, wp) * 1.e-3 * rn_dx 
    79       zphi0 = -REAL(Nj0glo-1)/2, wp) * 1.e-3 * rn_dy  
     78      zlam0 = -REAL( (Ni0glo-2)/2, wp) * 1.e-3 * rn_dx 
     79      zphi0 = -REAL( (Nj0glo-2)/2, wp) * 1.e-3 * rn_dy  
    8080 
    8181#if defined key_agrif  
     
    8383!clem         zlam0  = Agrif_Parent(zlam0) + (Agrif_ix())*Agrif_Parent(rn_dx) * 1.e-5 
    8484!clem         zphi0  = Agrif_Parent(zphi0) + (Agrif_iy())*Agrif_Parent(rn_dy) * 1.e-5 
    85          zlam0 = ( 0.5_wp - ( Agrif_parent(jpiglo) - 1 ) / 2 ) * 1.e-3 * Agrif_irhox() * rn_dx  & 
     85         zlam0 = ( 0.5_wp - REAL( (Agrif_parent(Ni0glo) - 2 ) / 2, wp ) ) * 1.e-3 * Agrif_irhox() * rn_dx  & 
    8686            &  + ( Agrif_Ix() + nbghostcells - 1 ) * Agrif_irhox() * rn_dx * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dx * 1.e-3 
    87          zphi0 = ( 0.5_wp - ( Agrif_parent(jpjglo) - 1 ) / 2 ) * 1.e-3 * Agrif_irhoy() * rn_dy  & 
     87         zphi0 = ( 0.5_wp - REAL( (Agrif_parent(Nj0glo) - 2 ) / 2, wp ) ) * 1.e-3 * Agrif_irhoy() * rn_dy  & 
    8888            &  + ( Agrif_Iy() + nbghostcells - 1 ) * Agrif_irhoy() * rn_dy * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dy * 1.e-3 
    8989      ENDIF 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_ADV2D/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    8686         kpj = NINT( 300.e3 / rn_dy ) - 1 
    8787      ELSE 
    88          kpi = nbcellsx + 2 + 2*nbghostcells 
    89          kpj = nbcellsy + 2 + 2*nbghostcells 
     88         kpi = nbcellsx + 2 * ( nbghostcells + 1 )   ! Global Domain size: add nbghostcells + 1 "land" point on each side 
     89         kpj = nbcellsy + 2 * ( nbghostcells + 1 ) 
    9090      ENDIF 
    9191      kpk = 1 
     
    110110         WRITE(numout,*) '         LX [km]: ', zlx 
    111111         WRITE(numout,*) '         LY [km]: ', zly 
    112          WRITE(numout,*) '         resulting global domain size :        jpiglo = ', kpi 
    113          WRITE(numout,*) '                                               jpjglo = ', kpj 
     112         WRITE(numout,*) '         resulting global domain size :        Ni0glo = ', kpi 
     113         WRITE(numout,*) '                                               Nj0glo = ', kpj 
    114114         WRITE(numout,*) '                                               jpkglo = ', kpk 
    115115         WRITE(numout,*) '         Coriolis:', ln_corio 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_AGRIF/EXPREF/AGRIF_FixedGrids.in

    r9159 r13065  
    111 
    2 34 63 34 63 3 3 3 
     233 62 33 62 3 3 3 
    330 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_AGRIF/MY_SRC/usrdef_hgr.F90

    r12960 r13065  
    7676 
    7777      !                          ========== 
    78       zlam0 = -REAL(Ni0glo-1)/2, wp) * 1.e-3 * rn_dx 
    79       zphi0 = -REAL(Nj0glo-1)/2, wp) * 1.e-3 * rn_dy  
    80  
    8178#if defined key_agrif  
    82       IF( .NOT. Agrif_Root() ) THEN 
     79      IF( Agrif_Root() ) THEN 
     80#endif 
     81         ! Compatibility WITH old version:  
     82         ! jperio = 7 =>  Ni0glo = jpigo_old_version - 2 
     83         !            =>  jpiglo-1 replaced by Ni0glo+1 
     84         zlam0 = -REAL( (Ni0glo+1)/2, wp) * 1.e-3 * rn_dx 
     85         zphi0 = -REAL( (Nj0glo+1)/2, wp) * 1.e-3 * rn_dy   ! +1 for compatibility with old version --> to be replaced by -1 as before 
     86#if defined key_agrif  
     87      ELSE 
     88         ! ! let lower left longitude and latitude from parent 
    8389!clem         zlam0  = Agrif_Parent(zlam0) + (Agrif_ix())*Agrif_Parent(rn_dx) * 1.e-5 
    8490!clem         zphi0  = Agrif_Parent(zphi0) + (Agrif_iy())*Agrif_Parent(rn_dy) * 1.e-5 
    85          zlam0 = ( 0.5_wp - ( Agrif_parent(jpiglo) - 1 ) / 2 ) * 1.e-3 * Agrif_irhox() * rn_dx  & 
     91         ! Compatibility WITH old version:  
     92         ! jperio = 0 =>  Ni0glo = jpigo_old_version 
     93         !            =>  Agrif_parent(jpiglo)-1 replaced by  Agrif_parent(Ni0glo)-1 
     94         zlam0 = ( 0.5_wp - REAL( ( Agrif_parent(Ni0glo)-1 ) / 2, wp) ) * 1.e-3 * Agrif_irhox() * rn_dx  & 
    8695            &  + ( Agrif_Ix() + nbghostcells - 1 ) * Agrif_irhox() * rn_dx * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dx * 1.e-3 
    87          zphi0 = ( 0.5_wp - ( Agrif_parent(jpjglo) - 1 ) / 2 ) * 1.e-3 * Agrif_irhoy() * rn_dy  & 
     96         zphi0 = ( 0.5_wp - REAL( ( Agrif_parent(Nj0glo)-1 ) / 2, wp) ) * 1.e-3 * Agrif_irhoy() * rn_dy  & 
    8897            &  + ( Agrif_Iy() + nbghostcells - 1 ) * Agrif_irhoy() * rn_dy * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dy * 1.e-3 
    8998      ENDIF 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ICE_AGRIF/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    8585         kpi = NINT( 300.e3 / rn_dx ) - 1 
    8686         kpj = NINT( 300.e3 / rn_dy ) - 1 
     87         kpi = kpi - 2   ! for compatibility with old version (because kerio=7) --> to be removed 
     88         kpj = kpj - 2   ! for compatibility with old version (because kerio=7) --> to be removed 
    8789      ELSE 
    88          kpi = nbcellsx + 2 + 2*nbghostcells 
    89          kpj = nbcellsy + 2 + 2*nbghostcells 
     90         kpi  = nbcellsx + 2 * ( nbghostcells + 1 )   ! Global Domain size: add nbghostcells + 1 "land" point on each side 
     91         kpj  = nbcellsy + 2 * ( nbghostcells + 1 ) 
    9092      ENDIF 
    9193      kpk = 2 
     
    110112         WRITE(numout,*) '         LX [km]: ', zlx 
    111113         WRITE(numout,*) '         LY [km]: ', zly 
    112          WRITE(numout,*) '         resulting global domain size :        jpiglo = ', kpi 
    113          WRITE(numout,*) '                                               jpjglo = ', kpj 
     114         WRITE(numout,*) '         resulting global domain size :        Ni0glo = ', kpi 
     115         WRITE(numout,*) '                                               Nj0glo = ', kpj 
    114116         WRITE(numout,*) '                                               jpkglo = ', kpk 
    115117         WRITE(numout,*) '         Coriolis:', ln_corio 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ISOMIP/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    9494         WRITE(numout,*) '         vertical   resolution                 rn_e3    = ', rn_e3   , ' meters' 
    9595         WRITE(numout,*) '      ISOMIP domain = 15° x 10° x 900 m' 
    96          WRITE(numout,*) '         resulting global domain size :        jpiglo   = ', kpi 
    97          WRITE(numout,*) '                                               jpjglo   = ', kpj 
     96         WRITE(numout,*) '         resulting global domain size :        Ni0glo   = ', kpi 
     97         WRITE(numout,*) '                                               Nj0glo   = ', kpj 
    9898         WRITE(numout,*) '                                               jpkglo   = ', kpk 
    9999         WRITE(numout,*) '   ' 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/ISOMIP/MY_SRC/usrdef_zgr.F90

    r12939 r13065  
    6767      REAL(wp), DIMENSION(jpi,jpj) ::   zht  , zhu         ! bottom depth 
    6868      REAL(wp), DIMENSION(jpi,jpj) ::   zhisf, zhisfu      ! top depth 
    69       REAL(wp), DIMENSION(jpi,jpj) ::   zmsk  
    70       REAL(wp), DIMENSION(jpi,jpj) ::   z2d                ! 2d workspace 
    7169      !!---------------------------------------------------------------------- 
    7270      ! 
     
    8785      !                       !==  isfdraft  ==! 
    8886      ! 
    89       ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=0  
    90       z2d(:,:) = 1._wp                    ! surface ocean is the 1st level 
    91       CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    92       zmsk(:,:) = NINT( z2d(:,:) ) 
    93       ! 
    94       ! 
    9587      zht  (:,:) = rbathy  
    9688      zhisf(:,:) = 200._wp 
    97       ij0 = 1 ; ij1 = 40 
     89      ij0 = 1+1 ; ij1 = 40+1    ! + 1 for compatibility with old version. ==> to be removed 
    9890      DO jj = mj0(ij0), mj1(ij1) 
    9991         zhisf(:,jj)=700.0_wp-(gphit(:,jj)+80.0_wp)*125.0_wp 
    10092      END DO 
    101       zhisf(:,:) = zhisf(:,:) * zmsk(:,:) 
    10293      ! 
    10394      CALL zgr_z1d( pdept_1d, pdepw_1d, pe3t_1d , pe3w_1d )   ! Reference z-coordinate system 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/LOCK_EXCHANGE/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    8484         WRITE(numout,*) '      vertical   resolution                    rn_dz  = ', rn_dz, ' meters' 
    8585         WRITE(numout,*) '      LOCK_EXCHANGE domain = 64 km  x  3 grid-points  x  20 m' 
    86          WRITE(numout,*) '         resulting global domain size :        jpiglo = ', kpi 
    87          WRITE(numout,*) '                                               jpjglo = ', kpj 
     86         WRITE(numout,*) '         resulting global domain size :        Ni0glo = ', kpi 
     87         WRITE(numout,*) '                                               Nj0glo = ', kpj 
    8888         WRITE(numout,*) '                                               jpkglo = ', kpk 
    8989         WRITE(numout,*) '   ' 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/OVERFLOW/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    8585      WRITE(numout,*) '      vertical   resolution                    rn_dz  = ', rn_dz, ' meters' 
    8686      WRITE(numout,*) '      OVERFLOW domain = 200 km x 3 grid-points x 2000 m' 
    87       WRITE(numout,*) '         resulting global domain size :        jpiglo = ', kpi 
    88       WRITE(numout,*) '                                               jpjglo = ', kpj 
     87      WRITE(numout,*) '         resulting global domain size :        Ni0glo = ', kpi 
     88      WRITE(numout,*) '                                               Nj0glo = ', kpj 
    8989      WRITE(numout,*) '                                               jpkglo = ', kpk 
    9090      ! 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/VORTEX/MY_SRC/usrdef_hgr.F90

    r12960 r13065  
    7777      ! Position coordinates (in kilometers) 
    7878      !                          ========== 
    79       zlam0 = -REAL(Ni0glo-1)/2, wp) * 1.e-3 * rn_dx 
    80       zphi0 = -REAL(Nj0glo-1)/2, wp) * 1.e-3 * rn_dy  
    81  
     79#if defined key_agrif  
     80      IF( Agrif_Root() ) THEN 
     81#endif 
     82         ! Compatibility WITH old version:  
     83         ! jperio = 0 =>  Ni0glo = jpigo_old_version 
     84         !            =>  jpiglo-1 replaced by Ni0glo-1 
     85         zlam0 = -REAL( (Ni0glo-1)/2, wp) * 1.e-3 * rn_dx 
     86         zphi0 = -REAL( (Nj0glo-1)/2, wp) * 1.e-3 * rn_dy  
    8287#if defined key_agrif 
    83       ! ! let lower left longitude and latitude from parent 
    84       IF (.NOT.Agrif_root()) THEN 
    85           zlam0 = (0.5_wp-(Agrif_parent(jpiglo)-1)/2)*1.e-3*Agrif_irhox()*rn_dx & 
    86              &+(Agrif_Ix()+nbghostcells-1)*Agrif_irhox()*rn_dx*1.e-3-(0.5_wp+nbghostcells)*rn_dx*1.e-3 
    87           zphi0 = (0.5_wp-(Agrif_parent(jpjglo)-1)/2)*1.e-3*Agrif_irhoy()*rn_dy & 
    88              &+(Agrif_Iy()+nbghostcells-1)*Agrif_irhoy()*rn_dy*1.e-3-(0.5_wp+nbghostcells)*rn_dy*1.e-3 
     88      ELSE 
     89         ! ! let lower left longitude and latitude from parent 
     90         ! Compatibility WITH old version:  
     91         ! jperio = 0 =>  Ni0glo = jpigo_old_version 
     92         !            =>  Agrif_parent(jpiglo)-1 replaced by  Agrif_parent(Ni0glo)-1 
     93         zlam0 = ( 0.5_wp - REAL( ( Agrif_parent(Ni0glo)-1 ) / 2, wp) ) * 1.e-3 * Agrif_irhox() * rn_dx  & 
     94            &  + ( Agrif_Ix() + nbghostcells - 1 ) * Agrif_irhox() * rn_dx * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dx * 1.e-3 
     95         zphi0 = ( 0.5_wp - REAL( ( Agrif_parent(Nj0glo)-1 ) / 2, wp) ) * 1.e-3 * Agrif_irhoy() * rn_dy  & 
     96            &  + ( Agrif_Iy() + nbghostcells - 1 ) * Agrif_irhoy() * rn_dy * 1.e-3 - ( 0.5_wp + nbghostcells ) * rn_dy * 1.e-3 
    8997      ENDIF  
    9098#endif 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/VORTEX/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    8585         kpj = NINT( 1800.e3  / rn_dy ) + 3  
    8686      ELSE 
    87          kpi  = nbcellsx + 2 + 2*nbghostcells 
    88          kpj  = nbcellsy + 2 + 2*nbghostcells 
     87         kpi  = nbcellsx + 2 * ( nbghostcells + 1 )   ! Global Domain size: add nbghostcells + 1 "land" point on each side 
     88         kpj  = nbcellsy + 2 * ( nbghostcells + 1 ) 
    8989      ENDIF 
    9090      kpk = NINT( 5000._wp / rn_dz ) + 1 
     
    104104         WRITE(numout,*) '      horizontal resolution             rn_dy  = ', rn_dy, ' m' 
    105105         WRITE(numout,*) '      vertical resolution               rn_dz  = ', rn_dz, ' m' 
     106         WRITE(numout,*) '      resulting global domain size :    Ni0glo = ', kpi 
     107         WRITE(numout,*) '                                        Nj0glo = ', kpj 
     108         WRITE(numout,*) '                                        jpkglo = ', kpk 
    106109         WRITE(numout,*) '      VORTEX domain: ' 
    107110         WRITE(numout,*) '         LX [km]: ', zlx 
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/tests/WAD/MY_SRC/usrdef_nam.F90

    r12939 r13065  
    7676      !                             ! Set the lateral boundary condition of the global domain 
    7777      kperio = 0                    ! WAD_TEST_CASES configuration : closed domain 
    78       IF( nn_wad_test == 8 ) kperio = 7 ! North-South cyclic test 
     78      IF( nn_wad_test == 8 ) THEN 
     79         kperio = 7         ! North-South cyclic test 
     80         kpi = kpi - 2      ! no closed boundary 
     81         kpj = kpj - 2      ! no closed boundary 
     82      ENDIF 
    7983      ! 
    8084      !                             ! control print 
Note: See TracChangeset for help on using the changeset viewer.