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 13016 for NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM – NEMO

Ignore:
Timestamp:
2020-06-03T12:48:36+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2475 implementation of new interface

Location:
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/closea.F90

    r12377 r13016  
    2020   !!---------------------------------------------------------------------- 
    2121   USE in_out_manager  ! I/O manager 
     22   USE iom_def 
    2223   ! 
    2324   USE diu_bulk    , ONLY: ln_diurnal_only            ! used for sanity check 
    24    USE iom         , ONLY: iom_open, iom_get, iom_close, jpdom_data ! I/O routines 
     25   USE iom         , ONLY: iom_open, iom_get, iom_close, jpdom_data, iom_swap ! I/O routines 
    2526   USE lib_fortran , ONLY: glob_sum                   ! fortran library 
    2627   USE lib_mpp     , ONLY: mpp_max, ctl_nam, ctl_stop ! MPP library 
     
    235236      !!---------------------------------------------------------------------- 
    236237      ! 
     238      IF(lcfg_xios) CALL iom_swap("dom_context") 
     239 
    237240      CALL iom_open ( cd_file, ics ) 
    238       CALL iom_get  ( ics, jpdom_data, TRIM(cd_var), zdta ) 
     241      CALL iom_get  ( ics, jpdom_data, TRIM(cd_var), zdta,  ldxios = lcfg_xios ) 
     242 
    239243      CALL iom_close( ics ) 
    240244      k_mskout(:,:) = NINT(zdta(:,:)) 
  • NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/daymod.F90

    r12489 r13016  
    323323 
    324324      IF( TRIM(cdrw) == 'READ' ) THEN 
    325  
     325         IF(lrxios) CALL iom_swap( TRIM(crxios_context) ) 
    326326         IF( iom_varid( numror, 'kt', ldstop = .FALSE. ) > 0 ) THEN 
    327327            ! Get Calendar informations 
     
    401401         ENDIF 
    402402         ! 
     403         IF(lrxios) CALL iom_swap( TRIM(cxios_context) ) 
    403404      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 
    404405         ! 
  • NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/domain.F90

    r12489 r13016  
    122122      CALL dom_glo                     ! global domain versus local domain 
    123123      CALL dom_nam                     ! read namelist ( namrun, namdom ) 
     124 
     125      lcfg_xios = ln_xios_cfg .AND. (.NOT. ln_use_jattr) 
    124126      ! 
    125127      IF( lwxios ) THEN 
     
    301303      ENDIF 
    302304      ! 
    303       ! 
    304305      READ  ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 
    305306901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namrun in reference namelist' ) 
     
    340341            WRITE(numout,*) '      READ restart for a single file using XIOS ln_xios_read =', ln_xios_read 
    341342            WRITE(numout,*) '      Write restart using XIOS        nn_wxios   = ', nn_wxios 
     343            WRITE(numout,*) '      READ config using XIOS          ln_xios_cfg  = ', ln_xios_cfg 
    342344         ELSE 
    343345            WRITE(numout,*) "      AGRIF: nn_wxios will be ingored. See setting for parent" 
  • NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/domhgr.F90

    r10068 r13016  
    189189      CALL iom_open( cn_domcfg, inum ) 
    190190      ! 
    191       CALL iom_get( inum, jpdom_data, 'glamt', plamt, lrowattr=ln_use_jattr ) 
    192       CALL iom_get( inum, jpdom_data, 'glamu', plamu, lrowattr=ln_use_jattr ) 
    193       CALL iom_get( inum, jpdom_data, 'glamv', plamv, lrowattr=ln_use_jattr ) 
    194       CALL iom_get( inum, jpdom_data, 'glamf', plamf, lrowattr=ln_use_jattr ) 
    195       ! 
    196       CALL iom_get( inum, jpdom_data, 'gphit', pphit, lrowattr=ln_use_jattr ) 
    197       CALL iom_get( inum, jpdom_data, 'gphiu', pphiu, lrowattr=ln_use_jattr ) 
    198       CALL iom_get( inum, jpdom_data, 'gphiv', pphiv, lrowattr=ln_use_jattr ) 
    199       CALL iom_get( inum, jpdom_data, 'gphif', pphif, lrowattr=ln_use_jattr ) 
    200       ! 
    201       CALL iom_get( inum, jpdom_data, 'e1t'  , pe1t  , lrowattr=ln_use_jattr ) 
    202       CALL iom_get( inum, jpdom_data, 'e1u'  , pe1u  , lrowattr=ln_use_jattr ) 
    203       CALL iom_get( inum, jpdom_data, 'e1v'  , pe1v  , lrowattr=ln_use_jattr ) 
    204       CALL iom_get( inum, jpdom_data, 'e1f'  , pe1f  , lrowattr=ln_use_jattr ) 
    205       ! 
    206       CALL iom_get( inum, jpdom_data, 'e2t'  , pe2t  , lrowattr=ln_use_jattr ) 
    207       CALL iom_get( inum, jpdom_data, 'e2u'  , pe2u  , lrowattr=ln_use_jattr ) 
    208       CALL iom_get( inum, jpdom_data, 'e2v'  , pe2v  , lrowattr=ln_use_jattr ) 
    209       CALL iom_get( inum, jpdom_data, 'e2f'  , pe2f  , lrowattr=ln_use_jattr ) 
     191      IF(lcfg_xios) THEN 
     192         CALL iom_dom_context(cn_domcfg, inum) 
     193         CALL iom_swap("dom_context") 
     194      ENDIF 
     195      CALL iom_get( inum, jpdom_data, 'glamt', plamt, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     196      CALL iom_get( inum, jpdom_data, 'glamu', plamu, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     197      CALL iom_get( inum, jpdom_data, 'glamv', plamv, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     198      CALL iom_get( inum, jpdom_data, 'glamf', plamf, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     199      ! 
     200      CALL iom_get( inum, jpdom_data, 'gphit', pphit, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     201      CALL iom_get( inum, jpdom_data, 'gphiu', pphiu, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     202      CALL iom_get( inum, jpdom_data, 'gphiv', pphiv, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     203      CALL iom_get( inum, jpdom_data, 'gphif', pphif, lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     204      ! 
     205      CALL iom_get( inum, jpdom_data, 'e1t'  , pe1t  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     206      CALL iom_get( inum, jpdom_data, 'e1u'  , pe1u  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     207      CALL iom_get( inum, jpdom_data, 'e1v'  , pe1v  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     208      CALL iom_get( inum, jpdom_data, 'e1f'  , pe1f  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     209      ! 
     210      CALL iom_get( inum, jpdom_data, 'e2t'  , pe2t  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     211      CALL iom_get( inum, jpdom_data, 'e2u'  , pe2u  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     212      CALL iom_get( inum, jpdom_data, 'e2v'  , pe2v  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     213      CALL iom_get( inum, jpdom_data, 'e2f'  , pe2f  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
    210214      ! 
    211215      IF(  iom_varid( inum, 'ff_f', ldstop = .FALSE. ) > 0  .AND.  & 
    212216         & iom_varid( inum, 'ff_t', ldstop = .FALSE. ) > 0    ) THEN 
    213217         IF(lwp) WRITE(numout,*) '           Coriolis factor at f- and t-points read in ', TRIM( cn_domcfg ), ' file' 
    214          CALL iom_get( inum, jpdom_data, 'ff_f'  , pff_f  , lrowattr=ln_use_jattr ) 
    215          CALL iom_get( inum, jpdom_data, 'ff_t'  , pff_t  , lrowattr=ln_use_jattr ) 
     218         CALL iom_get( inum, jpdom_data, 'ff_f'  , pff_f  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     219         CALL iom_get( inum, jpdom_data, 'ff_t'  , pff_t  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
    216220         kff = 1 
    217221      ELSE 
     
    221225      IF( iom_varid( inum, 'e1e2u', ldstop = .FALSE. ) > 0 ) THEN 
    222226         IF(lwp) WRITE(numout,*) '           e1e2u & e1e2v read in ', TRIM( cn_domcfg ), ' file' 
    223          CALL iom_get( inum, jpdom_data, 'e1e2u'  , pe1e2u  , lrowattr=ln_use_jattr ) 
    224          CALL iom_get( inum, jpdom_data, 'e1e2v'  , pe1e2v  , lrowattr=ln_use_jattr ) 
     227         CALL iom_get( inum, jpdom_data, 'e1e2u'  , pe1e2u  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     228         CALL iom_get( inum, jpdom_data, 'e1e2v'  , pe1e2v  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
    225229         ke1e2u_v = 1 
    226230      ELSE 
  • NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/domvvl.F90

    r12740 r13016  
    793793         IF( ln_rstart ) THEN                   !* Read the restart file 
    794794            CALL rst_read_open                  !  open the restart file if necessary 
     795            IF(lrxios) CALL iom_swap( TRIM(crxios_context) ) 
    795796            CALL iom_get( numror, jpdom_autoglo, 'sshn'   , ssh(:,:,Kmm), ldxios = lrxios    ) 
    796797            ! 
     
    870871            ENDIF 
    871872            ! 
     873            IF(lrxios) CALL iom_swap( TRIM(cxios_context) ) 
    872874         ELSE                                   !* Initialize at "rest" 
    873875            ! 
  • NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/DOM/domzgr.F90

    r12377 r13016  
    219219      ! 
    220220      CALL iom_open( cn_domcfg, inum ) 
     221 
     222      IF(lcfg_xios) CALL iom_swap("dom_context") 
    221223      ! 
    222224      !                          !* type of vertical coordinate 
     
    229231      ! 
    230232      !                          !* ocean cavities under iceshelves 
    231       CALL iom_get( inum, 'ln_isfcav', z_cav ) 
     233      CALL iom_get( inum, 'ln_isfcav', z_cav, ldxios = lcfg_xios ) 
    232234      IF( z_cav == 0._wp ) THEN   ;   ld_isfcav = .false.   ;   ELSE   ;   ld_isfcav = .true.   ;   ENDIF 
    233235      ! 
    234236      !                          !* vertical scale factors 
    235       CALL iom_get( inum, jpdom_unknown, 'e3t_1d'  , pe3t_1d  )                     ! 1D reference coordinate 
    236       CALL iom_get( inum, jpdom_unknown, 'e3w_1d'  , pe3w_1d  ) 
    237       ! 
    238       CALL iom_get( inum, jpdom_data, 'e3t_0'  , pe3t  , lrowattr=ln_use_jattr )    ! 3D coordinate 
    239       CALL iom_get( inum, jpdom_data, 'e3u_0'  , pe3u  , lrowattr=ln_use_jattr ) 
    240       CALL iom_get( inum, jpdom_data, 'e3v_0'  , pe3v  , lrowattr=ln_use_jattr ) 
    241       CALL iom_get( inum, jpdom_data, 'e3f_0'  , pe3f  , lrowattr=ln_use_jattr ) 
    242       CALL iom_get( inum, jpdom_data, 'e3w_0'  , pe3w  , lrowattr=ln_use_jattr ) 
    243       CALL iom_get( inum, jpdom_data, 'e3uw_0' , pe3uw , lrowattr=ln_use_jattr ) 
    244       CALL iom_get( inum, jpdom_data, 'e3vw_0' , pe3vw , lrowattr=ln_use_jattr ) 
     237      CALL iom_get( inum, jpdom_unknown, 'e3t_1d'  , pe3t_1d, ldxios = lcfg_xios   )                     ! 1D reference coordinate 
     238      CALL iom_get( inum, jpdom_unknown, 'e3w_1d'  , pe3w_1d, ldxios = lcfg_xios   ) 
     239      ! 
     240      CALL iom_get( inum, jpdom_data, 'e3t_0'  , pe3t  , lrowattr=ln_use_jattr, ldxios = lcfg_xios )    ! 3D coordinate 
     241      CALL iom_get( inum, jpdom_data, 'e3u_0'  , pe3u  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     242      CALL iom_get( inum, jpdom_data, 'e3v_0'  , pe3v  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     243      CALL iom_get( inum, jpdom_data, 'e3f_0'  , pe3f  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     244      CALL iom_get( inum, jpdom_data, 'e3w_0'  , pe3w  , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     245      CALL iom_get( inum, jpdom_data, 'e3uw_0' , pe3uw , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     246      CALL iom_get( inum, jpdom_data, 'e3vw_0' , pe3vw , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
    245247      ! 
    246248      !                          !* depths 
     
    252254         CALL ctl_warn( 'zgr_read : old definition of depths and scale factors used ', &  
    253255            &           '           depths at t- and w-points read in the domain configuration file') 
    254          CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d )    
    255          CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d ) 
    256          CALL iom_get( inum, jpdom_data   , 'gdept_0' , pdept , lrowattr=ln_use_jattr ) 
    257          CALL iom_get( inum, jpdom_data   , 'gdepw_0' , pdepw , lrowattr=ln_use_jattr ) 
     256         CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d, ldxios = lcfg_xios )    
     257         CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d, ldxios = lcfg_xios ) 
     258         CALL iom_get( inum, jpdom_data   , 'gdept_0' , pdept , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
     259         CALL iom_get( inum, jpdom_data   , 'gdepw_0' , pdepw , lrowattr=ln_use_jattr, ldxios = lcfg_xios ) 
    258260         ! 
    259261      ELSE                                !- depths computed from e3. scale factors 
     
    269271      ! 
    270272      !                          !* ocean top and bottom level 
    271       CALL iom_get( inum, jpdom_data, 'top_level'    , z2d  , lrowattr=ln_use_jattr )   ! 1st wet T-points (ISF) 
     273      CALL iom_get( inum, jpdom_data, 'top_level'    , z2d  , lrowattr=ln_use_jattr, ldxios = lcfg_xios )   ! 1st wet T-points (ISF) 
    272274      k_top(:,:) = NINT( z2d(:,:) ) 
    273       CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d  , lrowattr=ln_use_jattr )   ! last wet T-points 
     275      CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d  , lrowattr=ln_use_jattr, ldxios = lcfg_xios )   ! last wet T-points 
    274276      k_bot(:,:) = NINT( z2d(:,:) ) 
    275277      ! 
    276278      ! reference depth for negative bathy (wetting and drying only) 
    277       IF( ll_wd )  CALL iom_get( inum,  'rn_wd_ref_depth' , ssh_ref   ) 
    278       ! 
     279      IF( ll_wd )  CALL iom_get( inum,  'rn_wd_ref_depth' , ssh_ref, ldxios = lcfg_xios   ) 
     280      ! 
     281      IF(lcfg_xios) THEN 
     282         CALL iom_context_finalize( "dom_context") 
     283      ENDIF 
    279284      CALL iom_close( inum ) 
    280285      ! 
Note: See TracChangeset for help on using the changeset viewer.