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 12807 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/IOM/iom.F90 – NEMO

Ignore:
Timestamp:
2020-04-23T15:14:45+02:00 (4 years ago)
Author:
smasson
Message:

Extra_Halo: input file only over inner domain + new variables names, see #2366

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/IOM/iom.F90

    r12745 r12807  
    2121   !!---------------------------------------------------------------------- 
    2222   USE dom_oce         ! ocean space and time domain 
     23   USE domutl          !  
    2324   USE c1d             ! 1D vertical configuration 
    2425   USE flo_oce         ! floats module declarations 
     
    3435   USE ice      , ONLY :   jpl 
    3536#endif 
    36    USE domngb          ! ocean space and time domain 
    3737   USE phycst          ! physical constants 
    3838   USE dianam          ! build name of file 
     
    117117      REAL(wp), DIMENSION(2,jpkam1)         :: za_bnds   ! ABL vertical boundaries 
    118118      LOGICAL ::   ll_tmppatch = .TRUE.    !: seb: patch before we remove periodicity 
    119       INTEGER ::   nldi_save, nlei_save    !:      and close boundaries in output files 
    120       INTEGER ::   nldj_save, nlej_save    !: 
     119      INTEGER ::   Nis0_save, Nie0_save    !:      and close boundaries in output files 
     120      INTEGER ::   Njs0_save, Nje0_save    !: 
    121121      LOGICAL ::   ll_closedef = .TRUE. 
    122122      !!---------------------------------------------------------------------- 
     
    127127      ENDIF 
    128128      IF ( ll_tmppatch ) THEN 
    129          nldi_save = nldi   ;   nlei_save = nlei 
    130          nldj_save = nldj   ;   nlej_save = nlej 
    131          IF( nimpp           ==      1 ) nldi = 1 
    132          IF( nimpp + jpi - 1 == jpiglo ) nlei = jpi 
    133          IF( njmpp           ==      1 ) nldj = 1 
    134          IF( njmpp + jpj - 1 == jpjglo ) nlej = jpj 
     129         Nis0_save = Nis0   ;   Nie0_save = Nie0 
     130         Njs0_save = Njs0   ;   Nje0_save = Nje0 
     131         IF( nimpp           ==      1 ) Nis0 = 1 
     132         IF( nimpp + jpi - 1 == jpiglo ) Nie0 = jpi 
     133         IF( njmpp           ==      1 ) Njs0 = 1 
     134         IF( njmpp + jpj - 1 == jpjglo ) Nje0 = jpj 
    135135      ENDIF 
    136136      IF ( PRESENT(ld_closedef) ) ll_closedef = ld_closedef 
     
    169169         ! 
    170170         IF( ln_cfmeta ) THEN   ! Add additional grid metadata 
    171             CALL iom_set_domain_attr("grid_T", area = e1e2t(nldi:nlei, nldj:nlej)) 
    172             CALL iom_set_domain_attr("grid_U", area = e1e2u(nldi:nlei, nldj:nlej)) 
    173             CALL iom_set_domain_attr("grid_V", area = e1e2v(nldi:nlei, nldj:nlej)) 
    174             CALL iom_set_domain_attr("grid_W", area = e1e2t(nldi:nlei, nldj:nlej)) 
     171            CALL iom_set_domain_attr("grid_T", area = e1e2t(Nis0:Nie0, Njs0:Nje0)) 
     172            CALL iom_set_domain_attr("grid_U", area = e1e2u(Nis0:Nie0, Njs0:Nje0)) 
     173            CALL iom_set_domain_attr("grid_V", area = e1e2v(Nis0:Nie0, Njs0:Nje0)) 
     174            CALL iom_set_domain_attr("grid_W", area = e1e2t(Nis0:Nie0, Njs0:Nje0)) 
    175175            CALL set_grid_bounds( "T", glamf, gphif, glamt, gphit ) 
    176176            CALL set_grid_bounds( "U", glamv, gphiv, glamu, gphiu ) 
     
    192192         ! 
    193193         IF( ln_cfmeta .AND. .NOT. llrst_context) THEN   ! Add additional grid metadata 
    194             CALL iom_set_domain_attr("grid_T", area = e1e2t_crs(nldi:nlei, nldj:nlej)) 
    195             CALL iom_set_domain_attr("grid_U", area = e1u_crs(nldi:nlei, nldj:nlej) * e2u_crs(nldi:nlei, nldj:nlej)) 
    196             CALL iom_set_domain_attr("grid_V", area = e1v_crs(nldi:nlei, nldj:nlej) * e2v_crs(nldi:nlei, nldj:nlej)) 
    197             CALL iom_set_domain_attr("grid_W", area = e1e2t_crs(nldi:nlei, nldj:nlej)) 
     194            CALL iom_set_domain_attr("grid_T", area = e1e2t_crs(Nis0:Nie0, Njs0:Nje0)) 
     195            CALL iom_set_domain_attr("grid_U", area =   e1u_crs(Nis0:Nie0, Njs0:Nje0) * e2u_crs(Nis0:Nie0, Njs0:Nje0)) 
     196            CALL iom_set_domain_attr("grid_V", area =   e1v_crs(Nis0:Nie0, Njs0:Nje0) * e2v_crs(Nis0:Nie0, Njs0:Nje0)) 
     197            CALL iom_set_domain_attr("grid_W", area = e1e2t_crs(Nis0:Nie0, Njs0:Nje0)) 
    198198            CALL set_grid_bounds( "T", glamf_crs, gphif_crs, glamt_crs, gphit_crs ) 
    199199            CALL set_grid_bounds( "U", glamv_crs, gphiv_crs, glamu_crs, gphiu_crs ) 
     
    283283      ! 
    284284      IF ( ll_tmppatch ) THEN 
    285          nldi = nldi_save   ;   nlei = nlei_save 
    286          nldj = nldj_save   ;   nlej = nlej_save 
     285         Nis0 = Nis0_save   ;   Nie0 = Nie0_save 
     286         Njs0 = Njs0_save   ;   Nje0 = Nje0_save 
    287287      ENDIF 
    288288#endif 
     
    762762      ENDIF 
    763763      IF( llwrt ) THEN 
    764          idompar(:,1) = (/ nlei - nldi + 1, nlej - nldj + 1 /) 
    765          idompar(:,2) = (/ mig(nldi)      , mjg(nldj)      /) 
    766          idompar(:,3) = (/ mig(nlei)      , mjg(nlej)      /) 
    767          idompar(:,4) = (/ 0              , 0               /) 
    768          idompar(:,5) = (/ 0              , 0               /) 
     764         idompar(:,1) = (/ Ni_0     , Nj_0      /) 
     765         idompar(:,2) = (/ mig(Nis0), mjg(Njs0) /) 
     766         idompar(:,3) = (/ mig(Nie0), mjg(Nje0) /) 
     767         idompar(:,4) = (/ 0        , 0         /) 
     768         idompar(:,5) = (/ 0        , 0         /) 
    769769      ENDIF 
    770770      ! Open the NetCDF file 
     
    976976   END SUBROUTINE iom_g1d 
    977977 
    978    SUBROUTINE iom_g2d( kiomid, kdom, cdvar, pvar, ktime, cd_type, psgn, kstart, kcount, ldxios) 
     978   SUBROUTINE iom_g2d( kiomid, kdom, cdvar, pvar, ktime, cd_type, psgn, kfill, kstart, kcount, ldxios) 
    979979      INTEGER         , INTENT(in   )                         ::   kiomid    ! Identifier of the file 
    980980      INTEGER         , INTENT(in   )                         ::   kdom      ! Type of domain to be read 
     
    984984      CHARACTER(len=1), INTENT(in   )              , OPTIONAL ::   cd_type   ! nature of grid-points (T, U, V, F, W) 
    985985      REAL(wp)        , INTENT(in   )              , OPTIONAL ::   psgn      ! -1.(1.): (not) change sign across the north fold 
     986      INTEGER         , INTENT(in   )              , OPTIONAL ::   kfill     ! value of kfillmode in lbc_lbk 
    986987      INTEGER         , INTENT(in   ), DIMENSION(2), OPTIONAL ::   kstart    ! start axis position of the reading  
    987988      INTEGER         , INTENT(in   ), DIMENSION(2), OPTIONAL ::   kcount    ! number of points in each axis 
     
    989990      ! 
    990991      IF( kiomid > 0 ) THEN 
    991          IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom         , cdvar            , pv_r2d=pvar,   & 
    992             &                                                       ktime=ktime  , cd_type = cd_type, psgn = psgn,   & 
    993             &                                                       kstart=kstart, kcount=kcount    , ldxios=ldxios  ) 
     992         IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom, cdvar      , pv_r2d = pvar  , ktime = ktime,   & 
     993            &                                                       cd_type = cd_type, psgn   = psgn  , kfill = kfill,   & 
     994            &                                                       kstart  = kstart , kcount = kcount, ldxios=ldxios  ) 
    994995      ENDIF 
    995996   END SUBROUTINE iom_g2d 
    996997 
    997    SUBROUTINE iom_g3d( kiomid, kdom, cdvar, pvar, ktime, cd_type, psgn, kstart, kcount, ldxios ) 
     998   SUBROUTINE iom_g3d( kiomid, kdom, cdvar, pvar, ktime, cd_type, psgn, kfill, kstart, kcount, ldxios ) 
    998999      INTEGER         , INTENT(in   )                         ::   kiomid    ! Identifier of the file 
    9991000      INTEGER         , INTENT(in   )                         ::   kdom      ! Type of domain to be read 
     
    10031004      CHARACTER(len=1), INTENT(in   )              , OPTIONAL ::   cd_type   ! nature of grid-points (T, U, V, F, W) 
    10041005      REAL(wp)        , INTENT(in   )              , OPTIONAL ::   psgn      ! -1.(1.) : (not) change sign across the north fold 
     1006      INTEGER         , INTENT(in   )              , OPTIONAL ::   kfill     ! value of kfillmode in lbc_lbk 
    10051007      INTEGER         , INTENT(in   ), DIMENSION(3), OPTIONAL ::   kstart    ! start axis position of the reading  
    10061008      INTEGER         , INTENT(in   ), DIMENSION(3), OPTIONAL ::   kcount    ! number of points in each axis 
     
    10081010      ! 
    10091011      IF( kiomid > 0 ) THEN 
    1010          IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom         , cdvar            , pv_r3d=pvar,   & 
    1011             &                                                       ktime=ktime  , cd_type = cd_type, psgn = psgn,   & 
    1012             &                                                       kstart=kstart, kcount=kcount    , ldxios=ldxios  ) 
     1012         IF( iom_file(kiomid)%nfid > 0 ) CALL iom_get_123d( kiomid, kdom, cdvar      , pv_r3d = pvar  , ktime = ktime,   & 
     1013            &                                                       cd_type = cd_type, psgn   = psgn  , kfill = kfill,   & 
     1014            &                                                       kstart  = kstart , kcount = kcount, ldxios=ldxios  ) 
    10131015      ENDIF 
    10141016   END SUBROUTINE iom_g3d 
    10151017   !!---------------------------------------------------------------------- 
    10161018 
    1017    SUBROUTINE iom_get_123d( kiomid, kdom   , cdvar , pv_r1d, pv_r2d, pv_r3d,   & 
    1018          &                  ktime , cd_type, psgn  , kstart, kcount, ldxios ) 
     1019   SUBROUTINE iom_get_123d( kiomid , kdom, cdvar, pv_r1d, pv_r2d, pv_r3d, ktime ,   & 
     1020         &                  cd_type, psgn, kfill, kstart, kcount, ldxios ) 
    10191021      !!----------------------------------------------------------------------- 
    10201022      !!                  ***  ROUTINE  iom_get_123d  *** 
     
    10331035      CHARACTER(len=1)           , INTENT(in   ), OPTIONAL ::   cd_type   ! nature of grid-points (T, U, V, F, W) 
    10341036      REAL(wp)                   , INTENT(in   ), OPTIONAL ::   psgn      ! -1.(1.) : (not) change sign across the north fold 
     1037      INTEGER                    , INTENT(in   ), OPTIONAL ::   kfill     ! value of kfillmode in lbc_lbk 
    10351038      INTEGER , DIMENSION(:)     , INTENT(in   ), OPTIONAL ::   kstart    ! start position of the reading in each axis  
    10361039      INTEGER , DIMENSION(:)     , INTENT(in   ), OPTIONAL ::   kcount    ! number of points to be read in each axis 
     
    11581161               ENDIF 
    11591162            ELSE   !   not a 1D array as pv_r1d requires jpdom_unknown 
    1160                ! we do not read the overlap and the extra-halos -> from nldi to nlei and from nldj to nlej  
    1161                IF( idom == jpdom_global )   istart(1:2) = (/ mig(nldi), mjg(nldj) /) 
    1162                icnt(1:2) = (/ nlei - nldi + 1, nlej - nldj + 1 /) 
     1163               ! we do not read the overlap and the extra-halos -> from Nis0 to Nie0 and from Njs0 to Nje0  
     1164               IF( idom == jpdom_global )   istart(1:2) = (/ mig(Nis0)-nn_hls, mjg(Njs0)-nn_hls /) 
     1165               icnt(1:2) = (/ Ni_0, Nj_0 /) 
    11631166               IF( PRESENT(pv_r3d) ) THEN 
    11641167                  IF( idom == jpdom_auto_xy ) THEN 
     
    11911194            ELSE 
    11921195               IF( irankpv == 2 ) THEN 
    1193                   ishape(1:2) = SHAPE(pv_r2d(nldi:nlei,nldj:nlej  ))   ;   ctmp1 = 'd(nldi:nlei,nldj:nlej)' 
     1196                  ishape(1:2) = SHAPE(pv_r2d(Nis0:Nie0,Njs0:Nje0  ))   ;   ctmp1 = 'd(Nis0:Nie0,Njs0:Nje0)' 
    11941197               ENDIF 
    11951198               IF( irankpv == 3 ) THEN  
    1196                   ishape(1:3) = SHAPE(pv_r3d(nldi:nlei,nldj:nlej,:))   ;   ctmp1 = 'd(nldi:nlei,nldj:nlej,:)' 
     1199                  ishape(1:3) = SHAPE(pv_r3d(Nis0:Nie0,Njs0:Nje0,:))   ;   ctmp1 = 'd(Nis0:Nie0,Njs0:Nje0,:)' 
    11971200               ENDIF 
    11981201            ENDIF          
     
    12091212            ! 
    12101213            ! find the right index of the array to be read 
    1211             IF( idom /= jpdom_unknown ) THEN   ;   ix1 = nldi   ;   ix2 = nlei      ;   iy1 = nldj   ;   iy2 = nlej 
     1214            IF( idom /= jpdom_unknown ) THEN   ;   ix1 = Nis0   ;   ix2 = Nie0      ;   iy1 = Njs0   ;   iy2 = Nje0 
    12121215            ELSE                               ;   ix1 = 1      ;   ix2 = icnt(1)   ;   iy1 = 1      ;   iy2 = icnt(2) 
    12131216            ENDIF 
     
    12241227               !--- overlap areas and extra hallows (mpp) 
    12251228               IF(     PRESENT(pv_r2d) .AND. idom /= jpdom_unknown ) THEN 
    1226                   CALL lbc_lnk( 'iom', pv_r2d, cl_type, zsgn, kfillmode = jpfillnothing ) 
     1229                  CALL lbc_lnk( 'iom', pv_r2d, cl_type, zsgn, kfillmode = kfill ) 
    12271230               ELSEIF( PRESENT(pv_r3d) .AND. idom /= jpdom_unknown ) THEN 
    1228                   CALL lbc_lnk( 'iom', pv_r3d, cl_type, zsgn, kfillmode = jpfillnothing ) 
     1231                  CALL lbc_lnk( 'iom', pv_r3d, cl_type, zsgn, kfillmode = kfill ) 
    12291232               ENDIF 
    12301233               ! 
     
    18631866      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   plat 
    18641867      ! 
    1865       INTEGER  :: ni, nj 
    18661868      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmask 
    18671869      LOGICAL, INTENT(IN) :: ldxios, ldrxios 
    18681870      !!---------------------------------------------------------------------- 
    18691871      ! 
    1870       ni = nlei-nldi+1 
    1871       nj = nlej-nldj+1 
    1872       ! 
    1873       CALL iom_set_domain_attr("grid_"//cdgrd, ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 
    1874       CALL iom_set_domain_attr("grid_"//cdgrd, data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 
     1872      CALL iom_set_domain_attr("grid_"//cdgrd,ni_glo=jpiglo,nj_glo=jpjglo,ibegin=nimpp+Nis0-2,jbegin=njmpp+Njs0-2,ni=Ni_0,nj=Nj_0) 
     1873      CALL iom_set_domain_attr("grid_"//cdgrd, data_dim=2, data_ibegin = 1-Nis0, data_ni = jpi, data_jbegin = 1-Njs0, data_nj = jpj) 
    18751874!don't define lon and lat for restart reading context.  
    18761875      IF ( .NOT.ldrxios ) & 
    1877          CALL iom_set_domain_attr("grid_"//cdgrd, lonvalue = RESHAPE(plon(nldi:nlei, nldj:nlej),(/ ni*nj /)),   & 
    1878          &                                     latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))   
     1876         CALL iom_set_domain_attr("grid_"//cdgrd, lonvalue = RESHAPE(plon(Nis0:Nie0, Njs0:Nje0),(/ Ni_0*Nj_0 /)),   & 
     1877         &                                        latvalue = RESHAPE(plat(Nis0:Nie0, Njs0:Nje0),(/ Ni_0*Nj_0 /)))   
    18791878      ! 
    18801879      IF ( ln_mskland .AND. (.NOT.ldxios) ) THEN 
     
    18871886         END SELECT 
    18881887         ! 
    1889          CALL iom_set_domain_attr( "grid_"//cdgrd       , mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,1),(/ni*nj    /)) /= 0. ) 
    1890          CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D", mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,:),(/ni,nj,jpk/)) /= 0. ) 
     1888         CALL iom_set_domain_attr( "grid_"//cdgrd       , mask = RESHAPE(zmask(Nis0:Nie0,Njs0:Nje0,1),(/Ni_0*Nj_0    /)) /= 0. ) 
     1889         CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D", mask = RESHAPE(zmask(Nis0:Nie0,Njs0:Nje0,:),(/Ni_0*Nj_0,jpk/)) /= 0. ) 
    18911890      ENDIF 
    18921891      ! 
     
    19051904      REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in) :: plon_pnt, plat_pnt  ! Lat/lon coord. of the point of cell (i,j) 
    19061905      ! 
    1907       INTEGER :: ji, jj, jn, ni, nj 
     1906      INTEGER :: ji, jj, jn 
    19081907      INTEGER :: icnr, jcnr                             ! Offset such that the vertex coordinate (i+icnr,j+jcnr) 
    19091908      !                                                 ! represents the bottom-left corner of cell (i,j) 
     
    19211920      CASE ('V')        ;   icnr = -1   ;   jcnr =  0 
    19221921      END SELECT 
    1923       ! 
    1924       ni = nlei-nldi+1   ! Dimensions of subdomain interior 
    1925       nj = nlej-nldj+1 
    19261922      ! 
    19271923      z_fld(:,:) = 1._wp 
     
    19581954         IF( (nbondi == 1 .OR. nbondi == 2) .AND. .NOT. (jperio == 1 .OR. jperio == 4 .OR. jperio == 6) ) THEN 
    19591955            DO jn = 1, 4        ! (East or jpni = 1), closed E-W 
    1960                z_bnds(jn,nlci,:,1) = plat_pnt(nlci,:)  ;  z_bnds(jn,nlci,:,2) = plon_pnt(nlci,:) 
     1956               z_bnds(jn,jpi,:,1) = plat_pnt(jpi,:)  ;  z_bnds(jn,jpi,:,2) = plon_pnt(jpi,:) 
    19611957            END DO 
    19621958         ENDIF 
     
    19681964         IF( (nbondj == 1 .OR. nbondj == 2) .AND. jperio  < 3 ) THEN 
    19691965            DO jn = 1, 4        ! (North or jpnj = 1), no north fold 
    1970                z_bnds(jn,:,nlcj,1) = plat_pnt(:,nlcj)  ;  z_bnds(jn,:,nlcj,2) = plon_pnt(:,nlcj) 
     1966               z_bnds(jn,:,jpj,1) = plat_pnt(:,jpj)  ;  z_bnds(jn,:,jpj,2) = plon_pnt(:,jpj) 
    19711967            END DO 
    19721968         ENDIF 
     
    19911987      ENDIF 
    19921988      ! 
    1993       CALL iom_set_domain_attr("grid_"//cdgrd, bounds_lat = RESHAPE(z_bnds(:,nldi:nlei,nldj:nlej,1),(/ 4,ni*nj /)),           & 
    1994           &                                    bounds_lon = RESHAPE(z_bnds(:,nldi:nlei,nldj:nlej,2),(/ 4,ni*nj /)), nvertex=4 ) 
     1989      CALL iom_set_domain_attr("grid_"//cdgrd, bounds_lat = RESHAPE(z_bnds(:,Nis0:Nie0,Njs0:Nje0,1),(/ 4,Ni_0*Nj_0 /)),           & 
     1990          &                                    bounds_lon = RESHAPE(z_bnds(:,Nis0:Nie0,Njs0:Nje0,2),(/ 4,Ni_0*Nj_0 /)), nvertex=4 ) 
    19951991      ! 
    19961992      DEALLOCATE( z_bnds, z_fld, z_rot )  
     
    20082004      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   plat 
    20092005      ! 
    2010       INTEGER  :: ni, nj, ix, iy 
     2006      INTEGER  :: ix, iy 
    20112007      REAL(wp), DIMENSION(:), ALLOCATABLE  ::   zlon 
    20122008      !!---------------------------------------------------------------------- 
    20132009      ! 
    2014       ni=nlei-nldi+1       ! define zonal mean domain (jpj*jpk) 
    2015       nj=nlej-nldj+1 
    20162010      ALLOCATE( zlon(ni*nj) )       ;       zlon(:) = 0._wp 
    20172011      ! 
    20182012!      CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) !  i-line that passes through Bering Strait: Reference latitude (used in plots) 
    20192013      CALL dom_ngb( 180., 90., ix, iy, 'T' ) !  i-line that passes near the North Pole : Reference latitude (used in plots) 
    2020       CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 
    2021       CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 
     2014      CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+Nis0-2, jbegin=njmpp+Njs0-2, ni=Ni_0, nj=Nj_0) 
     2015      CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-Nis0, data_ni = jpi, data_jbegin = 1-Njs0, data_nj = jpj) 
    20222016      CALL iom_set_domain_attr("gznl", lonvalue = zlon,   & 
    2023          &                             latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))   
     2017         &                             latvalue = RESHAPE(plat(Nis0:Nie0, Njs0:Nje0),(/ Ni_0*Nj_0 /)))   
    20242018      CALL iom_set_zoom_domain_attr("ptr", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 
    20252019      ! 
Note: See TracChangeset for help on using the changeset viewer.