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

Changeset 12969


Ignore:
Timestamp:
2020-05-26T12:05:09+02:00 (4 years ago)
Author:
andmirek
Message:

ticket #2462: read restart with XIOS independently for each component

Location:
NEMO/branches/2020/dev_12905_xios_restart/src
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/ice.F90

    r12489 r12969  
    168168   LOGICAL , PUBLIC ::   ln_cndflx        !: use conduction flux as surface boundary condition (instead of qsr and qns)  
    169169   LOGICAL , PUBLIC ::   ln_cndemulate    !: emulate conduction flux (if not provided)  
     170   LOGICAL , PUBLIC ::   lrixios          !: use xios to read restart in SI3 
    170171   !                                      ! Conduction flux as surface forcing or not 
    171172   INTEGER, PUBLIC, PARAMETER ::   np_cnd_OFF = 0  !: no forcing from conduction flux (ice thermodynamics forced via qsr and qns) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedia.F90

    r12957 r12969  
    221221         IF( ln_rstart ) THEN                   !* Read the restart file 
    222222            ! 
    223             IF(lrxios) CALL iom_swap(crixios_context) 
    224             CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrxios ) 
     223            IF(lrixios) CALL iom_swap(crixios_context) 
     224            CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrixios ) 
    225225            IF(lwp) WRITE(numout,*) 
    226226            IF(lwp) WRITE(numout,*) 'ice_dia_rst read at time step = ', ziter 
    227227            IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
    228             CALL iom_get( numrir, 'frc_voltop' , frc_voltop, ldxios = lrxios  ) 
    229             CALL iom_get( numrir, 'frc_volbot' , frc_volbot, ldxios = lrxios  ) 
    230             CALL iom_get( numrir, 'frc_temtop' , frc_temtop, ldxios = lrxios  ) 
    231             CALL iom_get( numrir, 'frc_tembot' , frc_tembot, ldxios = lrxios  ) 
    232             CALL iom_get( numrir, 'frc_sal'    , frc_sal, ldxios = lrxios     ) 
    233             CALL iom_get( numrir, jpdom_autoglo, 'vol_loc_ini', vol_loc_ini, ldxios = lrxios ) 
    234             CALL iom_get( numrir, jpdom_autoglo, 'tem_loc_ini', tem_loc_ini, ldxios = lrxios ) 
    235             CALL iom_get( numrir, jpdom_autoglo, 'sal_loc_ini', sal_loc_ini, ldxios = lrxios ) 
    236             IF(lrxios) CALL iom_swap(cxios_context) 
     228            CALL iom_get( numrir, 'frc_voltop' , frc_voltop, ldxios = lrixios  ) 
     229            CALL iom_get( numrir, 'frc_volbot' , frc_volbot, ldxios = lrixios  ) 
     230            CALL iom_get( numrir, 'frc_temtop' , frc_temtop, ldxios = lrixios  ) 
     231            CALL iom_get( numrir, 'frc_tembot' , frc_tembot, ldxios = lrixios  ) 
     232            CALL iom_get( numrir, 'frc_sal'    , frc_sal, ldxios = lrixios     ) 
     233            CALL iom_get( numrir, jpdom_autoglo, 'vol_loc_ini', vol_loc_ini, ldxios = lrixios ) 
     234            CALL iom_get( numrir, jpdom_autoglo, 'tem_loc_ini', tem_loc_ini, ldxios = lrixios ) 
     235            CALL iom_get( numrir, jpdom_autoglo, 'sal_loc_ini', sal_loc_ini, ldxios = lrixios ) 
     236            IF(lrixios) CALL iom_swap(cxios_context) 
    237237         ELSE 
    238238            IF(lwp) WRITE(numout,*) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_adv_pra.F90

    r12957 r12969  
    770770         ! 
    771771         IF( id1 > 0 ) THEN                     !**  Read the restart file  **! 
    772             IF(lrxios) CALL iom_swap(crixios_context) 
     772            IF(lrixios) CALL iom_swap(crixios_context) 
    773773            ! 
    774774            !                                                        ! ice thickness 
    775             CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice, ldxios = lrxios  ) 
    776             CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice, ldxios = lrxios  ) 
    777             CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice, ldxios = lrxios ) 
    778             CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice, ldxios = lrxios ) 
    779             CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice, ldxios = lrxios ) 
     775            CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice, ldxios = lrixios  ) 
     776            CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice, ldxios = lrixios  ) 
     777            CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice, ldxios = lrixios ) 
     778            CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice, ldxios = lrixios ) 
     779            CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice, ldxios = lrixios ) 
    780780            !                                                        ! snow thickness 
    781             CALL iom_get( numrir, jpdom_autoglo, 'sxsn'  , sxsn, ldxios = lrxios   ) 
    782             CALL iom_get( numrir, jpdom_autoglo, 'sysn'  , sysn, ldxios = lrxios   ) 
    783             CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn, ldxios = lrxios  ) 
    784             CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn, ldxios = lrxios  ) 
    785             CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn, ldxios = lrxios  ) 
     781            CALL iom_get( numrir, jpdom_autoglo, 'sxsn'  , sxsn, ldxios = lrixios   ) 
     782            CALL iom_get( numrir, jpdom_autoglo, 'sysn'  , sysn, ldxios = lrixios   ) 
     783            CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn, ldxios = lrixios  ) 
     784            CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn, ldxios = lrixios  ) 
     785            CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn, ldxios = lrixios  ) 
    786786            !                                                        ! ice concentration 
    787             CALL iom_get( numrir, jpdom_autoglo, 'sxa'   , sxa, ldxios = lrxios    ) 
    788             CALL iom_get( numrir, jpdom_autoglo, 'sya'   , sya, ldxios = lrxios    ) 
    789             CALL iom_get( numrir, jpdom_autoglo, 'sxxa'  , sxxa, ldxios = lrxios   ) 
    790             CALL iom_get( numrir, jpdom_autoglo, 'syya'  , syya, ldxios = lrxios   ) 
    791             CALL iom_get( numrir, jpdom_autoglo, 'sxya'  , sxya, ldxios = lrxios   ) 
     787            CALL iom_get( numrir, jpdom_autoglo, 'sxa'   , sxa, ldxios = lrixios    ) 
     788            CALL iom_get( numrir, jpdom_autoglo, 'sya'   , sya, ldxios = lrixios    ) 
     789            CALL iom_get( numrir, jpdom_autoglo, 'sxxa'  , sxxa, ldxios = lrixios   ) 
     790            CALL iom_get( numrir, jpdom_autoglo, 'syya'  , syya, ldxios = lrixios   ) 
     791            CALL iom_get( numrir, jpdom_autoglo, 'sxya'  , sxya, ldxios = lrixios   ) 
    792792            !                                                        ! ice salinity 
    793             CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal, ldxios = lrxios  ) 
    794             CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal, ldxios = lrxios  ) 
    795             CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal, ldxios = lrxios ) 
    796             CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal, ldxios = lrxios ) 
    797             CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal, ldxios = lrxios ) 
     793            CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal, ldxios = lrixios  ) 
     794            CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal, ldxios = lrixios  ) 
     795            CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal, ldxios = lrixios ) 
     796            CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal, ldxios = lrixios ) 
     797            CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal, ldxios = lrixios ) 
    798798            !                                                        ! ice age 
    799             CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage, ldxios = lrxios  ) 
    800             CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage, ldxios = lrxios  ) 
    801             CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage, ldxios = lrxios ) 
    802             CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage, ldxios = lrxios ) 
    803             CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage, ldxios = lrxios ) 
     799            CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage, ldxios = lrixios  ) 
     800            CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage, ldxios = lrixios  ) 
     801            CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage, ldxios = lrixios ) 
     802            CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage, ldxios = lrixios ) 
     803            CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage, ldxios = lrixios ) 
    804804            !                                                        ! snow layers heat content 
    805805            DO jk = 1, nlay_s 
    806806               WRITE(zchar1,'(I2.2)') jk 
    807807               znam = 'sxc0'//'_l'//zchar1   
    808                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxc0 (:,:,jk,:) = z3d(:,:,:) 
     808               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sxc0 (:,:,jk,:) = z3d(:,:,:) 
    809809               znam = 'syc0'//'_l'//zchar1   
    810                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   syc0 (:,:,jk,:) = z3d(:,:,:) 
     810               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   syc0 (:,:,jk,:) = z3d(:,:,:) 
    811811               znam = 'sxxc0'//'_l'//zchar1  
    812                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxxc0(:,:,jk,:) = z3d(:,:,:) 
     812               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sxxc0(:,:,jk,:) = z3d(:,:,:) 
    813813               znam = 'syyc0'//'_l'//zchar1  
    814                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   syyc0(:,:,jk,:) = z3d(:,:,:) 
     814               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   syyc0(:,:,jk,:) = z3d(:,:,:) 
    815815               znam = 'sxyc0'//'_l'//zchar1  
    816                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxyc0(:,:,jk,:) = z3d(:,:,:) 
     816               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sxyc0(:,:,jk,:) = z3d(:,:,:) 
    817817            END DO 
    818818            !                                                        ! ice layers heat content 
     
    820820               WRITE(zchar1,'(I2.2)') jk 
    821821               znam = 'sxe'//'_l'//zchar1    
    822                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxe (:,:,jk,:) = z3d(:,:,:) 
     822               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sxe (:,:,jk,:) = z3d(:,:,:) 
    823823               znam = 'sye'//'_l'//zchar1    
    824                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sye (:,:,jk,:) = z3d(:,:,:) 
     824               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sye (:,:,jk,:) = z3d(:,:,:) 
    825825               znam = 'sxxe'//'_l'//zchar1   
    826                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxxe(:,:,jk,:) = z3d(:,:,:) 
     826               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sxxe(:,:,jk,:) = z3d(:,:,:) 
    827827               znam = 'syye'//'_l'//zchar1   
    828                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   syye(:,:,jk,:) = z3d(:,:,:) 
     828               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   syye(:,:,jk,:) = z3d(:,:,:) 
    829829               znam = 'sxye'//'_l'//zchar1   
    830                CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxye(:,:,jk,:) = z3d(:,:,:) 
     830               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios )   ;   sxye(:,:,jk,:) = z3d(:,:,:) 
    831831            END DO 
    832832            ! 
    833833            IF( ln_pnd_H12 ) THEN                                    ! melt pond fraction 
    834                CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap,  ldxios = lrxios ) 
    835                CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap,  ldxios = lrxios ) 
    836                CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap, ldxios = lrxios ) 
    837                CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap, ldxios = lrxios ) 
    838                CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap, ldxios = lrxios ) 
     834               CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap,  ldxios = lrixios ) 
     835               CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap,  ldxios = lrixios ) 
     836               CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap, ldxios = lrixios ) 
     837               CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap, ldxios = lrixios ) 
     838               CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap, ldxios = lrixios ) 
    839839               !                                                     ! melt pond volume 
    840                CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp,  ldxios = lrxios ) 
    841                CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp,  ldxios = lrxios ) 
    842                CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp, ldxios = lrxios ) 
    843                CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp, ldxios = lrxios ) 
    844                CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp, ldxios = lrxios ) 
     840               CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp,  ldxios = lrixios ) 
     841               CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp,  ldxios = lrixios ) 
     842               CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp, ldxios = lrixios ) 
     843               CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp, ldxios = lrixios ) 
     844               CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp, ldxios = lrixios ) 
    845845            ENDIF 
    846             IF(lrxios) CALL iom_swap(cxios_context) 
     846            IF(lrixios) CALL iom_swap(cxios_context) 
    847847            ! 
    848848         ELSE                                   !**  start rheology from rest  **! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_rhg_evp.F90

    r12957 r12969  
    839839         IF( ln_rstart ) THEN                   !* Read the restart file 
    840840            ! 
    841             IF(lrxios) CALL iom_swap(crixios_context) 
     841            IF(lrixios) CALL iom_swap(crixios_context) 
    842842            id1 = iom_varid( numrir, 'stress1_i' , ldstop = .FALSE. ) 
    843843            id2 = iom_varid( numrir, 'stress2_i' , ldstop = .FALSE. ) 
     
    845845            ! 
    846846            IF( MIN( id1, id2, id3 ) > 0 ) THEN      ! fields exist 
    847                CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i,  ldxios = lrxios ) 
    848                CALL iom_get( numrir, jpdom_autoglo, 'stress2_i' , stress2_i,  ldxios = lrxios ) 
    849                CALL iom_get( numrir, jpdom_autoglo, 'stress12_i', stress12_i, ldxios = lrxios ) 
     847               CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i,  ldxios = lrixios ) 
     848               CALL iom_get( numrir, jpdom_autoglo, 'stress2_i' , stress2_i,  ldxios = lrixios ) 
     849               CALL iom_get( numrir, jpdom_autoglo, 'stress12_i', stress12_i, ldxios = lrixios ) 
    850850            ELSE                                     ! start rheology from rest 
    851851               IF(lwp) WRITE(numout,*) 
     
    855855               stress12_i(:,:) = 0._wp 
    856856            ENDIF 
    857             IF(lrxios) CALL iom_swap(cxios_context) 
     857            IF(lrixios) CALL iom_swap(cxios_context) 
    858858         ELSE                                   !* Start from rest 
    859859            IF(lwp) WRITE(numout,*) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icerst.F90

    r12961 r12969  
    213213      CALL iom_open ( TRIM(cn_icerst_indir)//'/'//cn_icerst_in, numrir ) 
    214214 
    215       IF( lrxios .AND. .NOT. lxios_sini) STOP 'OCE and ICE restart must be in a single file' 
    216       IF(lwp) write(numout, *) 'USE XIOS to read restart: ', lrxios 
     215      lrixios = lrxios.AND.lxios_sini 
     216      IF(lwp) write(numout, *) 'USE XIOS to read restart: ', lrixios 
    217217      IF(lwp) CALL FLUSH(numout) 
    218       IF( lrxios) THEN 
     218      IF( lrixios) THEN 
    219219          crixios_context = 'si3_rst' 
    220220          IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for SI3' 
     
    234234      IF( id0 > 0 ) THEN   ! == case of a normal restart == ! 
    235235         !                 ! ------------------------------ ! 
    236          IF(lrxios) CALL iom_swap(crixios_context)  
     236         IF(lrixios) CALL iom_swap(crixios_context)  
    237237         ! Time info 
    238          CALL iom_get( numrir, 'nn_fsbc', zfice, ldxios = lrxios ) 
    239          CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrxios )     
     238         CALL iom_get( numrir, 'nn_fsbc', zfice, ldxios = lrixios ) 
     239         CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrixios )     
    240240         IF(lwp) WRITE(numout,*) '   read ice restart file at time step    : ', ziter 
    241241         IF(lwp) WRITE(numout,*) '   in any case we force it to nit000 - 1 : ', nit000 - 1 
     
    252252 
    253253         ! --- mandatory fields --- !  
    254          CALL iom_get( numrir, jpdom_autoglo, 'v_i'  , v_i,   ldxios = lrxios ) 
    255          CALL iom_get( numrir, jpdom_autoglo, 'v_s'  , v_s,   ldxios = lrxios ) 
    256          CALL iom_get( numrir, jpdom_autoglo, 'sv_i' , sv_i,  ldxios = lrxios ) 
    257          CALL iom_get( numrir, jpdom_autoglo, 'a_i'  , a_i,   ldxios = lrxios ) 
    258          CALL iom_get( numrir, jpdom_autoglo, 't_su' , t_su,  ldxios = lrxios ) 
    259          CALL iom_get( numrir, jpdom_autoglo, 'u_ice', u_ice, ldxios = lrxios ) 
    260          CALL iom_get( numrir, jpdom_autoglo, 'v_ice', v_ice, ldxios = lrxios ) 
     254         CALL iom_get( numrir, jpdom_autoglo, 'v_i'  , v_i,   ldxios = lrixios ) 
     255         CALL iom_get( numrir, jpdom_autoglo, 'v_s'  , v_s,   ldxios = lrixios ) 
     256         CALL iom_get( numrir, jpdom_autoglo, 'sv_i' , sv_i,  ldxios = lrixios ) 
     257         CALL iom_get( numrir, jpdom_autoglo, 'a_i'  , a_i,   ldxios = lrixios ) 
     258         CALL iom_get( numrir, jpdom_autoglo, 't_su' , t_su,  ldxios = lrixios ) 
     259         CALL iom_get( numrir, jpdom_autoglo, 'u_ice', u_ice, ldxios = lrixios ) 
     260         CALL iom_get( numrir, jpdom_autoglo, 'v_ice', v_ice, ldxios = lrixios ) 
    261261         ! Snow enthalpy 
    262262         DO jk = 1, nlay_s 
    263263            WRITE(zchar1,'(I2.2)') jk 
    264264            znam = 'e_s'//'_l'//zchar1 
    265             CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     265            CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) 
    266266            e_s(:,:,jk,:) = z3d(:,:,:) 
    267267         END DO 
     
    270270            WRITE(zchar1,'(I2.2)') jk 
    271271            znam = 'e_i'//'_l'//zchar1 
    272             CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
     272            CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) 
    273273            e_i(:,:,jk,:) = z3d(:,:,:) 
    274274         END DO 
     
    277277         id1 = iom_varid( numrir, 'oa_i' , ldstop = .FALSE. ) 
    278278         IF( id1 > 0 ) THEN                       ! fields exist 
    279             CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i, ldxios = lrxios ) 
     279            CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i, ldxios = lrixios ) 
    280280         ELSE                                     ! start from rest 
    281281            IF(lwp) WRITE(numout,*) '   ==>>   previous run without ice age output then set it to zero' 
     
    285285         id2 = iom_varid( numrir, 'a_ip' , ldstop = .FALSE. ) 
    286286         IF( id2 > 0 ) THEN                       ! fields exist 
    287             CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip, ldxios = lrxios ) 
    288             CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip, ldxios = lrxios ) 
     287            CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip, ldxios = lrixios ) 
     288            CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip, ldxios = lrixios ) 
    289289         ELSE                                     ! start from rest 
    290290            IF(lwp) WRITE(numout,*) '   ==>>   previous run without melt ponds output then set it to zero' 
     
    297297            id4 = iom_varid( numrir, 't1_ice'  , ldstop = .FALSE. ) 
    298298            IF( id3 > 0 .AND. id4 > 0 ) THEN         ! fields exist 
    299                CALL iom_get( numrir, jpdom_autoglo, 'cnd_ice', cnd_ice, ldxios = lrxios ) 
    300                CALL iom_get( numrir, jpdom_autoglo, 't1_ice' , t1_ice,  ldxios = lrxios ) 
     299               CALL iom_get( numrir, jpdom_autoglo, 'cnd_ice', cnd_ice, ldxios = lrixios ) 
     300               CALL iom_get( numrir, jpdom_autoglo, 't1_ice' , t1_ice,  ldxios = lrixios ) 
    301301            ELSE                                     ! start from rest 
    302302               IF(lwp) WRITE(numout,*) '   ==>>   previous run without conductivity output then set it to zero' 
     
    307307 
    308308         CALL iom_delay_rst( 'READ', 'ICE', numrir )   ! read only ice delayed global communication variables 
    309          IF(lrxios) CALL iom_swap(cxios_context) 
     309         IF(lrixios) CALL iom_swap(cxios_context) 
    310310         !                 ! ---------------------------------- ! 
    311311      ELSE                 ! == case of a simplified restart == ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icestp.F90

    r12961 r12969  
    282282      IF( ln_rstart )  THEN 
    283283          CALL iom_close( numrir )  ! close input ice restart file 
    284           IF(lrxios) CALL iom_context_finalize(      crixios_context         ) 
     284          IF(lrixios) CALL iom_context_finalize(      crixios_context         ) 
    285285      ENDIF 
    286286      ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/iceupdate.F90

    r12957 r12969  
    417417            ! 
    418418            IF( id1 > 0 ) THEN                       ! fields exist 
    419                IF(lrxios) CALL iom_swap(crixios_context)  
    420                CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass'  , snwice_mass,   ldxios = lrxios ) 
    421                CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass_b', snwice_mass_b, ldxios = lrxios ) 
    422                IF(lrxios) CALL iom_swap(cxios_context) 
     419               IF(lrixios) CALL iom_swap(crixios_context)  
     420               CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass'  , snwice_mass,   ldxios = lrixios ) 
     421               CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass_b', snwice_mass_b, ldxios = lrixios ) 
     422               IF(lrixios) CALL iom_swap(cxios_context) 
    423423            ELSE                                     ! start from rest 
    424424               IF(lwp) WRITE(numout,*) '   ==>>   previous run without snow-ice mass output then set it' 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DIA/diahsb.F90

    r12950 r12969  
    262262            IF(lwp) WRITE(numout,*) '   dia_hsb_rst : read hsb restart at it= ', kt,' date= ', ndastp 
    263263            IF(lwp) WRITE(numout,*) 
    264             IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    265             CALL iom_get( numror, 'frc_v', frc_v, ldxios = lrxios ) 
    266             CALL iom_get( numror, 'frc_t', frc_t, ldxios = lrxios ) 
    267             CALL iom_get( numror, 'frc_s', frc_s, ldxios = lrxios ) 
     264            IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     265            CALL iom_get( numror, 'frc_v', frc_v, ldxios = lroxios ) 
     266            CALL iom_get( numror, 'frc_t', frc_t, ldxios = lroxios ) 
     267            CALL iom_get( numror, 'frc_s', frc_s, ldxios = lroxios ) 
    268268            IF( ln_linssh ) THEN 
    269                CALL iom_get( numror, 'frc_wn_t', frc_wn_t, ldxios = lrxios ) 
    270                CALL iom_get( numror, 'frc_wn_s', frc_wn_s, ldxios = lrxios ) 
     269               CALL iom_get( numror, 'frc_wn_t', frc_wn_t, ldxios = lroxios ) 
     270               CALL iom_get( numror, 'frc_wn_s', frc_wn_s, ldxios = lroxios ) 
    271271            ENDIF 
    272             CALL iom_get( numror, jpdom_autoglo, 'surf_ini'  , surf_ini  , ldxios = lrxios ) ! ice sheet coupling 
    273             CALL iom_get( numror, jpdom_autoglo, 'ssh_ini'   , ssh_ini   , ldxios = lrxios ) 
    274             CALL iom_get( numror, jpdom_autoglo, 'e3t_ini'   , e3t_ini   , ldxios = lrxios ) 
    275             CALL iom_get( numror, jpdom_autoglo, 'tmask_ini' , tmask_ini , ldxios = lrxios ) 
    276             CALL iom_get( numror, jpdom_autoglo, 'hc_loc_ini', hc_loc_ini, ldxios = lrxios ) 
    277             CALL iom_get( numror, jpdom_autoglo, 'sc_loc_ini', sc_loc_ini, ldxios = lrxios ) 
     272            CALL iom_get( numror, jpdom_autoglo, 'surf_ini'  , surf_ini  , ldxios = lroxios ) ! ice sheet coupling 
     273            CALL iom_get( numror, jpdom_autoglo, 'ssh_ini'   , ssh_ini   , ldxios = lroxios ) 
     274            CALL iom_get( numror, jpdom_autoglo, 'e3t_ini'   , e3t_ini   , ldxios = lroxios ) 
     275            CALL iom_get( numror, jpdom_autoglo, 'tmask_ini' , tmask_ini , ldxios = lroxios ) 
     276            CALL iom_get( numror, jpdom_autoglo, 'hc_loc_ini', hc_loc_ini, ldxios = lroxios ) 
     277            CALL iom_get( numror, jpdom_autoglo, 'sc_loc_ini', sc_loc_ini, ldxios = lroxios ) 
    278278            IF( ln_linssh ) THEN 
    279                CALL iom_get( numror, jpdom_autoglo, 'ssh_hc_loc_ini', ssh_hc_loc_ini, ldxios = lrxios ) 
    280                CALL iom_get( numror, jpdom_autoglo, 'ssh_sc_loc_ini', ssh_sc_loc_ini, ldxios = lrxios ) 
     279               CALL iom_get( numror, jpdom_autoglo, 'ssh_hc_loc_ini', ssh_hc_loc_ini, ldxios = lroxios ) 
     280               CALL iom_get( numror, jpdom_autoglo, 'ssh_sc_loc_ini', ssh_sc_loc_ini, ldxios = lroxios ) 
    281281            ENDIF 
    282             IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     282            IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    283283         ELSE 
    284284            IF(lwp) WRITE(numout,*) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DOM/daymod.F90

    r12957 r12969  
    315315 
    316316      IF( TRIM(cdrw) == 'READ' ) THEN 
    317          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     317         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    318318         IF( iom_varid( numror, 'kt', ldstop = .FALSE. ) > 0 ) THEN 
    319319            ! Get Calendar informations 
    320             CALL iom_get( numror, 'kt', zkt, ldxios = lrxios )   ! last time-step of previous run 
     320            CALL iom_get( numror, 'kt', zkt, ldxios = lroxios )   ! last time-step of previous run 
    321321            IF(lwp) THEN 
    322322               WRITE(numout,*) ' *** Info read in restart : ' 
     
    337337            IF ( nrstdt == 2 ) THEN 
    338338               ! read the parameters corresponding to nit000 - 1 (last time step of previous run) 
    339                CALL iom_get( numror, 'ndastp', zndastp, ldxios = lrxios ) 
     339               CALL iom_get( numror, 'ndastp', zndastp, ldxios = lroxios ) 
    340340               ndastp = NINT( zndastp ) 
    341                CALL iom_get( numror, 'adatrj', adatrj , ldxios = lrxios ) 
    342           CALL iom_get( numror, 'ntime' , ktime  , ldxios = lrxios ) 
     341               CALL iom_get( numror, 'adatrj', adatrj , ldxios = lroxios ) 
     342          CALL iom_get( numror, 'ntime' , ktime  , ldxios = lroxios ) 
    343343               nn_time0 = NINT(ktime) 
    344344               ! calculate start time in hours and minutes 
     
    383383            adatrj = ( REAL( nit000-1, wp ) * rn_Dt ) / rday 
    384384         ENDIF 
    385          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     385         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    386386         IF( ABS(adatrj  - REAL(NINT(adatrj),wp)) < 0.1 / rday )   adatrj = REAL(NINT(adatrj),wp)   ! avoid truncation error 
    387387         ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DOM/domvvl.F90

    r12950 r12969  
    775775         IF( ln_rstart ) THEN                   !* Read the restart file 
    776776            CALL rst_read_open                  !  open the restart file if necessary 
    777             IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    778             CALL iom_get( numror, jpdom_autoglo, 'sshn'   , ssh(:,:,Kmm), ldxios = lrxios    ) 
     777            IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     778            CALL iom_get( numror, jpdom_autoglo, 'sshn'   , ssh(:,:,Kmm), ldxios = lroxios    ) 
    779779            ! 
    780780            id1 = iom_varid( numror, 'e3t_b', ldstop = .FALSE. ) 
     
    789789            ! 
    790790            IF( MIN( id1, id2 ) > 0 ) THEN       ! all required arrays exist 
    791                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 
    792                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 
     791               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lroxios ) 
     792               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lroxios ) 
    793793               ! needed to restart if land processor not computed  
    794794               IF(lwp) write(numout,*) 'dom_vvl_rst : e3t(:,:,:,Kbb) and e3t(:,:,:,Kmm) found in restart files' 
     
    804804               IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 
    805805               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    806                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lrxios ) 
     806               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lroxios ) 
    807807               e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 
    808808               l_1st_euler = .true. 
     
    811811               IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 
    812812               IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 
    813                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lrxios ) 
     813               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lroxios ) 
    814814               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    815815               l_1st_euler = .true. 
     
    836836               !                          ! ----------------------- ! 
    837837               IF( MIN( id3, id4 ) > 0 ) THEN  ! all required arrays exist 
    838                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lrxios ) 
    839                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lrxios ) 
     838                  CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lroxios ) 
     839                  CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lroxios ) 
    840840               ELSE                            ! one at least array is missing 
    841841                  tilde_e3t_b(:,:,:) = 0.0_wp 
     
    846846                  !                       ! ------------ ! 
    847847                  IF( id5 > 0 ) THEN  ! required array exists 
    848                      CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lrxios ) 
     848                     CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lroxios ) 
    849849                  ELSE                ! array is missing 
    850850                     hdiv_lf(:,:,:) = 0.0_wp 
     
    852852               ENDIF 
    853853            ENDIF 
    854             IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     854            IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    855855            ! 
    856856         ELSE                                   !* Initialize at "rest" 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DYN/dynspg_ts.F90

    r12950 r12969  
    890890      IF( TRIM(cdrw) == 'READ' ) THEN        ! Read/initialise  
    891891         !                                   ! --------------- 
    892          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     892         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    893893         IF( ln_rstart .AND. ln_bt_fw .AND. (.NOT.l_1st_euler) ) THEN    !* Read the restart file 
    894             CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lrxios )    
    895             CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lrxios )  
    896             CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:), ldxios = lrxios )    
    897             CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:), ldxios = lrxios )  
     894            CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lroxios )    
     895            CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lroxios )  
     896            CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:), ldxios = lroxios )    
     897            CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:), ldxios = lroxios )  
    898898            IF( .NOT.ln_bt_av ) THEN 
    899                CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:), ldxios = lrxios )    
    900                CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:), ldxios = lrxios )    
    901                CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:), ldxios = lrxios ) 
    902                CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:), ldxios = lrxios )  
    903                CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:), ldxios = lrxios )    
    904                CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:), ldxios = lrxios ) 
     899               CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:), ldxios = lroxios )    
     900               CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:), ldxios = lroxios )    
     901               CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:), ldxios = lroxios ) 
     902               CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:), ldxios = lroxios )  
     903               CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:), ldxios = lroxios )    
     904               CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:), ldxios = lroxios ) 
    905905            ENDIF 
    906906#if defined key_agrif 
    907907            ! Read time integrated fluxes 
    908908            IF ( .NOT.Agrif_Root() ) THEN 
    909                CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lrxios )    
    910                CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lrxios ) 
     909               CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lroxios )    
     910               CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lroxios ) 
    911911            ENDIF 
    912912#endif 
     
    923923#endif 
    924924         ENDIF 
    925          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     925         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    926926         ! 
    927927      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/iom_def.F90

    r12961 r12969  
    4343   INTEGER, PUBLIC            ::   nxioso          !: type of restart file when writing using XIOS 1 - single, 2 - multiple 
    4444!XIOS read restart    
    45    LOGICAL, PUBLIC            ::   lrxios          !: read single file restart using XIOS 
     45   LOGICAL, PUBLIC            ::   lrxios          !: read single file restart using XIOS main switch 
     46   LOGICAL, PUBLIC            ::   lroxios         !: read single file restart using XIOS for oce       
    4647   LOGICAL, PUBLIC            ::   lxios_sini = .FALSE. ! is restart in a single file 
    4748 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/restart.F90

    r12961 r12969  
    210210! can handle checking if variable is in the restart file (there will be no need to open 
    211211! restart) 
    212          lrxios = lrxios.AND.lxios_sini 
    213  
    214          IF( lrxios) THEN 
     212         lroxios = lrxios.AND.lxios_sini 
     213 
     214         IF( lroxios) THEN 
    215215             crxios_context = 'oce_rst' 
    216216             IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS' 
     
    246246 
    247247      ! Check dynamics and tracer time-step consistency and force Euler restart if changed 
    248       IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     248      IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    249249      IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 )   THEN 
    250          CALL iom_get( numror, 'rdt', zrdt, ldxios = lrxios ) 
     250         CALL iom_get( numror, 'rdt', zrdt, ldxios = lroxios ) 
    251251         IF( zrdt /= rn_Dt ) THEN 
    252252            IF(lwp) WRITE( numout,*) 
     
    261261       
    262262      ! Diurnal DSST  
    263       IF( ln_diurnal ) CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst, ldxios = lrxios )  
     263      IF( ln_diurnal ) CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst, ldxios = lroxios )  
    264264      IF ( ln_diurnal_only ) THEN  
    265265         IF(lwp) WRITE( numout, * ) & 
    266266         &   "rst_read:- ln_diurnal_only set, setting rhop=rho0"  
    267267         rhop = rho0 
    268          CALL iom_get( numror, jpdom_autoglo, 'tn'     , w3d, ldxios = lrxios )  
     268         CALL iom_get( numror, jpdom_autoglo, 'tn'     , w3d, ldxios = lroxios )  
    269269         ts(:,:,1,jp_tem,Kmm) = w3d(:,:,1) 
    270270         RETURN  
     
    272272 
    273273      IF( iom_varid( numror, 'ub', ldstop = .FALSE. ) > 0 ) THEN 
    274          CALL iom_get( numror, jpdom_autoglo, 'ub'     , uu(:,:,:       ,Kbb), ldxios = lrxios )   ! before fields 
    275          CALL iom_get( numror, jpdom_autoglo, 'vb'     , vv(:,:,:       ,Kbb), ldxios = lrxios ) 
    276          CALL iom_get( numror, jpdom_autoglo, 'tb'     , ts(:,:,:,jp_tem,Kbb), ldxios = lrxios ) 
    277          CALL iom_get( numror, jpdom_autoglo, 'sb'     , ts(:,:,:,jp_sal,Kbb), ldxios = lrxios ) 
    278          CALL iom_get( numror, jpdom_autoglo, 'sshb'   ,ssh(:,:         ,Kbb), ldxios = lrxios ) 
     274         CALL iom_get( numror, jpdom_autoglo, 'ub'     , uu(:,:,:       ,Kbb), ldxios = lroxios )   ! before fields 
     275         CALL iom_get( numror, jpdom_autoglo, 'vb'     , vv(:,:,:       ,Kbb), ldxios = lroxios ) 
     276         CALL iom_get( numror, jpdom_autoglo, 'tb'     , ts(:,:,:,jp_tem,Kbb), ldxios = lroxios ) 
     277         CALL iom_get( numror, jpdom_autoglo, 'sb'     , ts(:,:,:,jp_sal,Kbb), ldxios = lroxios ) 
     278         CALL iom_get( numror, jpdom_autoglo, 'sshb'   ,ssh(:,:         ,Kbb), ldxios = lroxios ) 
    279279      ELSE 
    280280         l_1st_euler =  .TRUE.      ! before field not found, forced euler 1st time-step 
    281281      ENDIF 
    282282      ! 
    283       CALL iom_get( numror, jpdom_autoglo, 'un'     , uu(:,:,:       ,Kmm), ldxios = lrxios )       ! now    fields 
    284       CALL iom_get( numror, jpdom_autoglo, 'vn'     , vv(:,:,:       ,Kmm), ldxios = lrxios ) 
    285       CALL iom_get( numror, jpdom_autoglo, 'tn'     , ts(:,:,:,jp_tem,Kmm), ldxios = lrxios ) 
    286       CALL iom_get( numror, jpdom_autoglo, 'sn'     , ts(:,:,:,jp_sal,Kmm), ldxios = lrxios ) 
    287       CALL iom_get( numror, jpdom_autoglo, 'sshn'   ,ssh(:,:         ,Kmm), ldxios = lrxios ) 
     283      CALL iom_get( numror, jpdom_autoglo, 'un'     , uu(:,:,:       ,Kmm), ldxios = lroxios )       ! now    fields 
     284      CALL iom_get( numror, jpdom_autoglo, 'vn'     , vv(:,:,:       ,Kmm), ldxios = lroxios ) 
     285      CALL iom_get( numror, jpdom_autoglo, 'tn'     , ts(:,:,:,jp_tem,Kmm), ldxios = lroxios ) 
     286      CALL iom_get( numror, jpdom_autoglo, 'sn'     , ts(:,:,:,jp_sal,Kmm), ldxios = lroxios ) 
     287      CALL iom_get( numror, jpdom_autoglo, 'sshn'   ,ssh(:,:         ,Kmm), ldxios = lroxios ) 
    288288      IF( iom_varid( numror, 'rhop', ldstop = .FALSE. ) > 0 ) THEN 
    289          CALL iom_get( numror, jpdom_autoglo, 'rhop'   , rhop, ldxios = lrxios )   ! now    potential density 
     289         CALL iom_get( numror, jpdom_autoglo, 'rhop'   , rhop, ldxios = lroxios )   ! now    potential density 
    290290      ELSE 
    291291         CALL eos( ts(:,:,:,:,Kmm), rhd, rhop, gdept(:,:,:,Kmm) )    
    292292      ENDIF 
    293       IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     293      IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    294294      ! 
    295295      IF( l_1st_euler ) THEN                                  ! Euler restart  
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ISF/isfcpl.F90

    r12950 r12969  
    157157      !!---------------------------------------------------------------------- 
    158158      ! 
    159       IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    160       CALL iom_get( numror, jpdom_autoglo, 'ssmask'  , zssmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
    161       IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     159      IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     160      CALL iom_get( numror, jpdom_autoglo, 'ssmask'  , zssmask_b, ldxios = lroxios   ) ! need to extrapolate T/S 
     161      IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    162162 
    163163      ! compute new ssh if we open a full water column  
     
    238238      !!---------------------------------------------------------------------- 
    239239      !  
    240       IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    241       CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
    242       !CALL iom_get( numror, jpdom_autoglo, 'wmask'  , zwmask_b, ldxios = lrxios   ) ! need to extrapolate T/S 
    243       !CALL iom_get( numror, jpdom_autoglo, 'gdepw_n', zdepw_b(:,:,:), ldxios = lrxios ) ! need to interpol vertical profile (vvl) 
    244       IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     240      IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     241      CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b, ldxios = lroxios   ) ! need to extrapolate T/S 
     242      !CALL iom_get( numror, jpdom_autoglo, 'wmask'  , zwmask_b, ldxios = lroxios   ) ! need to extrapolate T/S 
     243      !CALL iom_get( numror, jpdom_autoglo, 'gdepw_n', zdepw_b(:,:,:), ldxios = lroxios ) ! need to interpol vertical profile (vvl) 
     244      IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    245245      ! 
    246246      !  
     
    386386      !!---------------------------------------------------------------------- 
    387387      ! 
    388       IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    389       CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b, ldxios = lrxios ) 
    390       CALL iom_get( numror, jpdom_autoglo, 'e3u_n'  , ze3u_b  , ldxios = lrxios ) 
    391       CALL iom_get( numror, jpdom_autoglo, 'e3v_n'  , ze3v_b  , ldxios = lrxios ) 
    392       IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     388      IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     389      CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b, ldxios = lroxios ) 
     390      CALL iom_get( numror, jpdom_autoglo, 'e3u_n'  , ze3u_b  , ldxios = lroxios ) 
     391      CALL iom_get( numror, jpdom_autoglo, 'e3v_n'  , ze3v_b  , ldxios = lroxios ) 
     392      IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    393393      ! 
    394394      ! 1.0: compute horizontal volume flux divergence difference before-after coupling 
     
    492492 
    493493      ! get restart variable 
    494       IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    495       CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b(:,:,:), ldxios = lrxios   ) ! need to extrapolate T/S 
    496       CALL iom_get( numror, jpdom_autoglo, 'e3t_n'  , ze3t_b(:,:,:)  , ldxios = lrxios ) 
    497       CALL iom_get( numror, jpdom_autoglo, 'tn'     , zt_b(:,:,:)    , ldxios = lrxios ) 
    498       CALL iom_get( numror, jpdom_autoglo, 'sn'     , zs_b(:,:,:)    , ldxios = lrxios ) 
    499       IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     494      IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     495      CALL iom_get( numror, jpdom_autoglo, 'tmask'  , ztmask_b(:,:,:), ldxios = lroxios   ) ! need to extrapolate T/S 
     496      CALL iom_get( numror, jpdom_autoglo, 'e3t_n'  , ze3t_b(:,:,:)  , ldxios = lroxios ) 
     497      CALL iom_get( numror, jpdom_autoglo, 'tn'     , zt_b(:,:,:)    , ldxios = lroxios ) 
     498      CALL iom_get( numror, jpdom_autoglo, 'sn'     , zs_b(:,:,:)    , ldxios = lroxios ) 
     499      IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    500500 
    501501      ! compute run length 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ISF/isfrst.F90

    r12950 r12969  
    5353      IF( iom_varid( numror, cfwf_b, ldstop = .FALSE. ) > 0 ) THEN 
    5454         IF(lwp) WRITE(numout,*) '          nit000-1 isf tracer content forcing fields read in the restart file' 
    55          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
    56          CALL iom_get( numror, jpdom_autoglo, cfwf_b, pfwf_b(:,:)        , ldxios = lrxios )   ! before ice shelf melt 
    57          CALL iom_get( numror, jpdom_autoglo, chc_b , ptsc_b (:,:,jp_tem), ldxios = lrxios )   ! before ice shelf heat flux 
    58          CALL iom_get( numror, jpdom_autoglo, csc_b , ptsc_b (:,:,jp_sal), ldxios = lrxios )   ! before ice shelf heat flux 
    59          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     55         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
     56         CALL iom_get( numror, jpdom_autoglo, cfwf_b, pfwf_b(:,:)        , ldxios = lroxios )   ! before ice shelf melt 
     57         CALL iom_get( numror, jpdom_autoglo, chc_b , ptsc_b (:,:,jp_tem), ldxios = lroxios )   ! before ice shelf heat flux 
     58         CALL iom_get( numror, jpdom_autoglo, csc_b , ptsc_b (:,:,jp_sal), ldxios = lroxios )   ! before ice shelf heat flux 
     59         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    6060      ELSE 
    6161         pfwf_b(:,:)   = pfwf(:,:) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcapr.F90

    r12950 r12969  
    6565      CHARACTER(len=100) ::  cn_dir   ! Root directory for location of ssr files 
    6666      TYPE(FLD_N)        ::  sn_apr   ! informations about the fields to be read 
    67       LOGICAL            ::  lrxios   ! read restart using XIOS? 
    6867      !! 
    6968      NAMELIST/namsbc_apr/ cn_dir, sn_apr, ln_ref_apr, rn_pref, ln_apr_obc 
     
    149148         !                                      ! ---------------------------------------- ! 
    150149         !                                            !* Restart: read in restart file 
    151          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     150         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    152151         IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN  
    153152            IF(lwp) WRITE(numout,*) 'sbc_apr:   ssh_ibb read in the restart file' 
    154             CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb, ldxios = lrxios )   ! before inv. barometer ssh 
     153            CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb, ldxios = lroxios )   ! before inv. barometer ssh 
    155154            ! 
    156155         ELSE                                         !* no restart: set from nit000 values 
     
    158157            ssh_ibb(:,:) = ssh_ib(:,:) 
    159158         ENDIF 
    160          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     159         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    161160      ENDIF 
    162161      !                                         ! ---------------------------------------- ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcmod.F90

    r12950 r12969  
    504504      IF( kt == nit000 ) THEN                          !   set the forcing field at nit000 - 1    ! 
    505505         !                                             ! ---------------------------------------- ! 
    506          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     506         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    507507         IF( ln_rstart .AND.    &                               !* Restart: read in restart file 
    508508            & iom_varid( numror, 'utau_b', ldstop = .FALSE. ) > 0 ) THEN 
    509509            IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields red in the restart file' 
    510             CALL iom_get( numror, jpdom_autoglo, 'utau_b', utau_b, ldxios = lrxios )   ! before i-stress  (U-point) 
    511             CALL iom_get( numror, jpdom_autoglo, 'vtau_b', vtau_b, ldxios = lrxios )   ! before j-stress  (V-point) 
    512             CALL iom_get( numror, jpdom_autoglo,  'qns_b',  qns_b, ldxios = lrxios )   ! before non solar heat flux (T-point) 
     510            CALL iom_get( numror, jpdom_autoglo, 'utau_b', utau_b, ldxios = lroxios )   ! before i-stress  (U-point) 
     511            CALL iom_get( numror, jpdom_autoglo, 'vtau_b', vtau_b, ldxios = lroxios )   ! before j-stress  (V-point) 
     512            CALL iom_get( numror, jpdom_autoglo,  'qns_b',  qns_b, ldxios = lroxios )   ! before non solar heat flux (T-point) 
    513513            ! The 3D heat content due to qsr forcing is treated in traqsr 
    514             ! CALL iom_get( numror, jpdom_autoglo, 'qsr_b' , qsr_b, ldxios = lrxios  ) ! before     solar heat flux (T-point) 
    515             CALL iom_get( numror, jpdom_autoglo, 'emp_b', emp_b, ldxios = lrxios  )    ! before     freshwater flux (T-point) 
     514            ! CALL iom_get( numror, jpdom_autoglo, 'qsr_b' , qsr_b, ldxios = lroxios  ) ! before     solar heat flux (T-point) 
     515            CALL iom_get( numror, jpdom_autoglo, 'emp_b', emp_b, ldxios = lroxios  )    ! before     freshwater flux (T-point) 
    516516            ! To ensure restart capability with 3.3x/3.4 restart files    !! to be removed in v3.6 
    517517            IF( iom_varid( numror, 'sfx_b', ldstop = .FALSE. ) > 0 ) THEN 
    518                CALL iom_get( numror, jpdom_autoglo, 'sfx_b', sfx_b, ldxios = lrxios )  ! before salt flux (T-point) 
     518               CALL iom_get( numror, jpdom_autoglo, 'sfx_b', sfx_b, ldxios = lroxios )  ! before salt flux (T-point) 
    519519            ELSE 
    520520               sfx_b (:,:) = sfx(:,:) 
     
    528528            sfx_b (:,:) = sfx (:,:) 
    529529         ENDIF 
    530          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     530         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    531531      ENDIF 
    532532      !                                                ! ---------------------------------------- ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcrnf.F90

    r12950 r12969  
    156156      IF( kt == nit000 ) THEN                          !   set the forcing field at nit000 - 1    ! 
    157157         !                                             ! ---------------------------------------- ! 
    158          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     158         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    159159         IF( ln_rstart .AND.    &                               !* Restart: read in restart file 
    160160            & iom_varid( numror, 'rnf_b', ldstop = .FALSE. ) > 0 ) THEN 
    161             IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields red in the restart file', lrxios 
    162             CALL iom_get( numror, jpdom_autoglo, 'rnf_b', rnf_b, ldxios = lrxios )     ! before runoff 
    163             CALL iom_get( numror, jpdom_autoglo, 'rnf_hc_b', rnf_tsc_b(:,:,jp_tem), ldxios = lrxios )   ! before heat content of runoff 
    164             CALL iom_get( numror, jpdom_autoglo, 'rnf_sc_b', rnf_tsc_b(:,:,jp_sal), ldxios = lrxios )   ! before salinity content of runoff 
     161            IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields red in the restart file', lroxios 
     162            CALL iom_get( numror, jpdom_autoglo, 'rnf_b', rnf_b, ldxios = lroxios )     ! before runoff 
     163            CALL iom_get( numror, jpdom_autoglo, 'rnf_hc_b', rnf_tsc_b(:,:,jp_tem), ldxios = lroxios )   ! before heat content of runoff 
     164            CALL iom_get( numror, jpdom_autoglo, 'rnf_sc_b', rnf_tsc_b(:,:,jp_sal), ldxios = lroxios )   ! before salinity content of runoff 
    165165         ELSE                                                   !* no restart: set from nit000 values 
    166166            IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields set to nit000' 
     
    168168            rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 
    169169         ENDIF 
    170          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     170         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    171171      ENDIF 
    172172      !                                                ! ---------------------------------------- ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcssm.F90

    r12950 r12969  
    205205         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~ ' 
    206206         ! 
    207          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     207         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    208208         IF( ln_rstart .AND. iom_varid( numror, 'nn_fsbc', ldstop = .FALSE. ) > 0 ) THEN 
    209209            l_ssm_mean = .TRUE. 
    210             CALL iom_get( numror               , 'nn_fsbc', zf_sbc, ldxios = lrxios )    ! sbc frequency of previous run 
    211             CALL iom_get( numror, jpdom_autoglo, 'ssu_m'  , ssu_m, ldxios = lrxios  )    ! sea surface mean velocity    (U-point) 
    212             CALL iom_get( numror, jpdom_autoglo, 'ssv_m'  , ssv_m, ldxios = lrxios  )    !   "         "    velocity    (V-point) 
    213             CALL iom_get( numror, jpdom_autoglo, 'sst_m'  , sst_m, ldxios = lrxios  )    !   "         "    temperature (T-point) 
    214             CALL iom_get( numror, jpdom_autoglo, 'sss_m'  , sss_m, ldxios = lrxios  )    !   "         "    salinity    (T-point) 
    215             CALL iom_get( numror, jpdom_autoglo, 'ssh_m'  , ssh_m, ldxios = lrxios  )    !   "         "    height      (T-point) 
    216             CALL iom_get( numror, jpdom_autoglo, 'e3t_m'  , e3t_m, ldxios = lrxios  )    ! 1st level thickness          (T-point) 
     210            CALL iom_get( numror               , 'nn_fsbc', zf_sbc, ldxios = lroxios )    ! sbc frequency of previous run 
     211            CALL iom_get( numror, jpdom_autoglo, 'ssu_m'  , ssu_m, ldxios = lroxios  )    ! sea surface mean velocity    (U-point) 
     212            CALL iom_get( numror, jpdom_autoglo, 'ssv_m'  , ssv_m, ldxios = lroxios  )    !   "         "    velocity    (V-point) 
     213            CALL iom_get( numror, jpdom_autoglo, 'sst_m'  , sst_m, ldxios = lroxios  )    !   "         "    temperature (T-point) 
     214            CALL iom_get( numror, jpdom_autoglo, 'sss_m'  , sss_m, ldxios = lroxios  )    !   "         "    salinity    (T-point) 
     215            CALL iom_get( numror, jpdom_autoglo, 'ssh_m'  , ssh_m, ldxios = lroxios  )    !   "         "    height      (T-point) 
     216            CALL iom_get( numror, jpdom_autoglo, 'e3t_m'  , e3t_m, ldxios = lroxios  )    ! 1st level thickness          (T-point) 
    217217            ! fraction of solar net radiation absorbed in 1st T level 
    218218            IF( iom_varid( numror, 'frq_m', ldstop = .FALSE. ) > 0 ) THEN 
    219                CALL iom_get( numror, jpdom_autoglo, 'frq_m'  , frq_m, ldxios = lrxios  ) 
     219               CALL iom_get( numror, jpdom_autoglo, 'frq_m'  , frq_m, ldxios = lroxios  ) 
    220220            ELSE 
    221221               frq_m(:,:) = 1._wp   ! default definition 
     
    236236            ENDIF 
    237237         ENDIF 
    238          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     238         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    239239      ENDIF 
    240240      ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/TRA/traqsr.F90

    r12950 r12969  
    135135      !                         !-----------------------------------! 
    136136      IF( kt == nit000 ) THEN          !==  1st time step  ==! 
    137          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     137         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    138138         IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0  .AND. .NOT.l_1st_euler ) THEN    ! read in restart 
    139139            IF(lwp) WRITE(numout,*) '          nit000-1 qsr tracer content forcing field read in the restart file' 
    140140            z1_2 = 0.5_wp 
    141             CALL iom_get( numror, jpdom_autoglo, 'qsr_hc_b', qsr_hc_b, ldxios = lrxios )   ! before heat content trend due to Qsr flux 
     141            CALL iom_get( numror, jpdom_autoglo, 'qsr_hc_b', qsr_hc_b, ldxios = lroxios )   ! before heat content trend due to Qsr flux 
    142142         ELSE                                           ! No restart or restart not found: Euler forward time stepping 
    143143            z1_2 = 1._wp 
    144144            qsr_hc_b(:,:,:) = 0._wp 
    145145         ENDIF 
    146          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     146         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    147147      ELSE                             !==  Swap of qsr heat content  ==! 
    148148         z1_2 = 0.5_wp 
     
    403403      ! 
    404404      ! 1st ocean level attenuation coefficient (used in sbcssm) 
    405       IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     405      IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    406406      IF( iom_varid( numror, 'fraqsr_1lev', ldstop = .FALSE. ) > 0 ) THEN 
    407          CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev'  , fraqsr_1lev, ldxios = lrxios  ) 
     407         CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev'  , fraqsr_1lev, ldxios = lroxios  ) 
    408408      ELSE 
    409409         fraqsr_1lev(:,:) = 1._wp   ! default : no penetration 
    410410      ENDIF 
    411       IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     411      IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    412412      ! 
    413413   END SUBROUTINE tra_qsr_init 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/TRA/trasbc.F90

    r12950 r12969  
    106106      !                             !==  Set before sbc tracer content fields  ==! 
    107107      IF( kt == nit000 ) THEN             !* 1st time-step 
    108          IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     108         IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    109109         IF( ln_rstart .AND.    &               ! Restart: read in restart file 
    110110              & iom_varid( numror, 'sbc_hc_b', ldstop = .FALSE. ) > 0 ) THEN 
     
    112112            zfact = 0.5_wp 
    113113            sbc_tsc(:,:,:) = 0._wp 
    114             CALL iom_get( numror, jpdom_autoglo, 'sbc_hc_b', sbc_tsc_b(:,:,jp_tem), ldxios = lrxios )   ! before heat content sbc trend 
    115             CALL iom_get( numror, jpdom_autoglo, 'sbc_sc_b', sbc_tsc_b(:,:,jp_sal), ldxios = lrxios )   ! before salt content sbc trend 
     114            CALL iom_get( numror, jpdom_autoglo, 'sbc_hc_b', sbc_tsc_b(:,:,jp_tem), ldxios = lroxios )   ! before heat content sbc trend 
     115            CALL iom_get( numror, jpdom_autoglo, 'sbc_sc_b', sbc_tsc_b(:,:,jp_sal), ldxios = lroxios )   ! before salt content sbc trend 
    116116         ELSE                                   ! No restart or restart not found: Euler forward time stepping 
    117117            zfact = 1._wp 
     
    119119            sbc_tsc_b(:,:,:) = 0._wp 
    120120         ENDIF 
    121          IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     121         IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    122122      ELSE                                !* other time-steps: swap of forcing fields 
    123123         zfact = 0.5_wp 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdfgls.F90

    r12950 r12969  
    10521052         !                                   ! --------------- 
    10531053         IF( ln_rstart ) THEN                   !* Read the restart file 
    1054             IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     1054            IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    10551055            id1 = iom_varid( numror, 'en'    , ldstop = .FALSE. ) 
    10561056            id2 = iom_varid( numror, 'avt_k' , ldstop = .FALSE. ) 
     
    10591059            ! 
    10601060            IF( MIN( id1, id2, id3, id4 ) > 0 ) THEN        ! all required arrays exist 
    1061                CALL iom_get( numror, jpdom_autoglo, 'en'    , en    , ldxios = lrxios ) 
    1062                CALL iom_get( numror, jpdom_autoglo, 'avt_k' , avt_k , ldxios = lrxios ) 
    1063                CALL iom_get( numror, jpdom_autoglo, 'avm_k' , avm_k , ldxios = lrxios ) 
    1064                CALL iom_get( numror, jpdom_autoglo, 'hmxl_n', hmxl_n, ldxios = lrxios ) 
     1061               CALL iom_get( numror, jpdom_autoglo, 'en'    , en    , ldxios = lroxios ) 
     1062               CALL iom_get( numror, jpdom_autoglo, 'avt_k' , avt_k , ldxios = lroxios ) 
     1063               CALL iom_get( numror, jpdom_autoglo, 'avm_k' , avm_k , ldxios = lroxios ) 
     1064               CALL iom_get( numror, jpdom_autoglo, 'hmxl_n', hmxl_n, ldxios = lroxios ) 
    10651065            ELSE                         
    10661066               IF(lwp) WRITE(numout,*) 
     
    10701070               ! avt_k, avm_k already set to the background value in zdf_phy_init 
    10711071            ENDIF 
    1072             IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     1072            IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    10731073         ELSE                                   !* Start from rest 
    10741074            IF(lwp) WRITE(numout,*) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdfosm.F90

    r12950 r12969  
    14541454     !!----------------------------------------------------------------------------- 
    14551455     IF( TRIM(cdrw) == 'READ'.AND. ln_rstart) THEN 
    1456         IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     1456        IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    14571457        id1 = iom_varid( numror, 'wn'   , ldstop = .FALSE. ) 
    14581458        IF( id1 > 0 ) THEN                       ! 'wn' exists; read 
    1459            CALL iom_get( numror, jpdom_autoglo, 'wn', ww, ldxios = lrxios ) 
     1459           CALL iom_get( numror, jpdom_autoglo, 'wn', ww, ldxios = lroxios ) 
    14601460           WRITE(numout,*) ' ===>>>> :  ww read from restart file' 
    14611461        ELSE 
     
    14661466        id2 = iom_varid( numror, 'hbli'   , ldstop = .FALSE. ) 
    14671467        IF( id1 > 0 .AND. id2 > 0) THEN                       ! 'hbl' exists; read and return 
    1468            CALL iom_get( numror, jpdom_autoglo, 'hbl' , hbl , ldxios = lrxios ) 
    1469            CALL iom_get( numror, jpdom_autoglo, 'hbli', hbli, ldxios = lrxios  ) 
     1468           CALL iom_get( numror, jpdom_autoglo, 'hbl' , hbl , ldxios = lroxios ) 
     1469           CALL iom_get( numror, jpdom_autoglo, 'hbli', hbli, ldxios = lroxios  ) 
    14701470           WRITE(numout,*) ' ===>>>> :  hbl & hbli read from restart file' 
    1471            IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     1471           IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    14721472           RETURN 
    14731473        ELSE                      ! 'hbl' & 'hbli' not in restart file, recalculate 
    14741474           WRITE(numout,*) ' ===>>>> : previous run without osmosis scheme, hbl computed from stratification' 
    14751475        END IF 
    1476         IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     1476        IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    14771477     END IF 
    14781478 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdfric.F90

    r12950 r12969  
    206206         !           !* Read the restart file 
    207207         IF( ln_rstart ) THEN 
    208             IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     208            IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    209209            id1 = iom_varid( numror, 'avt_k', ldstop = .FALSE. ) 
    210210            id2 = iom_varid( numror, 'avm_k', ldstop = .FALSE. ) 
    211211            ! 
    212212            IF( MIN( id1, id2 ) > 0 ) THEN         ! restart exists => read it 
    213                CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k, ldxios = lrxios ) 
    214                CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k, ldxios = lrxios ) 
     213               CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k, ldxios = lroxios ) 
     214               CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k, ldxios = lroxios ) 
    215215            ENDIF 
    216             IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     216            IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    217217         ENDIF 
    218218         !           !* otherwise Kz already set to the background value in zdf_phy_init 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdftke.F90

    r12950 r12969  
    659659         !                                   ! --------------- 
    660660         IF( ln_rstart ) THEN                   !* Read the restart file 
    661             IF( lrxios ) CALL iom_swap( TRIM(crxios_context) ) 
     661            IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 
    662662            id1 = iom_varid( numror, 'en'   , ldstop = .FALSE. ) 
    663663            id2 = iom_varid( numror, 'avt_k', ldstop = .FALSE. ) 
     
    666666            ! 
    667667            IF( MIN( id1, id2, id3, id4 ) > 0 ) THEN      ! fields exist 
    668                CALL iom_get( numror, jpdom_autoglo, 'en'   , en   , ldxios = lrxios ) 
    669                CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k, ldxios = lrxios ) 
    670                CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k, ldxios = lrxios ) 
    671                CALL iom_get( numror, jpdom_autoglo, 'dissl', dissl, ldxios = lrxios ) 
     668               CALL iom_get( numror, jpdom_autoglo, 'en'   , en   , ldxios = lroxios ) 
     669               CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k, ldxios = lroxios ) 
     670               CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k, ldxios = lroxios ) 
     671               CALL iom_get( numror, jpdom_autoglo, 'dissl', dissl, ldxios = lroxios ) 
    672672            ELSE                                          ! start TKE from rest 
    673673               IF(lwp) WRITE(numout,*) 
     
    677677               ! avt_k, avm_k already set to the background value in zdf_phy_init 
    678678            ENDIF 
    679             IF( lrxios ) CALL iom_swap( TRIM(cxios_context) ) 
     679            IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 
    680680         ELSE                                   !* Start from rest 
    681681            IF(lwp) WRITE(numout,*) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/OCE/step.F90

    r12961 r12969  
    351351      IF( kstp == nit000 ) THEN                          ! 1st time step only 
    352352                                        CALL iom_close( numror )   ! close input  ocean restart file 
    353          IF( lrxios )                   CALL iom_context_finalize(      crxios_context         ) 
     353         IF( lroxios )                   CALL iom_context_finalize(      crxios_context         ) 
    354354         IF(lwm)                        CALL FLUSH    ( numond )   ! flush output namelist oce 
    355355         IF(lwm .AND. numoni /= -1 )    CALL FLUSH    ( numoni )   ! flush output namelist ice (if exist) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/SAS/step.F90

    r12650 r12969  
    9797      IF( kstp /= nit000 )   CALL day( kstp )             ! Calendar (day was already called at nit000 in day_init) 
    9898                             CALL iom_setkt( kstp - nit000 + 1, cxios_context )   ! tell iom we are at time step kstp 
     99      IF((kstp == nitrst) .AND. lwxios) THEN 
     100         CALL iom_swap(      cwxios_context          ) 
     101         CALL iom_init_closedef(cwxios_context) 
     102         CALL iom_setkt( kstp - nit000 + 1,      cwxios_context          ) 
     103#if defined key_top 
     104         CALL iom_swap(      cwtxios_context          ) 
     105         CALL iom_init_closedef(cwtxios_context) 
     106         CALL iom_setkt( kstp - nit000 + 1,      cwtxios_context          ) 
     107#endif 
     108      ENDIF 
     109#if defined key_si3 
     110      IF(((kstp + nn_fsbc - 1) == nitrst) .AND. lwxios) THEN 
     111         CALL iom_swap(      cwixios_context          ) 
     112         CALL iom_init_closedef(cwixios_context) 
     113         CALL iom_setkt( kstp - nit000 + 1,      cwixios_context          ) 
     114      ENDIF 
     115#endif 
    99116 
    100117      ! ==> clem: open boundaries is mandatory for sea-ice because ice BDY is not decoupled from   
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/C14/trcini_c14.F90

    r12961 r12969  
    6868        IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    6969        !  
    70         IF(lrxios) CALL iom_swap(crtxios_context) 
    71         CALL iom_get( numrtr, 'co2sbc', co2sbc, ldxios = lrxios )  
    72         CALL iom_get( numrtr, jpdom_autoglo, 'c14sbc', c14sbc, ldxios = lrxios )  
    73         CALL iom_get( numrtr, jpdom_autoglo, 'exch_co2', exch_co2, ldxios = lrxios )  
    74         CALL iom_get( numrtr, jpdom_autoglo, 'exch_c14', exch_c14, ldxios = lrxios )  
    75         CALL iom_get( numrtr, jpdom_autoglo, 'qtr_c14', qtr_c14, ldxios = lrxios ) 
    76         IF(lrxios) CALL iom_swap(cxios_context) 
     70        IF(lrtxios) CALL iom_swap(crtxios_context) 
     71        CALL iom_get( numrtr, 'co2sbc', co2sbc, ldxios = lrtxios )  
     72        CALL iom_get( numrtr, jpdom_autoglo, 'c14sbc', c14sbc, ldxios = lrtxios )  
     73        CALL iom_get( numrtr, jpdom_autoglo, 'exch_co2', exch_co2, ldxios = lrtxios )  
     74        CALL iom_get( numrtr, jpdom_autoglo, 'exch_c14', exch_c14, ldxios = lrtxios )  
     75        CALL iom_get( numrtr, jpdom_autoglo, 'qtr_c14', qtr_c14, ldxios = lrtxios ) 
     76        IF(lrtxios) CALL iom_swap(cxios_context) 
    7777        ! 
    7878      END IF 
     
    8787      ELSE 
    8888        ! 
    89         IF(lrxios) CALL iom_swap(crtxios_context) 
    90         CALL iom_get( numrtr, jpdom_autoglo, 'qint_c14', qint_c14, ldxios = lrxios )  
    91         IF(lrxios) CALL iom_swap(cxios_context) 
     89        IF(lrtxios) CALL iom_swap(crtxios_context) 
     90        CALL iom_get( numrtr, jpdom_autoglo, 'qint_c14', qint_c14, ldxios = lrtxios )  
     91        IF(lrtxios) CALL iom_swap(cxios_context) 
    9292        ! 
    9393      ENDIF 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/CFC/trcsms_cfc.F90

    r12961 r12969  
    297297         ! 
    298298         jl = 0 
    299          IF(lrxios) CALL iom_swap(crtxios_context) 
     299         IF(lrtxios) CALL iom_swap(crtxios_context) 
    300300         DO jn = jp_cfc0, jp_cfc1 
    301301            jl = jl + 1 
    302             CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl), ldxios = lrxios )  
     302            CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl), ldxios = lrtxios )  
    303303         END DO 
    304          IF(lrxios) CALL iom_swap(cxios_context) 
     304         IF(lrtxios) CALL iom_swap(cxios_context) 
    305305      ENDIF 
    306306      IF(lwp) WRITE(numout,*) 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/P2Z/p2zexp.F90

    r12961 r12969  
    215215      ! 
    216216      IF( ln_rsttr ) THEN 
    217          IF(lrxios) CALL iom_swap(crtxios_context) 
    218          CALL iom_get( numrtr, jpdom_autoglo, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:), ldxios = lrxios ) 
    219          CALL iom_get( numrtr, jpdom_autoglo, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:), ldxios = lrxios ) 
    220          IF(lrxios) CALL iom_swap(cxios_context) 
     217         IF(lrtxios) CALL iom_swap(crtxios_context) 
     218         CALL iom_get( numrtr, jpdom_autoglo, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:), ldxios = lrtxios ) 
     219         CALL iom_get( numrtr, jpdom_autoglo, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:), ldxios = lrtxios ) 
     220         IF(lrtxios) CALL iom_swap(cxios_context) 
    221221      ELSE 
    222222         sedpocb(:,:) = 0._wp 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/P4Z/p4zsms.F90

    r12961 r12969  
    339339         IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    340340         !  
    341          IF(lrxios) CALL iom_swap(crtxios_context) 
     341         IF(lrtxios) CALL iom_swap(crtxios_context) 
    342342         IF( iom_varid( numrtr, 'PH', ldstop = .FALSE. ) > 0 ) THEN 
    343             CALL iom_get( numrtr, jpdom_autoglo, 'PH' , hi(:,:,:), ldxios = lrxios  ) 
     343            CALL iom_get( numrtr, jpdom_autoglo, 'PH' , hi(:,:,:), ldxios = lrtxios  ) 
    344344         ELSE 
    345345            CALL p4z_che( Kbb, Kmm )                  ! initialize the chemical constants 
    346346            CALL ahini_for_at( hi, Kbb ) 
    347347         ENDIF 
    348          CALL iom_get( numrtr, jpdom_autoglo, 'Silicalim', xksi(:,:), ldxios = lrxios ) 
     348         CALL iom_get( numrtr, jpdom_autoglo, 'Silicalim', xksi(:,:), ldxios = lrtxios ) 
    349349         IF( iom_varid( numrtr, 'Silicamax', ldstop = .FALSE. ) > 0 ) THEN 
    350             CALL iom_get( numrtr, jpdom_autoglo, 'Silicamax' , xksimax(:,:), ldxios = lrxios  ) 
     350            CALL iom_get( numrtr, jpdom_autoglo, 'Silicamax' , xksimax(:,:), ldxios = lrtxios  ) 
    351351         ELSE 
    352352            xksimax(:,:) = xksi(:,:) 
     
    354354         ! 
    355355         IF( iom_varid( numrtr, 'tcflxcum', ldstop = .FALSE. ) > 0 ) THEN  ! cumulative total flux of carbon 
    356             CALL iom_get( numrtr, 'tcflxcum' , t_oce_co2_flx_cum, ldxios = lrxios  ) 
     356            CALL iom_get( numrtr, 'tcflxcum' , t_oce_co2_flx_cum, ldxios = lrtxios  ) 
    357357         ELSE 
    358358            t_oce_co2_flx_cum = 0._wp 
     
    361361         IF( ln_p5z ) THEN 
    362362            IF( iom_varid( numrtr, 'sized', ldstop = .FALSE. ) > 0 ) THEN 
    363                CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sizep(:,:,:), ldxios = lrxios  ) 
    364                CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sizen(:,:,:), ldxios = lrxios  ) 
    365                CALL iom_get( numrtr, jpdom_autoglo, 'sized' , sized(:,:,:), ldxios = lrxios  ) 
     363               CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sizep(:,:,:), ldxios = lrtxios  ) 
     364               CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sizen(:,:,:), ldxios = lrtxios  ) 
     365               CALL iom_get( numrtr, jpdom_autoglo, 'sized' , sized(:,:,:), ldxios = lrtxios  ) 
    366366            ELSE 
    367367               sizep(:,:,:) = 1. 
     
    370370            ENDIF 
    371371        ENDIF 
    372         IF(lrxios) CALL iom_swap(cxios_context) 
     372        IF(lrtxios) CALL iom_swap(cxios_context) 
    373373        ! 
    374374      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sed.F90

    r10425 r12969  
    5353   INTEGER             , PUBLIC   ::  nn_rstsed      !: control of the time step ( 0 or 1 ) for pass. tr. 
    5454   INTEGER , PUBLIC               ::  nn_dtsed = 1   !: frequency of step on passive tracers 
     55   LOGICAL,  PUBLIC               ::  lrsxios        !: use xios to read restart 
    5556   CHARACTER(len = 80) , PUBLIC   ::  cn_sedrst_in   !: suffix of pass. tracer restart name (input) 
    5657   CHARACTER(len = 256), PUBLIC   ::  cn_sedrst_indir  !: restart input directory 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sedrst.F90

    r12961 r12969  
    139139      zdta2 = 0. 
    140140 
    141       IF(lrxios) CALL iom_swap(crsxios_context) 
     141      IF(lrsxios) CALL iom_swap(crsxios_context) 
    142142      DO jn = 1, jptrased 
    143143         cltra = TRIM(sedtrcd(jn)) 
    144144         IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    145             CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta(:,:,:,jn), ldxios = lrxios ) 
     145            CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta(:,:,:,jn), ldxios = lrsxios ) 
    146146         ELSE 
    147147            zdta(:,:,:,jn) = 0.0 
     
    162162         cltra = TRIM(seddia3d(jn)) 
    163163         IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    164             CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta1(:,:,:,jn), ldxios = lrxios ) 
     164            CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta1(:,:,:,jn), ldxios = lrsxios ) 
    165165         ELSE 
    166166            zdta1(:,:,:,jn) = 0.0 
     
    189189      cltra = "dbioturb" 
    190190      IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    191          CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrxios ) 
     191         CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrsxios ) 
    192192      ELSE 
    193193         zdta2(:,:,:) = 0.0 
     
    199199      cltra = "irrig" 
    200200      IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    201          CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrxios ) 
     201         CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrsxios ) 
    202202      ELSE 
    203203         zdta2(:,:,:) = 0.0 
     
    209209      cltra = "sedligand" 
    210210      IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 
    211          CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrxios ) 
     211         CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrsxios ) 
    212212      ELSE 
    213213         zdta2(:,:,:) = 0.0 
     
    216216      CALL pack_arr( jpoce, sedligand(1:jpoce,1:jpksed), & 
    217217         &             zdta2(1:jpi,1:jpj,1:jpksed), iarroce(1:jpoce) ) 
    218       IF(lrxios) CALL iom_swap(cxios_context) 
     218      IF(lrsxios) CALL iom_swap(cxios_context) 
    219219      IF( ln_timing )  CALL timing_stop('sed_rst_read') 
    220220      
     
    382382            CALL iom_open( TRIM(cn_sedrst_indir)//'/'//cn_sedrst_in, numrsr ) 
    383383 
    384       IF( lrxios .AND. .NOT. lxios_sini) THEN 
    385           CALL ctl_stop('OCE and SED restart must be in a single file when XIOS is used to read restart') 
    386       ENDIF 
    387       IF( lrxios) THEN 
    388           crsxios_context = 'sed_rst' 
    389           IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for SED' 
    390           IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
    391              clpname = cn_sedrst_in 
    392           ELSE 
    393              clpname = TRIM(Agrif_CFixed())//"_"//cn_sedrst_in    
    394           ENDIF 
    395           CALL iom_init( crsxios_context, fname = TRIM(cn_sedrst_indir)//'/'//TRIM(clpname), & 
    396                                           idfp = iom_file(numrsr)%nfid, ld_tmppatch = .TRUE. ) 
    397       ENDIF 
    398             IF(lrxios) CALL iom_swap(crsxios_context) 
    399             CALL iom_get ( numrsr, 'kt', zkt, ldxios = lrxios )   ! last time-step of previous run 
    400             IF(lrxios) CALL iom_swap(cxios_context) 
     384            lrsxios = lrxios.AND.lxios_sini 
     385            IF( lrsxios) THEN 
     386                crsxios_context = 'sed_rst' 
     387                IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for SED' 
     388                IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
     389                   clpname = cn_sedrst_in 
     390                ELSE 
     391                   clpname = TRIM(Agrif_CFixed())//"_"//cn_sedrst_in    
     392                ENDIF 
     393                CALL iom_init( crsxios_context, fname = TRIM(cn_sedrst_indir)//'/'//TRIM(clpname), & 
     394                                                idfp = iom_file(numrsr)%nfid, ld_tmppatch = .TRUE. ) 
     395            ENDIF 
     396            IF(lrsxios) CALL iom_swap(crsxios_context) 
     397            CALL iom_get ( numrsr, 'kt', zkt, ldxios = lrsxios )   ! last time-step of previous run 
     398            IF(lrsxios) CALL iom_swap(cxios_context) 
    401399            IF(lwp) THEN 
    402400               WRITE(numsed,*) ' *** Info read in restart : ' 
     
    419417            !                                          ! set the date in offline mode 
    420418            IF( ln_rst_sed .AND. nn_rstsed == 2 ) THEN 
    421                IF(lrxios) CALL iom_swap(crsxios_context) 
    422                CALL iom_get( numrsr, 'ndastp', zndastp, ldxios = lrxios ) 
     419               IF(lrsxios) CALL iom_swap(crsxios_context) 
     420               CALL iom_get( numrsr, 'ndastp', zndastp, ldxios = lrsxios ) 
    423421               ndastp = NINT( zndastp ) 
    424                CALL iom_get( numrsr, 'adatrj', adatrj, ldxios = lrxios  ) 
    425                IF(lrxios) CALL iom_swap(crxios_context) 
     422               CALL iom_get( numrsr, 'adatrj', adatrj, ldxios = lrsxios  ) 
     423               IF(lrsxios) CALL iom_swap(crxios_context) 
    426424             ELSE 
    427425               ndastp = ndate0 - 1     ! ndate0 read in the namelist in dom_nam 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sedstp.F90

    r12961 r12969  
    8686      IF( kt == nitsed000 ) THEN 
    8787          CALL iom_close( numrsr )       ! close input tracer restart file 
    88           IF(lrxios) CALL iom_context_finalize(      crsxios_context  ) 
     88          IF(lrsxios) CALL iom_context_finalize(      crsxios_context  ) 
    8989!          IF(lwm) CALL FLUSH( numont )   ! flush namelist output 
    9090      ENDIF 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/TRP/trcsbc.F90

    r12961 r12969  
    8686            IF(lwp) WRITE(numout,*) '          nittrc000-1 surface tracer content forcing fields read in the restart file' 
    8787            zfact = 0.5_wp 
    88             IF(lrxios) CALL iom_swap(crtxios_context) 
     88            IF(lrtxios) CALL iom_swap(crtxios_context) 
    8989            DO jn = 1, jptra 
    90                CALL iom_get( numrtr, jpdom_autoglo, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn), ldxios = lrxios )   ! before tracer content sbc 
     90               CALL iom_get( numrtr, jpdom_autoglo, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn), ldxios = lrtxios )   ! before tracer content sbc 
    9191            END DO 
    92             IF(lrxios) CALL iom_swap(cxios_context) 
     92            IF(lrtxios) CALL iom_swap(cxios_context) 
    9393         ELSE                                         ! No restart or restart not found: Euler forward time stepping 
    9494           zfact = 1._wp 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trc.F90

    r12489 r12969  
    6969   INTEGER             , PUBLIC ::   nittrc000          !: first time step of passive tracers model 
    7070   LOGICAL             , PUBLIC ::   l_trcdm2dc         !: Diurnal cycle for TOP 
     71   LOGICAL             , PUBLIC ::   lrtxios            !: read TOP restart with XIOS 
    7172 
    7273   !! Information for the ice module for tracers 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcrst.F90

    r12961 r12969  
    130130 
    131131      ! READ prognostic variables and computes diagnostic variable 
    132       IF(lrxios) CALL iom_swap(crtxios_context) 
     132      IF(lrtxios) CALL iom_swap(crtxios_context) 
    133133      DO jn = 1, jptra 
    134          CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm), ldxios = lrxios ) 
     134         CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm), ldxios = lrtxios ) 
    135135      END DO 
    136136 
    137137      DO jn = 1, jptra 
    138          CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb), ldxios = lrxios ) 
     138         CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb), ldxios = lrtxios ) 
    139139      END DO 
    140140      ! 
    141141      CALL iom_delay_rst( 'READ', 'TOP', numrtr )   ! read only TOP delayed global communication variables 
    142       IF(lrxios) CALL iom_swap(cxios_context)  
     142      IF(lrtxios) CALL iom_swap(cxios_context)  
    143143   END SUBROUTINE trc_rst_read 
    144144 
     
    234234            lxios_sini = .FALSE. 
    235235            CALL iom_open( TRIM(cn_trcrst_indir)//'/'//cn_trcrst_in, numrtr ) 
    236             IF( lrxios .AND. .NOT. lxios_sini) THEN 
    237                CALL ctl_stop('OCE and TOP restart must be in a single file when XIOS is used to read restart') 
    238             ENDIF 
    239             IF( lrxios) THEN 
     236            lrtxios = lrxios.AND.lxios_sini 
     237            IF( lrtxios) THEN 
    240238                crtxios_context = 'top_rst' 
    241239                IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for TOP' 
     
    249247            ENDIF 
    250248 
    251             IF(lrxios) CALL iom_swap(crtxios_context) 
    252             CALL iom_get ( numrtr, 'kt', zkt, ldxios = lrxios )   ! last time-step of previous run 
    253             IF(lrxios) CALL iom_swap(cxios_context) 
     249            IF(lrtxios) CALL iom_swap(crtxios_context) 
     250            CALL iom_get ( numrtr, 'kt', zkt, ldxios = lrtxios )   ! last time-step of previous run 
     251            IF(lrtxios) CALL iom_swap(cxios_context) 
    254252 
    255253            IF(lwp) THEN 
     
    273271            !                                          ! set the date in offline mode 
    274272            IF( ln_rsttr .AND. nn_rsttr == 2 ) THEN 
    275                IF(lrxios) CALL iom_swap(crtxios_context) 
    276                CALL iom_get( numrtr, 'ndastp', zndastp, ldxios = lrxios ) 
     273               IF(lrtxios) CALL iom_swap(crtxios_context) 
     274               CALL iom_get( numrtr, 'ndastp', zndastp, ldxios = lrtxios ) 
    277275               ndastp = NINT( zndastp ) 
    278                CALL iom_get( numrtr, 'adatrj', adatrj, ldxios = lrxios  ) 
    279                CALL iom_get( numrtr, 'ntime' , ktime, ldxios = lrxios   ) 
    280                IF(lrxios) CALL iom_swap(cxios_context) 
     276               CALL iom_get( numrtr, 'adatrj', adatrj, ldxios = lrtxios  ) 
     277               CALL iom_get( numrtr, 'ntime' , ktime, ldxios = lrtxios   ) 
     278               IF(lrtxios) CALL iom_swap(cxios_context) 
    281279               nn_time0=INT(ktime) 
    282280               ! calculate start time in hours and minutes 
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcstp.F90

    r12961 r12969  
    109109      IF( kt == nittrc000 ) THEN 
    110110         CALL iom_close( numrtr )                         ! close input tracer restart file 
    111          IF(lrxios) CALL iom_context_finalize(      crtxios_context          ) 
     111         IF(lrtxios) CALL iom_context_finalize(      crtxios_context          ) 
    112112         IF(lwm) CALL FLUSH( numont )                     ! flush namelist output 
    113113      ENDIF 
     
    196196           &                              .AND. iom_varid( numrtr, 'ktdcy'    , ldstop = .FALSE. ) > 0  & 
    197197           &                              .AND. iom_varid( numrtr, 'nrdcy'    , ldstop = .FALSE. ) > 0  ) THEN 
    198             IF(lrxios) CALL iom_swap(crtxios_context) 
    199             CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lrxios )   
     198            IF(lrtxios) CALL iom_swap(crtxios_context) 
     199            CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lrtxios )   
    200200            rsecfst = INT( zkt ) * rn_Dt 
    201201            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 
    202             CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean, ldxios = lrxios )   !  A mean of qsr 
    203             CALL iom_get( numrtr, 'nrdcy', zrec, ldxios = lrxios )   !  Number of record per days 
     202            CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean, ldxios = lrtxios )   !  A mean of qsr 
     203            CALL iom_get( numrtr, 'nrdcy', zrec, ldxios = lrtxios )   !  Number of record per days 
    204204            IF( INT( zrec ) == nb_rec_per_day ) THEN 
    205205               DO jn = 1, nb_rec_per_day  
    206206                  IF( jn <= 9 )  THEN 
    207207                    WRITE(cl1,'(i1)') jn 
    208                     CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lrxios )   !  A mean of qsr 
     208                    CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lrtxios )   !  A mean of qsr 
    209209                  ELSE 
    210210                    WRITE(cl2,'(i2.2)') jn 
    211                     CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lrxios )   !  A mean of qsr 
     211                    CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lrtxios )   !  A mean of qsr 
    212212                  ENDIF 
    213213              END DO 
     
    217217               ENDDO 
    218218            ENDIF 
    219             IF(lrxios) CALL iom_swap(cxios_context) 
     219            IF(lrtxios) CALL iom_swap(cxios_context) 
    220220         ELSE                                         !* no restart: set from nit000 values 
    221221            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean set to nit000 values' 
Note: See TracChangeset for help on using the changeset viewer.