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 12957 for NEMO/branches/2020/dev_12905_xios_restart/src/ICE – NEMO

Ignore:
Timestamp:
2020-05-20T18:53:27+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2462: write/read SI3 restart with XIOS (has debug print statements)

Location:
NEMO/branches/2020/dev_12905_xios_restart/src/ICE
Files:
5 edited

Legend:

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

    r12489 r12957  
    221221         IF( ln_rstart ) THEN                   !* Read the restart file 
    222222            ! 
    223             CALL iom_get( numrir, 'kt_ice' , ziter ) 
     223            IF(lrxios) CALL iom_swap(crixios_context) 
     224            CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrxios ) 
    224225            IF(lwp) WRITE(numout,*) 
    225226            IF(lwp) WRITE(numout,*) 'ice_dia_rst read at time step = ', ziter 
    226227            IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
    227             CALL iom_get( numrir, 'frc_voltop' , frc_voltop  ) 
    228             CALL iom_get( numrir, 'frc_volbot' , frc_volbot  ) 
    229             CALL iom_get( numrir, 'frc_temtop' , frc_temtop  ) 
    230             CALL iom_get( numrir, 'frc_tembot' , frc_tembot  ) 
    231             CALL iom_get( numrir, 'frc_sal'    , frc_sal     ) 
    232             CALL iom_get( numrir, jpdom_autoglo, 'vol_loc_ini', vol_loc_ini ) 
    233             CALL iom_get( numrir, jpdom_autoglo, 'tem_loc_ini', tem_loc_ini ) 
    234             CALL iom_get( numrir, jpdom_autoglo, 'sal_loc_ini', sal_loc_ini ) 
     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) 
    235237         ELSE 
    236238            IF(lwp) WRITE(numout,*) 
     
    261263         ! Write in numriw (if iter == nitrst) 
    262264         ! ------------------  
    263          CALL iom_rstput( iter, nitrst, numriw, 'frc_voltop' , frc_voltop  ) 
    264          CALL iom_rstput( iter, nitrst, numriw, 'frc_volbot' , frc_volbot  ) 
    265          CALL iom_rstput( iter, nitrst, numriw, 'frc_temtop' , frc_temtop  ) 
    266          CALL iom_rstput( iter, nitrst, numriw, 'frc_tembot' , frc_tembot  ) 
    267          CALL iom_rstput( iter, nitrst, numriw, 'frc_sal'    , frc_sal     ) 
    268          CALL iom_rstput( iter, nitrst, numriw, 'vol_loc_ini', vol_loc_ini ) 
    269          CALL iom_rstput( iter, nitrst, numriw, 'tem_loc_ini', tem_loc_ini ) 
    270          CALL iom_rstput( iter, nitrst, numriw, 'sal_loc_ini', sal_loc_ini ) 
     265         IF( lwxios ) CALL iom_swap(      cwixios_context         ) 
     266         CALL iom_rstput( iter, nitrst, numriw, 'frc_voltop' , frc_voltop,  ldxios = lwxios ) 
     267         CALL iom_rstput( iter, nitrst, numriw, 'frc_volbot' , frc_volbot,  ldxios = lwxios ) 
     268         CALL iom_rstput( iter, nitrst, numriw, 'frc_temtop' , frc_temtop,  ldxios = lwxios ) 
     269         CALL iom_rstput( iter, nitrst, numriw, 'frc_tembot' , frc_tembot,  ldxios = lwxios ) 
     270         CALL iom_rstput( iter, nitrst, numriw, 'frc_sal'    , frc_sal,     ldxios = lwxios ) 
     271         CALL iom_rstput( iter, nitrst, numriw, 'vol_loc_ini', vol_loc_ini, ldxios = lwxios ) 
     272         CALL iom_rstput( iter, nitrst, numriw, 'tem_loc_ini', tem_loc_ini, ldxios = lwxios ) 
     273         CALL iom_rstput( iter, nitrst, numriw, 'sal_loc_ini', sal_loc_ini, ldxios = lwxios ) 
     274         IF( lwxios ) CALL iom_swap(      cxios_context         ) 
    271275         ! 
    272276      ENDIF 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_adv_pra.F90

    r12489 r12957  
    770770         ! 
    771771         IF( id1 > 0 ) THEN                     !**  Read the restart file  **! 
     772            IF(lrxios) CALL iom_swap(crixios_context) 
    772773            ! 
    773774            !                                                        ! ice thickness 
    774             CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice  ) 
    775             CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice  ) 
    776             CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice ) 
    777             CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice ) 
    778             CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice ) 
     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 ) 
    779780            !                                                        ! snow thickness 
    780             CALL iom_get( numrir, jpdom_autoglo, 'sxsn'  , sxsn   ) 
    781             CALL iom_get( numrir, jpdom_autoglo, 'sysn'  , sysn   ) 
    782             CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn  ) 
    783             CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn  ) 
    784             CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn  ) 
     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  ) 
    785786            !                                                        ! ice concentration 
    786             CALL iom_get( numrir, jpdom_autoglo, 'sxa'   , sxa    ) 
    787             CALL iom_get( numrir, jpdom_autoglo, 'sya'   , sya    ) 
    788             CALL iom_get( numrir, jpdom_autoglo, 'sxxa'  , sxxa   ) 
    789             CALL iom_get( numrir, jpdom_autoglo, 'syya'  , syya   ) 
    790             CALL iom_get( numrir, jpdom_autoglo, 'sxya'  , sxya   ) 
     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   ) 
    791792            !                                                        ! ice salinity 
    792             CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal  ) 
    793             CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal  ) 
    794             CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal ) 
    795             CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal ) 
    796             CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal ) 
     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 ) 
    797798            !                                                        ! ice age 
    798             CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage  ) 
    799             CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage  ) 
    800             CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage ) 
    801             CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage ) 
    802             CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage ) 
     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 ) 
    803804            !                                                        ! snow layers heat content 
    804805            DO jk = 1, nlay_s 
    805806               WRITE(zchar1,'(I2.2)') jk 
    806                znam = 'sxc0'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxc0 (:,:,jk,:) = z3d(:,:,:) 
    807                znam = 'syc0'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   syc0 (:,:,jk,:) = z3d(:,:,:) 
    808                znam = 'sxxc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxxc0(:,:,jk,:) = z3d(:,:,:) 
    809                znam = 'syyc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   syyc0(:,:,jk,:) = z3d(:,:,:) 
    810                znam = 'sxyc0'//'_l'//zchar1 ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxyc0(:,:,jk,:) = z3d(:,:,:) 
     807               znam = 'sxc0'//'_l'//zchar1   
     808               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxc0 (:,:,jk,:) = z3d(:,:,:) 
     809               znam = 'syc0'//'_l'//zchar1   
     810               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   syc0 (:,:,jk,:) = z3d(:,:,:) 
     811               znam = 'sxxc0'//'_l'//zchar1  
     812               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxxc0(:,:,jk,:) = z3d(:,:,:) 
     813               znam = 'syyc0'//'_l'//zchar1  
     814               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   syyc0(:,:,jk,:) = z3d(:,:,:) 
     815               znam = 'sxyc0'//'_l'//zchar1  
     816               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxyc0(:,:,jk,:) = z3d(:,:,:) 
    811817            END DO 
    812818            !                                                        ! ice layers heat content 
    813819            DO jk = 1, nlay_i 
    814820               WRITE(zchar1,'(I2.2)') jk 
    815                znam = 'sxe'//'_l'//zchar1   ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxe (:,:,jk,:) = z3d(:,:,:) 
    816                znam = 'sye'//'_l'//zchar1   ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sye (:,:,jk,:) = z3d(:,:,:) 
    817                znam = 'sxxe'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxxe(:,:,jk,:) = z3d(:,:,:) 
    818                znam = 'syye'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   syye(:,:,jk,:) = z3d(:,:,:) 
    819                znam = 'sxye'//'_l'//zchar1  ;   CALL iom_get( numrir, jpdom_autoglo, znam , z3d )   ;   sxye(:,:,jk,:) = z3d(:,:,:) 
     821               znam = 'sxe'//'_l'//zchar1    
     822               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxe (:,:,jk,:) = z3d(:,:,:) 
     823               znam = 'sye'//'_l'//zchar1    
     824               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sye (:,:,jk,:) = z3d(:,:,:) 
     825               znam = 'sxxe'//'_l'//zchar1   
     826               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxxe(:,:,jk,:) = z3d(:,:,:) 
     827               znam = 'syye'//'_l'//zchar1   
     828               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   syye(:,:,jk,:) = z3d(:,:,:) 
     829               znam = 'sxye'//'_l'//zchar1   
     830               CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios )   ;   sxye(:,:,jk,:) = z3d(:,:,:) 
    820831            END DO 
    821832            ! 
    822833            IF( ln_pnd_H12 ) THEN                                    ! melt pond fraction 
    823                CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap  ) 
    824                CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap  ) 
    825                CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap ) 
    826                CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap ) 
    827                CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap ) 
     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 ) 
    828839               !                                                     ! melt pond volume 
    829                CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp  ) 
    830                CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp  ) 
    831                CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp ) 
    832                CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp ) 
    833                CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp ) 
     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 ) 
    834845            ENDIF 
     846            IF(lrxios) CALL iom_swap(cxios_context) 
    835847            ! 
    836848         ELSE                                   !**  start rheology from rest  **! 
     
    862874         ! 
    863875         !                                                           ! ice thickness 
    864          CALL iom_rstput( iter, nitrst, numriw, 'sxice' , sxice  ) 
    865          CALL iom_rstput( iter, nitrst, numriw, 'syice' , syice  ) 
    866          CALL iom_rstput( iter, nitrst, numriw, 'sxxice', sxxice ) 
    867          CALL iom_rstput( iter, nitrst, numriw, 'syyice', syyice ) 
    868          CALL iom_rstput( iter, nitrst, numriw, 'sxyice', sxyice ) 
     876         IF( lwxios ) CALL iom_swap(      cwixios_context         ) 
     877         CALL iom_rstput( iter, nitrst, numriw, 'sxice' , sxice,  ldxios = lwxios) 
     878         CALL iom_rstput( iter, nitrst, numriw, 'syice' , syice,  ldxios = lwxios) 
     879         CALL iom_rstput( iter, nitrst, numriw, 'sxxice', sxxice, ldxios = lwxios) 
     880         CALL iom_rstput( iter, nitrst, numriw, 'syyice', syyice, ldxios = lwxios) 
     881         CALL iom_rstput( iter, nitrst, numriw, 'sxyice', sxyice, ldxios = lwxios) 
    869882         !                                                           ! snow thickness 
    870          CALL iom_rstput( iter, nitrst, numriw, 'sxsn'  , sxsn  ) 
    871          CALL iom_rstput( iter, nitrst, numriw, 'sysn'  , sysn  ) 
    872          CALL iom_rstput( iter, nitrst, numriw, 'sxxsn' , sxxsn  ) 
    873          CALL iom_rstput( iter, nitrst, numriw, 'syysn' , syysn  ) 
    874          CALL iom_rstput( iter, nitrst, numriw, 'sxysn' , sxysn  ) 
     883         CALL iom_rstput( iter, nitrst, numriw, 'sxsn'  , sxsn,  ldxios = lwxios ) 
     884         CALL iom_rstput( iter, nitrst, numriw, 'sysn'  , sysn,  ldxios = lwxios ) 
     885         CALL iom_rstput( iter, nitrst, numriw, 'sxxsn' , sxxsn, ldxios = lwxios ) 
     886         CALL iom_rstput( iter, nitrst, numriw, 'syysn' , syysn, ldxios = lwxios ) 
     887         CALL iom_rstput( iter, nitrst, numriw, 'sxysn' , sxysn, ldxios = lwxios ) 
    875888         !                                                           ! ice concentration 
    876          CALL iom_rstput( iter, nitrst, numriw, 'sxa'   , sxa    ) 
    877          CALL iom_rstput( iter, nitrst, numriw, 'sya'   , sya    ) 
    878          CALL iom_rstput( iter, nitrst, numriw, 'sxxa'  , sxxa   ) 
    879          CALL iom_rstput( iter, nitrst, numriw, 'syya'  , syya   ) 
    880          CALL iom_rstput( iter, nitrst, numriw, 'sxya'  , sxya   ) 
     889         CALL iom_rstput( iter, nitrst, numriw, 'sxa'   , sxa,  ldxios = lwxios  ) 
     890         CALL iom_rstput( iter, nitrst, numriw, 'sya'   , sya,  ldxios = lwxios  ) 
     891         CALL iom_rstput( iter, nitrst, numriw, 'sxxa'  , sxxa, ldxios = lwxios  ) 
     892         CALL iom_rstput( iter, nitrst, numriw, 'syya'  , syya, ldxios = lwxios  ) 
     893         CALL iom_rstput( iter, nitrst, numriw, 'sxya'  , sxya, ldxios = lwxios  ) 
    881894         !                                                           ! ice salinity 
    882          CALL iom_rstput( iter, nitrst, numriw, 'sxsal' , sxsal  ) 
    883          CALL iom_rstput( iter, nitrst, numriw, 'sysal' , sysal  ) 
    884          CALL iom_rstput( iter, nitrst, numriw, 'sxxsal', sxxsal ) 
    885          CALL iom_rstput( iter, nitrst, numriw, 'syysal', syysal ) 
    886          CALL iom_rstput( iter, nitrst, numriw, 'sxysal', sxysal ) 
     895         CALL iom_rstput( iter, nitrst, numriw, 'sxsal' , sxsal,  ldxios = lwxios) 
     896         CALL iom_rstput( iter, nitrst, numriw, 'sysal' , sysal,  ldxios = lwxios) 
     897         CALL iom_rstput( iter, nitrst, numriw, 'sxxsal', sxxsal, ldxios = lwxios) 
     898         CALL iom_rstput( iter, nitrst, numriw, 'syysal', syysal, ldxios = lwxios) 
     899         CALL iom_rstput( iter, nitrst, numriw, 'sxysal', sxysal, ldxios = lwxios) 
    887900         !                                                           ! ice age 
    888          CALL iom_rstput( iter, nitrst, numriw, 'sxage' , sxage  ) 
    889          CALL iom_rstput( iter, nitrst, numriw, 'syage' , syage  ) 
    890          CALL iom_rstput( iter, nitrst, numriw, 'sxxage', sxxage ) 
    891          CALL iom_rstput( iter, nitrst, numriw, 'syyage', syyage ) 
    892          CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage ) 
     901         CALL iom_rstput( iter, nitrst, numriw, 'sxage' , sxage,  ldxios = lwxios) 
     902         CALL iom_rstput( iter, nitrst, numriw, 'syage' , syage,  ldxios = lwxios) 
     903         CALL iom_rstput( iter, nitrst, numriw, 'sxxage', sxxage, ldxios = lwxios) 
     904         CALL iom_rstput( iter, nitrst, numriw, 'syyage', syyage, ldxios = lwxios) 
     905         CALL iom_rstput( iter, nitrst, numriw, 'sxyage', sxyage, ldxios = lwxios) 
    893906         !                                                           ! snow layers heat content 
    894907         DO jk = 1, nlay_s 
    895908            WRITE(zchar1,'(I2.2)') jk 
    896             znam = 'sxc0'//'_l'//zchar1  ;   z3d(:,:,:) = sxc0 (:,:,jk,:)  ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    897             znam = 'syc0'//'_l'//zchar1  ;   z3d(:,:,:) = syc0 (:,:,jk,:)  ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    898             znam = 'sxxc0'//'_l'//zchar1 ;   z3d(:,:,:) = sxxc0(:,:,jk,:)  ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    899             znam = 'syyc0'//'_l'//zchar1 ;   z3d(:,:,:) = syyc0(:,:,jk,:)  ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    900             znam = 'sxyc0'//'_l'//zchar1 ;   z3d(:,:,:) = sxyc0(:,:,jk,:)  ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
     909            znam = 'sxc0'//'_l'//zchar1  ;   z3d(:,:,:) = sxc0 (:,:,jk,:) 
     910            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     911            znam = 'syc0'//'_l'//zchar1  ;   z3d(:,:,:) = syc0 (:,:,jk,:) 
     912            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     913            znam = 'sxxc0'//'_l'//zchar1 ;   z3d(:,:,:) = sxxc0(:,:,jk,:) 
     914            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     915            znam = 'syyc0'//'_l'//zchar1 ;   z3d(:,:,:) = syyc0(:,:,jk,:) 
     916            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     917            znam = 'sxyc0'//'_l'//zchar1 ;   z3d(:,:,:) = sxyc0(:,:,jk,:) 
     918            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
    901919         END DO 
    902920         !                                                           ! ice layers heat content 
    903921         DO jk = 1, nlay_i 
    904922            WRITE(zchar1,'(I2.2)') jk 
    905             znam = 'sxe'//'_l'//zchar1   ;   z3d(:,:,:) = sxe (:,:,jk,:)   ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    906             znam = 'sye'//'_l'//zchar1   ;   z3d(:,:,:) = sye (:,:,jk,:)   ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    907             znam = 'sxxe'//'_l'//zchar1  ;   z3d(:,:,:) = sxxe(:,:,jk,:)   ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    908             znam = 'syye'//'_l'//zchar1  ;   z3d(:,:,:) = syye(:,:,jk,:)   ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
    909             znam = 'sxye'//'_l'//zchar1  ;   z3d(:,:,:) = sxye(:,:,jk,:)   ;   CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
     923            znam = 'sxe'//'_l'//zchar1   ;   z3d(:,:,:) = sxe (:,:,jk,:) 
     924            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     925            znam = 'sye'//'_l'//zchar1   ;   z3d(:,:,:) = sye (:,:,jk,:) 
     926            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     927            znam = 'sxxe'//'_l'//zchar1  ;   z3d(:,:,:) = sxxe(:,:,jk,:) 
     928            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     929            znam = 'syye'//'_l'//zchar1  ;   z3d(:,:,:) = syye(:,:,jk,:) 
     930            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
     931            znam = 'sxye'//'_l'//zchar1  ;   z3d(:,:,:) = sxye(:,:,jk,:) 
     932            CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios) 
    910933         END DO 
    911934         ! 
    912935         IF( ln_pnd_H12 ) THEN                                       ! melt pond fraction 
    913             CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap  ) 
    914             CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap  ) 
    915             CALL iom_rstput( iter, nitrst, numriw, 'sxxap', sxxap ) 
    916             CALL iom_rstput( iter, nitrst, numriw, 'syyap', syyap ) 
    917             CALL iom_rstput( iter, nitrst, numriw, 'sxyap', sxyap ) 
     936            CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap,  ldxios = lwxios) 
     937            CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap,  ldxios = lwxios) 
     938            CALL iom_rstput( iter, nitrst, numriw, 'sxxap', sxxap, ldxios = lwxios) 
     939            CALL iom_rstput( iter, nitrst, numriw, 'syyap', syyap, ldxios = lwxios) 
     940            CALL iom_rstput( iter, nitrst, numriw, 'sxyap', sxyap, ldxios = lwxios) 
    918941            !                                                        ! melt pond volume 
    919             CALL iom_rstput( iter, nitrst, numriw, 'sxvp' , sxvp  ) 
    920             CALL iom_rstput( iter, nitrst, numriw, 'syvp' , syvp  ) 
    921             CALL iom_rstput( iter, nitrst, numriw, 'sxxvp', sxxvp ) 
    922             CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp ) 
    923             CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp ) 
     942            CALL iom_rstput( iter, nitrst, numriw, 'sxvp' , sxvp,  ldxios = lwxios) 
     943            CALL iom_rstput( iter, nitrst, numriw, 'syvp' , syvp,  ldxios = lwxios) 
     944            CALL iom_rstput( iter, nitrst, numriw, 'sxxvp', sxxvp, ldxios = lwxios) 
     945            CALL iom_rstput( iter, nitrst, numriw, 'syyvp', syyvp, ldxios = lwxios) 
     946            CALL iom_rstput( iter, nitrst, numriw, 'sxyvp', sxyvp, ldxios = lwxios) 
    924947         ENDIF 
     948         IF( lwxios ) CALL iom_swap(      cxios_context         ) 
    925949         ! 
    926950      ENDIF 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_rhg_evp.F90

    r12489 r12957  
    839839         IF( ln_rstart ) THEN                   !* Read the restart file 
    840840            ! 
     841            IF(lrxios) CALL iom_swap(crixios_context) 
    841842            id1 = iom_varid( numrir, 'stress1_i' , ldstop = .FALSE. ) 
    842843            id2 = iom_varid( numrir, 'stress2_i' , ldstop = .FALSE. ) 
     
    844845            ! 
    845846            IF( MIN( id1, id2, id3 ) > 0 ) THEN      ! fields exist 
    846                CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i  ) 
    847                CALL iom_get( numrir, jpdom_autoglo, 'stress2_i' , stress2_i  ) 
    848                CALL iom_get( numrir, jpdom_autoglo, 'stress12_i', stress12_i ) 
     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 ) 
    849850            ELSE                                     ! start rheology from rest 
    850851               IF(lwp) WRITE(numout,*) 
     
    854855               stress12_i(:,:) = 0._wp 
    855856            ENDIF 
     857            IF(lrxios) CALL iom_swap(cxios_context) 
    856858         ELSE                                   !* Start from rest 
    857859            IF(lwp) WRITE(numout,*) 
     
    867869         iter = kt + nn_fsbc - 1             ! ice restarts are written at kt == nitrst - nn_fsbc + 1 
    868870         ! 
    869          CALL iom_rstput( iter, nitrst, numriw, 'stress1_i' , stress1_i  ) 
    870          CALL iom_rstput( iter, nitrst, numriw, 'stress2_i' , stress2_i  ) 
    871          CALL iom_rstput( iter, nitrst, numriw, 'stress12_i', stress12_i ) 
     871         IF( lwxios ) CALL iom_swap(      cwixios_context         ) 
     872         CALL iom_rstput( iter, nitrst, numriw, 'stress1_i' , stress1_i,  ldxios = lwxios ) 
     873         CALL iom_rstput( iter, nitrst, numriw, 'stress2_i' , stress2_i,  ldxios = lwxios ) 
     874         CALL iom_rstput( iter, nitrst, numriw, 'stress12_i', stress12_i, ldxios = lwxios ) 
     875         IF( lwxios ) CALL iom_swap(      cxios_context         ) 
    872876         ! 
    873877      ENDIF 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icerst.F90

    r12649 r12957  
    5151      CHARACTER(len=50)   ::   clname   ! ice output restart file name 
    5252      CHARACTER(len=256)  ::   clpath   ! full path to ice output restart file  
     53      CHARACTER(LEN=52)   ::   clpname   ! ocean output restart file name including prefix for AGRIF 
    5354      !!---------------------------------------------------------------------- 
    5455      ! 
     
    8081            ENDIF 
    8182            ! 
    82             CALL iom_open( TRIM(clpath)//TRIM(clname), numriw, ldwrt = .TRUE., kdlev = jpl, cdcomp = 'ICE' ) 
     83            IF(.NOT.lwxios) THEN 
     84               CALL iom_open( TRIM(clpath)//TRIM(clname), numriw, ldwrt = .TRUE., kdlev = jpl, cdcomp = 'ICE' ) 
     85            ELSE 
     86#if defined key_iomput 
     87               cwixios_context = "rstwi_"//TRIM(ADJUSTL(clkt)) 
     88               IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
     89                  clpname = clname 
     90               ELSE 
     91                  clpname = TRIM(Agrif_CFixed())//"_"//clname 
     92               ENDIF 
     93               CALL iom_init( cwixios_context, TRIM(clpath)//TRIM(clpname), .false., ld_closedef = .FALSE. ) 
     94               CALL iom_swap(      cxios_context          ) 
     95#else 
     96               clinfo = 'Can not use XIOS in rst_opn' 
     97               CALL ctl_stop(TRIM(clinfo)) 
     98#endif 
     99            ENDIF 
    83100            lrst_ice = .TRUE. 
    84101         ENDIF 
     
    117134      ! ------------------  
    118135      !                                                                        ! calendar control 
    119       CALL iom_rstput( iter, nitrst, numriw, 'nn_fsbc', REAL( nn_fsbc, wp ) )      ! time-step  
    120       CALL iom_rstput( iter, nitrst, numriw, 'kt_ice' , REAL( iter   , wp ) )      ! date 
     136      IF( lwxios ) CALL iom_swap(      cwixios_context         ) 
     137      CALL iom_rstput( iter, nitrst, numriw, 'nn_fsbc', REAL( nn_fsbc, wp ), ldxios = lwxios )      ! time-step  
     138      CALL iom_rstput( iter, nitrst, numriw, 'kt_ice' , REAL( iter   , wp ), ldxios = lwxios )      ! date 
    121139      CALL iom_delay_rst( 'WRITE', 'ICE', numriw )   ! save only ice delayed global communication variables 
    122140 
    123141      ! Prognostic variables 
    124       CALL iom_rstput( iter, nitrst, numriw, 'v_i'  , v_i  ) 
    125       CALL iom_rstput( iter, nitrst, numriw, 'v_s'  , v_s  ) 
    126       CALL iom_rstput( iter, nitrst, numriw, 'sv_i' , sv_i  ) 
    127       CALL iom_rstput( iter, nitrst, numriw, 'a_i'  , a_i  ) 
    128       CALL iom_rstput( iter, nitrst, numriw, 't_su' , t_su  ) 
    129       CALL iom_rstput( iter, nitrst, numriw, 'u_ice', u_ice ) 
    130       CALL iom_rstput( iter, nitrst, numriw, 'v_ice', v_ice ) 
    131       CALL iom_rstput( iter, nitrst, numriw, 'oa_i' , oa_i  ) 
    132       CALL iom_rstput( iter, nitrst, numriw, 'a_ip' , a_ip  ) 
    133       CALL iom_rstput( iter, nitrst, numriw, 'v_ip' , v_ip  ) 
     142      CALL iom_rstput( iter, nitrst, numriw, 'v_i'  , v_i,   ldxios = lwxios ) 
     143      CALL iom_rstput( iter, nitrst, numriw, 'v_s'  , v_s,   ldxios = lwxios ) 
     144      CALL iom_rstput( iter, nitrst, numriw, 'sv_i' , sv_i,  ldxios = lwxios ) 
     145      CALL iom_rstput( iter, nitrst, numriw, 'a_i'  , a_i,   ldxios = lwxios ) 
     146      CALL iom_rstput( iter, nitrst, numriw, 't_su' , t_su,  ldxios = lwxios ) 
     147      CALL iom_rstput( iter, nitrst, numriw, 'u_ice', u_ice, ldxios = lwxios ) 
     148      CALL iom_rstput( iter, nitrst, numriw, 'v_ice', v_ice, ldxios = lwxios ) 
     149      CALL iom_rstput( iter, nitrst, numriw, 'oa_i' , oa_i,  ldxios = lwxios ) 
     150      CALL iom_rstput( iter, nitrst, numriw, 'a_ip' , a_ip,  ldxios = lwxios ) 
     151      CALL iom_rstput( iter, nitrst, numriw, 'v_ip' , v_ip,  ldxios = lwxios ) 
    134152      ! Snow enthalpy 
    135153      DO jk = 1, nlay_s  
     
    137155         znam = 'e_s'//'_l'//zchar1 
    138156         z3d(:,:,:) = e_s(:,:,jk,:) 
    139          CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
     157         CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 
    140158      END DO 
    141159      ! Ice enthalpy 
     
    144162         znam = 'e_i'//'_l'//zchar1 
    145163         z3d(:,:,:) = e_i(:,:,jk,:) 
    146          CALL iom_rstput( iter, nitrst, numriw, znam , z3d ) 
     164         CALL iom_rstput( iter, nitrst, numriw, znam , z3d, ldxios = lwxios ) 
    147165      END DO 
    148166      ! fields needed for Met Office (Jules) coupling 
    149167      IF( ln_cpl ) THEN 
    150          CALL iom_rstput( iter, nitrst, numriw, 'cnd_ice', cnd_ice ) 
    151          CALL iom_rstput( iter, nitrst, numriw, 't1_ice' , t1_ice  ) 
    152       ENDIF 
     168         CALL iom_rstput( iter, nitrst, numriw, 'cnd_ice', cnd_ice, ldxios = lwxios ) 
     169         CALL iom_rstput( iter, nitrst, numriw, 't1_ice' , t1_ice,  ldxios = lwxios ) 
     170      ENDIF 
     171      IF( lwxios ) CALL iom_swap(      cxios_context         ) 
    153172      ! 
    154173 
     
    156175      ! ------------------ 
    157176      IF( iter == nitrst ) THEN 
    158          CALL iom_close( numriw ) 
     177         IF(.NOT.lwxios) THEN 
     178            CALL iom_close( numriw ) 
     179         ELSE 
     180            CALL iom_context_finalize(      cwixios_context          ) 
     181         ENDIF 
    159182         lrst_ice = .FALSE. 
    160183      ENDIF 
     
    176199      CHARACTER(len=2)  ::   zchar, zchar1 
    177200      REAL(wp)          ::   zfice, ziter 
     201      CHARACTER(lc)     ::   clpname 
    178202      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z3d   ! 3D workspace 
    179203      !!---------------------------------------------------------------------- 
     
    185209      ENDIF 
    186210 
     211      lxios_sini = .FALSE. 
    187212      CALL iom_open ( TRIM(cn_icerst_indir)//'/'//cn_icerst_in, numrir ) 
     213 
     214      IF( lrxios .AND. .NOT. lxios_sini) STOP 'OCE and ICE restart must be in a single file' 
     215      IF(lwp) write(numout, *) 'USE XIOS to read restart: ', lrxios 
     216      IF(lwp) CALL FLUSH(numout) 
     217      IF( lrxios) THEN 
     218          crixios_context = 'si3_rst' 
     219          IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for SI3' 
     220          IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
     221             clpname = cn_icerst_in 
     222          ELSE 
     223             clpname = TRIM(Agrif_CFixed())//"_"//cn_icerst_in    
     224          ENDIF 
     225          CALL iom_init( crixios_context, fname = TRIM(cn_icerst_indir)//'/'//TRIM(clpname), ld_tmppatch = .TRUE. ) 
     226      ENDIF 
    188227 
    189228      ! test if v_i exists  
     
    193232      IF( id0 > 0 ) THEN   ! == case of a normal restart == ! 
    194233         !                 ! ------------------------------ ! 
    195           
     234         IF(lrxios) CALL iom_swap(crixios_context)  
    196235         ! Time info 
    197          CALL iom_get( numrir, 'nn_fsbc', zfice ) 
    198          CALL iom_get( numrir, 'kt_ice' , ziter )     
     236         CALL iom_get( numrir, 'nn_fsbc', zfice, ldxios = lrxios ) 
     237         CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrxios )     
    199238         IF(lwp) WRITE(numout,*) '   read ice restart file at time step    : ', ziter 
    200239         IF(lwp) WRITE(numout,*) '   in any case we force it to nit000 - 1 : ', nit000 - 1 
     
    211250 
    212251         ! --- mandatory fields --- !  
    213          CALL iom_get( numrir, jpdom_autoglo, 'v_i'  , v_i  ) 
    214          CALL iom_get( numrir, jpdom_autoglo, 'v_s'  , v_s  ) 
    215          CALL iom_get( numrir, jpdom_autoglo, 'sv_i' , sv_i  ) 
    216          CALL iom_get( numrir, jpdom_autoglo, 'a_i'  , a_i  ) 
    217          CALL iom_get( numrir, jpdom_autoglo, 't_su' , t_su  ) 
    218          CALL iom_get( numrir, jpdom_autoglo, 'u_ice', u_ice ) 
    219          CALL iom_get( numrir, jpdom_autoglo, 'v_ice', v_ice ) 
     252         CALL iom_get( numrir, jpdom_autoglo, 'v_i'  , v_i,   ldxios = lrxios ) 
     253         CALL iom_get( numrir, jpdom_autoglo, 'v_s'  , v_s,   ldxios = lrxios ) 
     254         CALL iom_get( numrir, jpdom_autoglo, 'sv_i' , sv_i,  ldxios = lrxios ) 
     255         CALL iom_get( numrir, jpdom_autoglo, 'a_i'  , a_i,   ldxios = lrxios ) 
     256         CALL iom_get( numrir, jpdom_autoglo, 't_su' , t_su,  ldxios = lrxios ) 
     257         CALL iom_get( numrir, jpdom_autoglo, 'u_ice', u_ice, ldxios = lrxios ) 
     258         CALL iom_get( numrir, jpdom_autoglo, 'v_ice', v_ice, ldxios = lrxios ) 
    220259         ! Snow enthalpy 
    221260         DO jk = 1, nlay_s 
    222261            WRITE(zchar1,'(I2.2)') jk 
    223262            znam = 'e_s'//'_l'//zchar1 
    224             CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) 
     263            CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
    225264            e_s(:,:,jk,:) = z3d(:,:,:) 
    226265         END DO 
     
    229268            WRITE(zchar1,'(I2.2)') jk 
    230269            znam = 'e_i'//'_l'//zchar1 
    231             CALL iom_get( numrir, jpdom_autoglo, znam , z3d ) 
     270            CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrxios ) 
    232271            e_i(:,:,jk,:) = z3d(:,:,:) 
    233272         END DO 
     
    236275         id1 = iom_varid( numrir, 'oa_i' , ldstop = .FALSE. ) 
    237276         IF( id1 > 0 ) THEN                       ! fields exist 
    238             CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i ) 
     277            CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i, ldxios = lrxios ) 
    239278         ELSE                                     ! start from rest 
    240279            IF(lwp) WRITE(numout,*) '   ==>>   previous run without ice age output then set it to zero' 
     
    244283         id2 = iom_varid( numrir, 'a_ip' , ldstop = .FALSE. ) 
    245284         IF( id2 > 0 ) THEN                       ! fields exist 
    246             CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip ) 
    247             CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip ) 
     285            CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip, ldxios = lrxios ) 
     286            CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip, ldxios = lrxios ) 
    248287         ELSE                                     ! start from rest 
    249288            IF(lwp) WRITE(numout,*) '   ==>>   previous run without melt ponds output then set it to zero' 
     
    256295            id4 = iom_varid( numrir, 't1_ice'  , ldstop = .FALSE. ) 
    257296            IF( id3 > 0 .AND. id4 > 0 ) THEN         ! fields exist 
    258                CALL iom_get( numrir, jpdom_autoglo, 'cnd_ice', cnd_ice ) 
    259                CALL iom_get( numrir, jpdom_autoglo, 't1_ice' , t1_ice  ) 
     297               CALL iom_get( numrir, jpdom_autoglo, 'cnd_ice', cnd_ice, ldxios = lrxios ) 
     298               CALL iom_get( numrir, jpdom_autoglo, 't1_ice' , t1_ice,  ldxios = lrxios ) 
    260299            ELSE                                     ! start from rest 
    261300               IF(lwp) WRITE(numout,*) '   ==>>   previous run without conductivity output then set it to zero' 
     
    266305 
    267306         CALL iom_delay_rst( 'READ', 'ICE', numrir )   ! read only ice delayed global communication variables 
    268  
     307         IF(lrxios) CALL iom_swap(cxios_context) 
    269308         !                 ! ---------------------------------- ! 
    270309      ELSE                 ! == case of a simplified restart == ! 
  • NEMO/branches/2020/dev_12905_xios_restart/src/ICE/iceupdate.F90

    r12489 r12957  
    417417            ! 
    418418            IF( id1 > 0 ) THEN                       ! fields exist 
    419                CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass'  , snwice_mass   ) 
    420                CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass_b', snwice_mass_b ) 
     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) 
    421423            ELSE                                     ! start from rest 
    422424               IF(lwp) WRITE(numout,*) '   ==>>   previous run without snow-ice mass output then set it' 
     
    435437         iter = kt + nn_fsbc - 1             ! ice restarts are written at kt == nitrst - nn_fsbc + 1 
    436438         ! 
    437          CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass'  , snwice_mass   ) 
    438          CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass_b', snwice_mass_b ) 
     439         IF( lwxios ) CALL iom_swap(      cwixios_context         ) 
     440         CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass'  , snwice_mass,   ldxios = lwxios ) 
     441         CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass_b', snwice_mass_b, ldxios = lwxios ) 
     442         IF( lwxios ) CALL iom_swap(      cxios_context         ) 
    439443         ! 
    440444      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.