Changeset 12969
- Timestamp:
- 2020-05-26T12:05:09+02:00 (4 years ago)
- 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 168 168 LOGICAL , PUBLIC :: ln_cndflx !: use conduction flux as surface boundary condition (instead of qsr and qns) 169 169 LOGICAL , PUBLIC :: ln_cndemulate !: emulate conduction flux (if not provided) 170 LOGICAL , PUBLIC :: lrixios !: use xios to read restart in SI3 170 171 ! ! Conduction flux as surface forcing or not 171 172 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 221 221 IF( ln_rstart ) THEN !* Read the restart file 222 222 ! 223 IF(lr xios) CALL iom_swap(crixios_context)224 CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lr xios )223 IF(lrixios) CALL iom_swap(crixios_context) 224 CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrixios ) 225 225 IF(lwp) WRITE(numout,*) 226 226 IF(lwp) WRITE(numout,*) 'ice_dia_rst read at time step = ', ziter 227 227 IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 228 CALL iom_get( numrir, 'frc_voltop' , frc_voltop, ldxios = lr xios )229 CALL iom_get( numrir, 'frc_volbot' , frc_volbot, ldxios = lr xios )230 CALL iom_get( numrir, 'frc_temtop' , frc_temtop, ldxios = lr xios )231 CALL iom_get( numrir, 'frc_tembot' , frc_tembot, ldxios = lr xios )232 CALL iom_get( numrir, 'frc_sal' , frc_sal, ldxios = lr xios )233 CALL iom_get( numrir, jpdom_autoglo, 'vol_loc_ini', vol_loc_ini, ldxios = lr xios )234 CALL iom_get( numrir, jpdom_autoglo, 'tem_loc_ini', tem_loc_ini, ldxios = lr xios )235 CALL iom_get( numrir, jpdom_autoglo, 'sal_loc_ini', sal_loc_ini, ldxios = lr xios )236 IF(lr xios) 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) 237 237 ELSE 238 238 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_adv_pra.F90
r12957 r12969 770 770 ! 771 771 IF( id1 > 0 ) THEN !** Read the restart file **! 772 IF(lr xios) CALL iom_swap(crixios_context)772 IF(lrixios) CALL iom_swap(crixios_context) 773 773 ! 774 774 ! ! ice thickness 775 CALL iom_get( numrir, jpdom_autoglo, 'sxice' , sxice, ldxios = lr xios )776 CALL iom_get( numrir, jpdom_autoglo, 'syice' , syice, ldxios = lr xios )777 CALL iom_get( numrir, jpdom_autoglo, 'sxxice', sxxice, ldxios = lr xios )778 CALL iom_get( numrir, jpdom_autoglo, 'syyice', syyice, ldxios = lr xios )779 CALL iom_get( numrir, jpdom_autoglo, 'sxyice', sxyice, ldxios = lr xios )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 ) 780 780 ! ! snow thickness 781 CALL iom_get( numrir, jpdom_autoglo, 'sxsn' , sxsn, ldxios = lr xios )782 CALL iom_get( numrir, jpdom_autoglo, 'sysn' , sysn, ldxios = lr xios )783 CALL iom_get( numrir, jpdom_autoglo, 'sxxsn' , sxxsn, ldxios = lr xios )784 CALL iom_get( numrir, jpdom_autoglo, 'syysn' , syysn, ldxios = lr xios )785 CALL iom_get( numrir, jpdom_autoglo, 'sxysn' , sxysn, ldxios = lr xios )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 ) 786 786 ! ! ice concentration 787 CALL iom_get( numrir, jpdom_autoglo, 'sxa' , sxa, ldxios = lr xios )788 CALL iom_get( numrir, jpdom_autoglo, 'sya' , sya, ldxios = lr xios )789 CALL iom_get( numrir, jpdom_autoglo, 'sxxa' , sxxa, ldxios = lr xios )790 CALL iom_get( numrir, jpdom_autoglo, 'syya' , syya, ldxios = lr xios )791 CALL iom_get( numrir, jpdom_autoglo, 'sxya' , sxya, ldxios = lr xios )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 ) 792 792 ! ! ice salinity 793 CALL iom_get( numrir, jpdom_autoglo, 'sxsal' , sxsal, ldxios = lr xios )794 CALL iom_get( numrir, jpdom_autoglo, 'sysal' , sysal, ldxios = lr xios )795 CALL iom_get( numrir, jpdom_autoglo, 'sxxsal', sxxsal, ldxios = lr xios )796 CALL iom_get( numrir, jpdom_autoglo, 'syysal', syysal, ldxios = lr xios )797 CALL iom_get( numrir, jpdom_autoglo, 'sxysal', sxysal, ldxios = lr xios )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 ) 798 798 ! ! ice age 799 CALL iom_get( numrir, jpdom_autoglo, 'sxage' , sxage, ldxios = lr xios )800 CALL iom_get( numrir, jpdom_autoglo, 'syage' , syage, ldxios = lr xios )801 CALL iom_get( numrir, jpdom_autoglo, 'sxxage', sxxage, ldxios = lr xios )802 CALL iom_get( numrir, jpdom_autoglo, 'syyage', syyage, ldxios = lr xios )803 CALL iom_get( numrir, jpdom_autoglo, 'sxyage', sxyage, ldxios = lr xios )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 ) 804 804 ! ! snow layers heat content 805 805 DO jk = 1, nlay_s 806 806 WRITE(zchar1,'(I2.2)') jk 807 807 znam = 'sxc0'//'_l'//zchar1 808 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sxc0 (:,:,jk,:) = z3d(:,:,:)808 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sxc0 (:,:,jk,:) = z3d(:,:,:) 809 809 znam = 'syc0'//'_l'//zchar1 810 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; syc0 (:,:,jk,:) = z3d(:,:,:)810 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; syc0 (:,:,jk,:) = z3d(:,:,:) 811 811 znam = 'sxxc0'//'_l'//zchar1 812 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sxxc0(:,:,jk,:) = z3d(:,:,:)812 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sxxc0(:,:,jk,:) = z3d(:,:,:) 813 813 znam = 'syyc0'//'_l'//zchar1 814 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; syyc0(:,:,jk,:) = z3d(:,:,:)814 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; syyc0(:,:,jk,:) = z3d(:,:,:) 815 815 znam = 'sxyc0'//'_l'//zchar1 816 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sxyc0(:,:,jk,:) = z3d(:,:,:)816 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sxyc0(:,:,jk,:) = z3d(:,:,:) 817 817 END DO 818 818 ! ! ice layers heat content … … 820 820 WRITE(zchar1,'(I2.2)') jk 821 821 znam = 'sxe'//'_l'//zchar1 822 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sxe (:,:,jk,:) = z3d(:,:,:)822 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sxe (:,:,jk,:) = z3d(:,:,:) 823 823 znam = 'sye'//'_l'//zchar1 824 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sye (:,:,jk,:) = z3d(:,:,:)824 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sye (:,:,jk,:) = z3d(:,:,:) 825 825 znam = 'sxxe'//'_l'//zchar1 826 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sxxe(:,:,jk,:) = z3d(:,:,:)826 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sxxe(:,:,jk,:) = z3d(:,:,:) 827 827 znam = 'syye'//'_l'//zchar1 828 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; syye(:,:,jk,:) = z3d(:,:,:)828 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; syye(:,:,jk,:) = z3d(:,:,:) 829 829 znam = 'sxye'//'_l'//zchar1 830 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios ) ; sxye(:,:,jk,:) = z3d(:,:,:)830 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) ; sxye(:,:,jk,:) = z3d(:,:,:) 831 831 END DO 832 832 ! 833 833 IF( ln_pnd_H12 ) THEN ! melt pond fraction 834 CALL iom_get( numrir, jpdom_autoglo, 'sxap' , sxap, ldxios = lr xios )835 CALL iom_get( numrir, jpdom_autoglo, 'syap' , syap, ldxios = lr xios )836 CALL iom_get( numrir, jpdom_autoglo, 'sxxap', sxxap, ldxios = lr xios )837 CALL iom_get( numrir, jpdom_autoglo, 'syyap', syyap, ldxios = lr xios )838 CALL iom_get( numrir, jpdom_autoglo, 'sxyap', sxyap, ldxios = lr xios )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 ) 839 839 ! ! melt pond volume 840 CALL iom_get( numrir, jpdom_autoglo, 'sxvp' , sxvp, ldxios = lr xios )841 CALL iom_get( numrir, jpdom_autoglo, 'syvp' , syvp, ldxios = lr xios )842 CALL iom_get( numrir, jpdom_autoglo, 'sxxvp', sxxvp, ldxios = lr xios )843 CALL iom_get( numrir, jpdom_autoglo, 'syyvp', syyvp, ldxios = lr xios )844 CALL iom_get( numrir, jpdom_autoglo, 'sxyvp', sxyvp, ldxios = lr xios )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 ) 845 845 ENDIF 846 IF(lr xios) CALL iom_swap(cxios_context)846 IF(lrixios) CALL iom_swap(cxios_context) 847 847 ! 848 848 ELSE !** start rheology from rest **! -
NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icedyn_rhg_evp.F90
r12957 r12969 839 839 IF( ln_rstart ) THEN !* Read the restart file 840 840 ! 841 IF(lr xios) CALL iom_swap(crixios_context)841 IF(lrixios) CALL iom_swap(crixios_context) 842 842 id1 = iom_varid( numrir, 'stress1_i' , ldstop = .FALSE. ) 843 843 id2 = iom_varid( numrir, 'stress2_i' , ldstop = .FALSE. ) … … 845 845 ! 846 846 IF( MIN( id1, id2, id3 ) > 0 ) THEN ! fields exist 847 CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i, ldxios = lr xios )848 CALL iom_get( numrir, jpdom_autoglo, 'stress2_i' , stress2_i, ldxios = lr xios )849 CALL iom_get( numrir, jpdom_autoglo, 'stress12_i', stress12_i, ldxios = lr xios )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 ) 850 850 ELSE ! start rheology from rest 851 851 IF(lwp) WRITE(numout,*) … … 855 855 stress12_i(:,:) = 0._wp 856 856 ENDIF 857 IF(lr xios) CALL iom_swap(cxios_context)857 IF(lrixios) CALL iom_swap(cxios_context) 858 858 ELSE !* Start from rest 859 859 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icerst.F90
r12961 r12969 213 213 CALL iom_open ( TRIM(cn_icerst_indir)//'/'//cn_icerst_in, numrir ) 214 214 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: ', lr xios215 lrixios = lrxios.AND.lxios_sini 216 IF(lwp) write(numout, *) 'USE XIOS to read restart: ', lrixios 217 217 IF(lwp) CALL FLUSH(numout) 218 IF( lr xios) THEN218 IF( lrixios) THEN 219 219 crixios_context = 'si3_rst' 220 220 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for SI3' … … 234 234 IF( id0 > 0 ) THEN ! == case of a normal restart == ! 235 235 ! ! ------------------------------ ! 236 IF(lr xios) CALL iom_swap(crixios_context)236 IF(lrixios) CALL iom_swap(crixios_context) 237 237 ! Time info 238 CALL iom_get( numrir, 'nn_fsbc', zfice, ldxios = lr xios )239 CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lr xios )238 CALL iom_get( numrir, 'nn_fsbc', zfice, ldxios = lrixios ) 239 CALL iom_get( numrir, 'kt_ice' , ziter, ldxios = lrixios ) 240 240 IF(lwp) WRITE(numout,*) ' read ice restart file at time step : ', ziter 241 241 IF(lwp) WRITE(numout,*) ' in any case we force it to nit000 - 1 : ', nit000 - 1 … … 252 252 253 253 ! --- mandatory fields --- ! 254 CALL iom_get( numrir, jpdom_autoglo, 'v_i' , v_i, ldxios = lr xios )255 CALL iom_get( numrir, jpdom_autoglo, 'v_s' , v_s, ldxios = lr xios )256 CALL iom_get( numrir, jpdom_autoglo, 'sv_i' , sv_i, ldxios = lr xios )257 CALL iom_get( numrir, jpdom_autoglo, 'a_i' , a_i, ldxios = lr xios )258 CALL iom_get( numrir, jpdom_autoglo, 't_su' , t_su, ldxios = lr xios )259 CALL iom_get( numrir, jpdom_autoglo, 'u_ice', u_ice, ldxios = lr xios )260 CALL iom_get( numrir, jpdom_autoglo, 'v_ice', v_ice, ldxios = lr xios )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 ) 261 261 ! Snow enthalpy 262 262 DO jk = 1, nlay_s 263 263 WRITE(zchar1,'(I2.2)') jk 264 264 znam = 'e_s'//'_l'//zchar1 265 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios )265 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) 266 266 e_s(:,:,jk,:) = z3d(:,:,:) 267 267 END DO … … 270 270 WRITE(zchar1,'(I2.2)') jk 271 271 znam = 'e_i'//'_l'//zchar1 272 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lr xios )272 CALL iom_get( numrir, jpdom_autoglo, znam , z3d, ldxios = lrixios ) 273 273 e_i(:,:,jk,:) = z3d(:,:,:) 274 274 END DO … … 277 277 id1 = iom_varid( numrir, 'oa_i' , ldstop = .FALSE. ) 278 278 IF( id1 > 0 ) THEN ! fields exist 279 CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i, ldxios = lr xios )279 CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i, ldxios = lrixios ) 280 280 ELSE ! start from rest 281 281 IF(lwp) WRITE(numout,*) ' ==>> previous run without ice age output then set it to zero' … … 285 285 id2 = iom_varid( numrir, 'a_ip' , ldstop = .FALSE. ) 286 286 IF( id2 > 0 ) THEN ! fields exist 287 CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip, ldxios = lr xios )288 CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip, ldxios = lr xios )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 ) 289 289 ELSE ! start from rest 290 290 IF(lwp) WRITE(numout,*) ' ==>> previous run without melt ponds output then set it to zero' … … 297 297 id4 = iom_varid( numrir, 't1_ice' , ldstop = .FALSE. ) 298 298 IF( id3 > 0 .AND. id4 > 0 ) THEN ! fields exist 299 CALL iom_get( numrir, jpdom_autoglo, 'cnd_ice', cnd_ice, ldxios = lr xios )300 CALL iom_get( numrir, jpdom_autoglo, 't1_ice' , t1_ice, ldxios = lr xios )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 ) 301 301 ELSE ! start from rest 302 302 IF(lwp) WRITE(numout,*) ' ==>> previous run without conductivity output then set it to zero' … … 307 307 308 308 CALL iom_delay_rst( 'READ', 'ICE', numrir ) ! read only ice delayed global communication variables 309 IF(lr xios) CALL iom_swap(cxios_context)309 IF(lrixios) CALL iom_swap(cxios_context) 310 310 ! ! ---------------------------------- ! 311 311 ELSE ! == case of a simplified restart == ! -
NEMO/branches/2020/dev_12905_xios_restart/src/ICE/icestp.F90
r12961 r12969 282 282 IF( ln_rstart ) THEN 283 283 CALL iom_close( numrir ) ! close input ice restart file 284 IF(lr xios) CALL iom_context_finalize( crixios_context )284 IF(lrixios) CALL iom_context_finalize( crixios_context ) 285 285 ENDIF 286 286 ! -
NEMO/branches/2020/dev_12905_xios_restart/src/ICE/iceupdate.F90
r12957 r12969 417 417 ! 418 418 IF( id1 > 0 ) THEN ! fields exist 419 IF(lr xios) CALL iom_swap(crixios_context)420 CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass' , snwice_mass, ldxios = lr xios )421 CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass_b', snwice_mass_b, ldxios = lr xios )422 IF(lr xios) 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) 423 423 ELSE ! start from rest 424 424 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 262 262 IF(lwp) WRITE(numout,*) ' dia_hsb_rst : read hsb restart at it= ', kt,' date= ', ndastp 263 263 IF(lwp) WRITE(numout,*) 264 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )265 CALL iom_get( numror, 'frc_v', frc_v, ldxios = lr xios )266 CALL iom_get( numror, 'frc_t', frc_t, ldxios = lr xios )267 CALL iom_get( numror, 'frc_s', frc_s, ldxios = lr xios )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 ) 268 268 IF( ln_linssh ) THEN 269 CALL iom_get( numror, 'frc_wn_t', frc_wn_t, ldxios = lr xios )270 CALL iom_get( numror, 'frc_wn_s', frc_wn_s, ldxios = lr xios )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 ) 271 271 ENDIF 272 CALL iom_get( numror, jpdom_autoglo, 'surf_ini' , surf_ini , ldxios = lr xios ) ! ice sheet coupling273 CALL iom_get( numror, jpdom_autoglo, 'ssh_ini' , ssh_ini , ldxios = lr xios )274 CALL iom_get( numror, jpdom_autoglo, 'e3t_ini' , e3t_ini , ldxios = lr xios )275 CALL iom_get( numror, jpdom_autoglo, 'tmask_ini' , tmask_ini , ldxios = lr xios )276 CALL iom_get( numror, jpdom_autoglo, 'hc_loc_ini', hc_loc_ini, ldxios = lr xios )277 CALL iom_get( numror, jpdom_autoglo, 'sc_loc_ini', sc_loc_ini, ldxios = lr xios )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 ) 278 278 IF( ln_linssh ) THEN 279 CALL iom_get( numror, jpdom_autoglo, 'ssh_hc_loc_ini', ssh_hc_loc_ini, ldxios = lr xios )280 CALL iom_get( numror, jpdom_autoglo, 'ssh_sc_loc_ini', ssh_sc_loc_ini, ldxios = lr xios )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 ) 281 281 ENDIF 282 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )282 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 283 283 ELSE 284 284 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DOM/daymod.F90
r12957 r12969 315 315 316 316 IF( TRIM(cdrw) == 'READ' ) THEN 317 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )317 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 318 318 IF( iom_varid( numror, 'kt', ldstop = .FALSE. ) > 0 ) THEN 319 319 ! Get Calendar informations 320 CALL iom_get( numror, 'kt', zkt, ldxios = lr xios ) ! last time-step of previous run320 CALL iom_get( numror, 'kt', zkt, ldxios = lroxios ) ! last time-step of previous run 321 321 IF(lwp) THEN 322 322 WRITE(numout,*) ' *** Info read in restart : ' … … 337 337 IF ( nrstdt == 2 ) THEN 338 338 ! read the parameters corresponding to nit000 - 1 (last time step of previous run) 339 CALL iom_get( numror, 'ndastp', zndastp, ldxios = lr xios )339 CALL iom_get( numror, 'ndastp', zndastp, ldxios = lroxios ) 340 340 ndastp = NINT( zndastp ) 341 CALL iom_get( numror, 'adatrj', adatrj , ldxios = lr xios )342 CALL iom_get( numror, 'ntime' , ktime , ldxios = lr xios )341 CALL iom_get( numror, 'adatrj', adatrj , ldxios = lroxios ) 342 CALL iom_get( numror, 'ntime' , ktime , ldxios = lroxios ) 343 343 nn_time0 = NINT(ktime) 344 344 ! calculate start time in hours and minutes … … 383 383 adatrj = ( REAL( nit000-1, wp ) * rn_Dt ) / rday 384 384 ENDIF 385 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )385 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 386 386 IF( ABS(adatrj - REAL(NINT(adatrj),wp)) < 0.1 / rday ) adatrj = REAL(NINT(adatrj),wp) ! avoid truncation error 387 387 ! -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DOM/domvvl.F90
r12950 r12969 775 775 IF( ln_rstart ) THEN !* Read the restart file 776 776 CALL rst_read_open ! open the restart file if necessary 777 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )778 CALL iom_get( numror, jpdom_autoglo, 'sshn' , ssh(:,:,Kmm), ldxios = lr xios )777 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 778 CALL iom_get( numror, jpdom_autoglo, 'sshn' , ssh(:,:,Kmm), ldxios = lroxios ) 779 779 ! 780 780 id1 = iom_varid( numror, 'e3t_b', ldstop = .FALSE. ) … … 789 789 ! 790 790 IF( MIN( id1, id2 ) > 0 ) THEN ! all required arrays exist 791 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lr xios )792 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lr xios )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 ) 793 793 ! needed to restart if land processor not computed 794 794 IF(lwp) write(numout,*) 'dom_vvl_rst : e3t(:,:,:,Kbb) and e3t(:,:,:,Kmm) found in restart files' … … 804 804 IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 805 805 IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 806 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lr xios )806 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t(:,:,:,Kbb), ldxios = lroxios ) 807 807 e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 808 808 l_1st_euler = .true. … … 811 811 IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 812 812 IF(lwp) write(numout,*) 'l_1st_euler is forced to true' 813 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lr xios )813 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t(:,:,:,Kmm), ldxios = lroxios ) 814 814 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 815 815 l_1st_euler = .true. … … 836 836 ! ! ----------------------- ! 837 837 IF( MIN( id3, id4 ) > 0 ) THEN ! all required arrays exist 838 CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lr xios )839 CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lr xios )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 ) 840 840 ELSE ! one at least array is missing 841 841 tilde_e3t_b(:,:,:) = 0.0_wp … … 846 846 ! ! ------------ ! 847 847 IF( id5 > 0 ) THEN ! required array exists 848 CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lr xios )848 CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lroxios ) 849 849 ELSE ! array is missing 850 850 hdiv_lf(:,:,:) = 0.0_wp … … 852 852 ENDIF 853 853 ENDIF 854 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )854 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 855 855 ! 856 856 ELSE !* Initialize at "rest" -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/DYN/dynspg_ts.F90
r12950 r12969 890 890 IF( TRIM(cdrw) == 'READ' ) THEN ! Read/initialise 891 891 ! ! --------------- 892 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )892 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 893 893 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 = lr xios )895 CALL iom_get( numror, jpdom_autoglo, 'vb2_b' , vb2_b (:,:), ldxios = lr xios )896 CALL iom_get( numror, jpdom_autoglo, 'un_bf' , un_bf (:,:), ldxios = lr xios )897 CALL iom_get( numror, jpdom_autoglo, 'vn_bf' , vn_bf (:,:), ldxios = lr xios )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 ) 898 898 IF( .NOT.ln_bt_av ) THEN 899 CALL iom_get( numror, jpdom_autoglo, 'sshbb_e' , sshbb_e(:,:), ldxios = lr xios )900 CALL iom_get( numror, jpdom_autoglo, 'ubb_e' , ubb_e(:,:), ldxios = lr xios )901 CALL iom_get( numror, jpdom_autoglo, 'vbb_e' , vbb_e(:,:), ldxios = lr xios )902 CALL iom_get( numror, jpdom_autoglo, 'sshb_e' , sshb_e(:,:), ldxios = lr xios )903 CALL iom_get( numror, jpdom_autoglo, 'ub_e' , ub_e(:,:), ldxios = lr xios )904 CALL iom_get( numror, jpdom_autoglo, 'vb_e' , vb_e(:,:), ldxios = lr xios )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 ) 905 905 ENDIF 906 906 #if defined key_agrif 907 907 ! Read time integrated fluxes 908 908 IF ( .NOT.Agrif_Root() ) THEN 909 CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b' , ub2_i_b(:,:), ldxios = lr xios )910 CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b' , vb2_i_b(:,:), ldxios = lr xios )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 ) 911 911 ENDIF 912 912 #endif … … 923 923 #endif 924 924 ENDIF 925 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )925 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 926 926 ! 927 927 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN ! Create restart file -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/iom_def.F90
r12961 r12969 43 43 INTEGER, PUBLIC :: nxioso !: type of restart file when writing using XIOS 1 - single, 2 - multiple 44 44 !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 46 47 LOGICAL, PUBLIC :: lxios_sini = .FALSE. ! is restart in a single file 47 48 -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/IOM/restart.F90
r12961 r12969 210 210 ! can handle checking if variable is in the restart file (there will be no need to open 211 211 ! restart) 212 lr xios = lrxios.AND.lxios_sini213 214 IF( lr xios) THEN212 lroxios = lrxios.AND.lxios_sini 213 214 IF( lroxios) THEN 215 215 crxios_context = 'oce_rst' 216 216 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS' … … 246 246 247 247 ! Check dynamics and tracer time-step consistency and force Euler restart if changed 248 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )248 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 249 249 IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 ) THEN 250 CALL iom_get( numror, 'rdt', zrdt, ldxios = lr xios )250 CALL iom_get( numror, 'rdt', zrdt, ldxios = lroxios ) 251 251 IF( zrdt /= rn_Dt ) THEN 252 252 IF(lwp) WRITE( numout,*) … … 261 261 262 262 ! Diurnal DSST 263 IF( ln_diurnal ) CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst, ldxios = lr xios )263 IF( ln_diurnal ) CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst, ldxios = lroxios ) 264 264 IF ( ln_diurnal_only ) THEN 265 265 IF(lwp) WRITE( numout, * ) & 266 266 & "rst_read:- ln_diurnal_only set, setting rhop=rho0" 267 267 rhop = rho0 268 CALL iom_get( numror, jpdom_autoglo, 'tn' , w3d, ldxios = lr xios )268 CALL iom_get( numror, jpdom_autoglo, 'tn' , w3d, ldxios = lroxios ) 269 269 ts(:,:,1,jp_tem,Kmm) = w3d(:,:,1) 270 270 RETURN … … 272 272 273 273 IF( iom_varid( numror, 'ub', ldstop = .FALSE. ) > 0 ) THEN 274 CALL iom_get( numror, jpdom_autoglo, 'ub' , uu(:,:,: ,Kbb), ldxios = lr xios ) ! before fields275 CALL iom_get( numror, jpdom_autoglo, 'vb' , vv(:,:,: ,Kbb), ldxios = lr xios )276 CALL iom_get( numror, jpdom_autoglo, 'tb' , ts(:,:,:,jp_tem,Kbb), ldxios = lr xios )277 CALL iom_get( numror, jpdom_autoglo, 'sb' , ts(:,:,:,jp_sal,Kbb), ldxios = lr xios )278 CALL iom_get( numror, jpdom_autoglo, 'sshb' ,ssh(:,: ,Kbb), ldxios = lr xios )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 ) 279 279 ELSE 280 280 l_1st_euler = .TRUE. ! before field not found, forced euler 1st time-step 281 281 ENDIF 282 282 ! 283 CALL iom_get( numror, jpdom_autoglo, 'un' , uu(:,:,: ,Kmm), ldxios = lr xios ) ! now fields284 CALL iom_get( numror, jpdom_autoglo, 'vn' , vv(:,:,: ,Kmm), ldxios = lr xios )285 CALL iom_get( numror, jpdom_autoglo, 'tn' , ts(:,:,:,jp_tem,Kmm), ldxios = lr xios )286 CALL iom_get( numror, jpdom_autoglo, 'sn' , ts(:,:,:,jp_sal,Kmm), ldxios = lr xios )287 CALL iom_get( numror, jpdom_autoglo, 'sshn' ,ssh(:,: ,Kmm), ldxios = lr xios )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 ) 288 288 IF( iom_varid( numror, 'rhop', ldstop = .FALSE. ) > 0 ) THEN 289 CALL iom_get( numror, jpdom_autoglo, 'rhop' , rhop, ldxios = lr xios ) ! now potential density289 CALL iom_get( numror, jpdom_autoglo, 'rhop' , rhop, ldxios = lroxios ) ! now potential density 290 290 ELSE 291 291 CALL eos( ts(:,:,:,:,Kmm), rhd, rhop, gdept(:,:,:,Kmm) ) 292 292 ENDIF 293 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )293 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 294 294 ! 295 295 IF( l_1st_euler ) THEN ! Euler restart -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ISF/isfcpl.F90
r12950 r12969 157 157 !!---------------------------------------------------------------------- 158 158 ! 159 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )160 CALL iom_get( numror, jpdom_autoglo, 'ssmask' , zssmask_b, ldxios = lr xios ) ! need to extrapolate T/S161 IF( lr xios ) 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) ) 162 162 163 163 ! compute new ssh if we open a full water column … … 238 238 !!---------------------------------------------------------------------- 239 239 ! 240 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )241 CALL iom_get( numror, jpdom_autoglo, 'tmask' , ztmask_b, ldxios = lr xios ) ! need to extrapolate T/S242 !CALL iom_get( numror, jpdom_autoglo, 'wmask' , zwmask_b, ldxios = lr xios ) ! need to extrapolate T/S243 !CALL iom_get( numror, jpdom_autoglo, 'gdepw_n', zdepw_b(:,:,:), ldxios = lr xios ) ! need to interpol vertical profile (vvl)244 IF( lr xios ) 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) ) 245 245 ! 246 246 ! … … 386 386 !!---------------------------------------------------------------------- 387 387 ! 388 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )389 CALL iom_get( numror, jpdom_autoglo, 'tmask' , ztmask_b, ldxios = lr xios )390 CALL iom_get( numror, jpdom_autoglo, 'e3u_n' , ze3u_b , ldxios = lr xios )391 CALL iom_get( numror, jpdom_autoglo, 'e3v_n' , ze3v_b , ldxios = lr xios )392 IF( lr xios ) 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) ) 393 393 ! 394 394 ! 1.0: compute horizontal volume flux divergence difference before-after coupling … … 492 492 493 493 ! get restart variable 494 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )495 CALL iom_get( numror, jpdom_autoglo, 'tmask' , ztmask_b(:,:,:), ldxios = lr xios ) ! need to extrapolate T/S496 CALL iom_get( numror, jpdom_autoglo, 'e3t_n' , ze3t_b(:,:,:) , ldxios = lr xios )497 CALL iom_get( numror, jpdom_autoglo, 'tn' , zt_b(:,:,:) , ldxios = lr xios )498 CALL iom_get( numror, jpdom_autoglo, 'sn' , zs_b(:,:,:) , ldxios = lr xios )499 IF( lr xios ) 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) ) 500 500 501 501 ! compute run length -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ISF/isfrst.F90
r12950 r12969 53 53 IF( iom_varid( numror, cfwf_b, ldstop = .FALSE. ) > 0 ) THEN 54 54 IF(lwp) WRITE(numout,*) ' nit000-1 isf tracer content forcing fields read in the restart file' 55 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )56 CALL iom_get( numror, jpdom_autoglo, cfwf_b, pfwf_b(:,:) , ldxios = lr xios ) ! before ice shelf melt57 CALL iom_get( numror, jpdom_autoglo, chc_b , ptsc_b (:,:,jp_tem), ldxios = lr xios ) ! before ice shelf heat flux58 CALL iom_get( numror, jpdom_autoglo, csc_b , ptsc_b (:,:,jp_sal), ldxios = lr xios ) ! before ice shelf heat flux59 IF( lr xios ) 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) ) 60 60 ELSE 61 61 pfwf_b(:,:) = pfwf(:,:) -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcapr.F90
r12950 r12969 65 65 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 66 66 TYPE(FLD_N) :: sn_apr ! informations about the fields to be read 67 LOGICAL :: lrxios ! read restart using XIOS?68 67 !! 69 68 NAMELIST/namsbc_apr/ cn_dir, sn_apr, ln_ref_apr, rn_pref, ln_apr_obc … … 149 148 ! ! ---------------------------------------- ! 150 149 ! !* Restart: read in restart file 151 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )150 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 152 151 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 153 152 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 = lr xios ) ! before inv. barometer ssh153 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb, ldxios = lroxios ) ! before inv. barometer ssh 155 154 ! 156 155 ELSE !* no restart: set from nit000 values … … 158 157 ssh_ibb(:,:) = ssh_ib(:,:) 159 158 ENDIF 160 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )159 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 161 160 ENDIF 162 161 ! ! ---------------------------------------- ! -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcmod.F90
r12950 r12969 504 504 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 505 505 ! ! ---------------------------------------- ! 506 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )506 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 507 507 IF( ln_rstart .AND. & !* Restart: read in restart file 508 508 & iom_varid( numror, 'utau_b', ldstop = .FALSE. ) > 0 ) THEN 509 509 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 = lr xios ) ! before i-stress (U-point)511 CALL iom_get( numror, jpdom_autoglo, 'vtau_b', vtau_b, ldxios = lr xios ) ! before j-stress (V-point)512 CALL iom_get( numror, jpdom_autoglo, 'qns_b', qns_b, ldxios = lr xios ) ! 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) 513 513 ! The 3D heat content due to qsr forcing is treated in traqsr 514 ! CALL iom_get( numror, jpdom_autoglo, 'qsr_b' , qsr_b, ldxios = lr xios ) ! before solar heat flux (T-point)515 CALL iom_get( numror, jpdom_autoglo, 'emp_b', emp_b, ldxios = lr xios ) ! 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) 516 516 ! To ensure restart capability with 3.3x/3.4 restart files !! to be removed in v3.6 517 517 IF( iom_varid( numror, 'sfx_b', ldstop = .FALSE. ) > 0 ) THEN 518 CALL iom_get( numror, jpdom_autoglo, 'sfx_b', sfx_b, ldxios = lr xios ) ! before salt flux (T-point)518 CALL iom_get( numror, jpdom_autoglo, 'sfx_b', sfx_b, ldxios = lroxios ) ! before salt flux (T-point) 519 519 ELSE 520 520 sfx_b (:,:) = sfx(:,:) … … 528 528 sfx_b (:,:) = sfx (:,:) 529 529 ENDIF 530 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )530 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 531 531 ENDIF 532 532 ! ! ---------------------------------------- ! -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcrnf.F90
r12950 r12969 156 156 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 157 157 ! ! ---------------------------------------- ! 158 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )158 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 159 159 IF( ln_rstart .AND. & !* Restart: read in restart file 160 160 & iom_varid( numror, 'rnf_b', ldstop = .FALSE. ) > 0 ) THEN 161 IF(lwp) WRITE(numout,*) ' nit000-1 runoff forcing fields red in the restart file', lr xios162 CALL iom_get( numror, jpdom_autoglo, 'rnf_b', rnf_b, ldxios = lr xios ) ! before runoff163 CALL iom_get( numror, jpdom_autoglo, 'rnf_hc_b', rnf_tsc_b(:,:,jp_tem), ldxios = lr xios ) ! before heat content of runoff164 CALL iom_get( numror, jpdom_autoglo, 'rnf_sc_b', rnf_tsc_b(:,:,jp_sal), ldxios = lr xios ) ! before salinity content of runoff161 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 165 165 ELSE !* no restart: set from nit000 values 166 166 IF(lwp) WRITE(numout,*) ' nit000-1 runoff forcing fields set to nit000' … … 168 168 rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 169 169 ENDIF 170 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )170 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 171 171 ENDIF 172 172 ! ! ---------------------------------------- ! -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/SBC/sbcssm.F90
r12950 r12969 205 205 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~ ' 206 206 ! 207 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )207 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 208 208 IF( ln_rstart .AND. iom_varid( numror, 'nn_fsbc', ldstop = .FALSE. ) > 0 ) THEN 209 209 l_ssm_mean = .TRUE. 210 CALL iom_get( numror , 'nn_fsbc', zf_sbc, ldxios = lr xios ) ! sbc frequency of previous run211 CALL iom_get( numror, jpdom_autoglo, 'ssu_m' , ssu_m, ldxios = lr xios ) ! sea surface mean velocity (U-point)212 CALL iom_get( numror, jpdom_autoglo, 'ssv_m' , ssv_m, ldxios = lr xios ) ! " " velocity (V-point)213 CALL iom_get( numror, jpdom_autoglo, 'sst_m' , sst_m, ldxios = lr xios ) ! " " temperature (T-point)214 CALL iom_get( numror, jpdom_autoglo, 'sss_m' , sss_m, ldxios = lr xios ) ! " " salinity (T-point)215 CALL iom_get( numror, jpdom_autoglo, 'ssh_m' , ssh_m, ldxios = lr xios ) ! " " height (T-point)216 CALL iom_get( numror, jpdom_autoglo, 'e3t_m' , e3t_m, ldxios = lr xios ) ! 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) 217 217 ! fraction of solar net radiation absorbed in 1st T level 218 218 IF( iom_varid( numror, 'frq_m', ldstop = .FALSE. ) > 0 ) THEN 219 CALL iom_get( numror, jpdom_autoglo, 'frq_m' , frq_m, ldxios = lr xios )219 CALL iom_get( numror, jpdom_autoglo, 'frq_m' , frq_m, ldxios = lroxios ) 220 220 ELSE 221 221 frq_m(:,:) = 1._wp ! default definition … … 236 236 ENDIF 237 237 ENDIF 238 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )238 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 239 239 ENDIF 240 240 ! -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/TRA/traqsr.F90
r12950 r12969 135 135 ! !-----------------------------------! 136 136 IF( kt == nit000 ) THEN !== 1st time step ==! 137 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )137 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 138 138 IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 .AND. .NOT.l_1st_euler ) THEN ! read in restart 139 139 IF(lwp) WRITE(numout,*) ' nit000-1 qsr tracer content forcing field read in the restart file' 140 140 z1_2 = 0.5_wp 141 CALL iom_get( numror, jpdom_autoglo, 'qsr_hc_b', qsr_hc_b, ldxios = lr xios ) ! before heat content trend due to Qsr flux141 CALL iom_get( numror, jpdom_autoglo, 'qsr_hc_b', qsr_hc_b, ldxios = lroxios ) ! before heat content trend due to Qsr flux 142 142 ELSE ! No restart or restart not found: Euler forward time stepping 143 143 z1_2 = 1._wp 144 144 qsr_hc_b(:,:,:) = 0._wp 145 145 ENDIF 146 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )146 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 147 147 ELSE !== Swap of qsr heat content ==! 148 148 z1_2 = 0.5_wp … … 403 403 ! 404 404 ! 1st ocean level attenuation coefficient (used in sbcssm) 405 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )405 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 406 406 IF( iom_varid( numror, 'fraqsr_1lev', ldstop = .FALSE. ) > 0 ) THEN 407 CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev' , fraqsr_1lev, ldxios = lr xios )407 CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev' , fraqsr_1lev, ldxios = lroxios ) 408 408 ELSE 409 409 fraqsr_1lev(:,:) = 1._wp ! default : no penetration 410 410 ENDIF 411 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )411 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 412 412 ! 413 413 END SUBROUTINE tra_qsr_init -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/TRA/trasbc.F90
r12950 r12969 106 106 ! !== Set before sbc tracer content fields ==! 107 107 IF( kt == nit000 ) THEN !* 1st time-step 108 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )108 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 109 109 IF( ln_rstart .AND. & ! Restart: read in restart file 110 110 & iom_varid( numror, 'sbc_hc_b', ldstop = .FALSE. ) > 0 ) THEN … … 112 112 zfact = 0.5_wp 113 113 sbc_tsc(:,:,:) = 0._wp 114 CALL iom_get( numror, jpdom_autoglo, 'sbc_hc_b', sbc_tsc_b(:,:,jp_tem), ldxios = lr xios ) ! before heat content sbc trend115 CALL iom_get( numror, jpdom_autoglo, 'sbc_sc_b', sbc_tsc_b(:,:,jp_sal), ldxios = lr xios ) ! before salt content sbc trend114 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 116 116 ELSE ! No restart or restart not found: Euler forward time stepping 117 117 zfact = 1._wp … … 119 119 sbc_tsc_b(:,:,:) = 0._wp 120 120 ENDIF 121 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )121 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 122 122 ELSE !* other time-steps: swap of forcing fields 123 123 zfact = 0.5_wp -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdfgls.F90
r12950 r12969 1052 1052 ! ! --------------- 1053 1053 IF( ln_rstart ) THEN !* Read the restart file 1054 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )1054 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 1055 1055 id1 = iom_varid( numror, 'en' , ldstop = .FALSE. ) 1056 1056 id2 = iom_varid( numror, 'avt_k' , ldstop = .FALSE. ) … … 1059 1059 ! 1060 1060 IF( MIN( id1, id2, id3, id4 ) > 0 ) THEN ! all required arrays exist 1061 CALL iom_get( numror, jpdom_autoglo, 'en' , en , ldxios = lr xios )1062 CALL iom_get( numror, jpdom_autoglo, 'avt_k' , avt_k , ldxios = lr xios )1063 CALL iom_get( numror, jpdom_autoglo, 'avm_k' , avm_k , ldxios = lr xios )1064 CALL iom_get( numror, jpdom_autoglo, 'hmxl_n', hmxl_n, ldxios = lr xios )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 ) 1065 1065 ELSE 1066 1066 IF(lwp) WRITE(numout,*) … … 1070 1070 ! avt_k, avm_k already set to the background value in zdf_phy_init 1071 1071 ENDIF 1072 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )1072 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 1073 1073 ELSE !* Start from rest 1074 1074 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdfosm.F90
r12950 r12969 1454 1454 !!----------------------------------------------------------------------------- 1455 1455 IF( TRIM(cdrw) == 'READ'.AND. ln_rstart) THEN 1456 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )1456 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 1457 1457 id1 = iom_varid( numror, 'wn' , ldstop = .FALSE. ) 1458 1458 IF( id1 > 0 ) THEN ! 'wn' exists; read 1459 CALL iom_get( numror, jpdom_autoglo, 'wn', ww, ldxios = lr xios )1459 CALL iom_get( numror, jpdom_autoglo, 'wn', ww, ldxios = lroxios ) 1460 1460 WRITE(numout,*) ' ===>>>> : ww read from restart file' 1461 1461 ELSE … … 1466 1466 id2 = iom_varid( numror, 'hbli' , ldstop = .FALSE. ) 1467 1467 IF( id1 > 0 .AND. id2 > 0) THEN ! 'hbl' exists; read and return 1468 CALL iom_get( numror, jpdom_autoglo, 'hbl' , hbl , ldxios = lr xios )1469 CALL iom_get( numror, jpdom_autoglo, 'hbli', hbli, ldxios = lr xios )1468 CALL iom_get( numror, jpdom_autoglo, 'hbl' , hbl , ldxios = lroxios ) 1469 CALL iom_get( numror, jpdom_autoglo, 'hbli', hbli, ldxios = lroxios ) 1470 1470 WRITE(numout,*) ' ===>>>> : hbl & hbli read from restart file' 1471 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )1471 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 1472 1472 RETURN 1473 1473 ELSE ! 'hbl' & 'hbli' not in restart file, recalculate 1474 1474 WRITE(numout,*) ' ===>>>> : previous run without osmosis scheme, hbl computed from stratification' 1475 1475 END IF 1476 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )1476 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 1477 1477 END IF 1478 1478 -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/ZDF/zdfric.F90
r12950 r12969 206 206 ! !* Read the restart file 207 207 IF( ln_rstart ) THEN 208 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )208 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 209 209 id1 = iom_varid( numror, 'avt_k', ldstop = .FALSE. ) 210 210 id2 = iom_varid( numror, 'avm_k', ldstop = .FALSE. ) 211 211 ! 212 212 IF( MIN( id1, id2 ) > 0 ) THEN ! restart exists => read it 213 CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k, ldxios = lr xios )214 CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k, ldxios = lr xios )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 ) 215 215 ENDIF 216 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )216 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 217 217 ENDIF 218 218 ! !* 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 659 659 ! ! --------------- 660 660 IF( ln_rstart ) THEN !* Read the restart file 661 IF( lr xios ) CALL iom_swap( TRIM(crxios_context) )661 IF( lroxios ) CALL iom_swap( TRIM(crxios_context) ) 662 662 id1 = iom_varid( numror, 'en' , ldstop = .FALSE. ) 663 663 id2 = iom_varid( numror, 'avt_k', ldstop = .FALSE. ) … … 666 666 ! 667 667 IF( MIN( id1, id2, id3, id4 ) > 0 ) THEN ! fields exist 668 CALL iom_get( numror, jpdom_autoglo, 'en' , en , ldxios = lr xios )669 CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k, ldxios = lr xios )670 CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k, ldxios = lr xios )671 CALL iom_get( numror, jpdom_autoglo, 'dissl', dissl, ldxios = lr xios )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 ) 672 672 ELSE ! start TKE from rest 673 673 IF(lwp) WRITE(numout,*) … … 677 677 ! avt_k, avm_k already set to the background value in zdf_phy_init 678 678 ENDIF 679 IF( lr xios ) CALL iom_swap( TRIM(cxios_context) )679 IF( lroxios ) CALL iom_swap( TRIM(cxios_context) ) 680 680 ELSE !* Start from rest 681 681 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/OCE/step.F90
r12961 r12969 351 351 IF( kstp == nit000 ) THEN ! 1st time step only 352 352 CALL iom_close( numror ) ! close input ocean restart file 353 IF( lr xios ) CALL iom_context_finalize( crxios_context )353 IF( lroxios ) CALL iom_context_finalize( crxios_context ) 354 354 IF(lwm) CALL FLUSH ( numond ) ! flush output namelist oce 355 355 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 97 97 IF( kstp /= nit000 ) CALL day( kstp ) ! Calendar (day was already called at nit000 in day_init) 98 98 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 99 116 100 117 ! ==> 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 68 68 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 69 69 ! 70 IF(lr xios) CALL iom_swap(crtxios_context)71 CALL iom_get( numrtr, 'co2sbc', co2sbc, ldxios = lr xios )72 CALL iom_get( numrtr, jpdom_autoglo, 'c14sbc', c14sbc, ldxios = lr xios )73 CALL iom_get( numrtr, jpdom_autoglo, 'exch_co2', exch_co2, ldxios = lr xios )74 CALL iom_get( numrtr, jpdom_autoglo, 'exch_c14', exch_c14, ldxios = lr xios )75 CALL iom_get( numrtr, jpdom_autoglo, 'qtr_c14', qtr_c14, ldxios = lr xios )76 IF(lr xios) 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) 77 77 ! 78 78 END IF … … 87 87 ELSE 88 88 ! 89 IF(lr xios) CALL iom_swap(crtxios_context)90 CALL iom_get( numrtr, jpdom_autoglo, 'qint_c14', qint_c14, ldxios = lr xios )91 IF(lr xios) 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) 92 92 ! 93 93 ENDIF -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/CFC/trcsms_cfc.F90
r12961 r12969 297 297 ! 298 298 jl = 0 299 IF(lr xios) CALL iom_swap(crtxios_context)299 IF(lrtxios) CALL iom_swap(crtxios_context) 300 300 DO jn = jp_cfc0, jp_cfc1 301 301 jl = jl + 1 302 CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl), ldxios = lr xios )302 CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl), ldxios = lrtxios ) 303 303 END DO 304 IF(lr xios) CALL iom_swap(cxios_context)304 IF(lrtxios) CALL iom_swap(cxios_context) 305 305 ENDIF 306 306 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/P2Z/p2zexp.F90
r12961 r12969 215 215 ! 216 216 IF( ln_rsttr ) THEN 217 IF(lr xios) CALL iom_swap(crtxios_context)218 CALL iom_get( numrtr, jpdom_autoglo, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:), ldxios = lr xios )219 CALL iom_get( numrtr, jpdom_autoglo, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:), ldxios = lr xios )220 IF(lr xios) 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) 221 221 ELSE 222 222 sedpocb(:,:) = 0._wp -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/P4Z/p4zsms.F90
r12961 r12969 339 339 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 340 340 ! 341 IF(lr xios) CALL iom_swap(crtxios_context)341 IF(lrtxios) CALL iom_swap(crtxios_context) 342 342 IF( iom_varid( numrtr, 'PH', ldstop = .FALSE. ) > 0 ) THEN 343 CALL iom_get( numrtr, jpdom_autoglo, 'PH' , hi(:,:,:), ldxios = lr xios )343 CALL iom_get( numrtr, jpdom_autoglo, 'PH' , hi(:,:,:), ldxios = lrtxios ) 344 344 ELSE 345 345 CALL p4z_che( Kbb, Kmm ) ! initialize the chemical constants 346 346 CALL ahini_for_at( hi, Kbb ) 347 347 ENDIF 348 CALL iom_get( numrtr, jpdom_autoglo, 'Silicalim', xksi(:,:), ldxios = lr xios )348 CALL iom_get( numrtr, jpdom_autoglo, 'Silicalim', xksi(:,:), ldxios = lrtxios ) 349 349 IF( iom_varid( numrtr, 'Silicamax', ldstop = .FALSE. ) > 0 ) THEN 350 CALL iom_get( numrtr, jpdom_autoglo, 'Silicamax' , xksimax(:,:), ldxios = lr xios )350 CALL iom_get( numrtr, jpdom_autoglo, 'Silicamax' , xksimax(:,:), ldxios = lrtxios ) 351 351 ELSE 352 352 xksimax(:,:) = xksi(:,:) … … 354 354 ! 355 355 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 = lr xios )356 CALL iom_get( numrtr, 'tcflxcum' , t_oce_co2_flx_cum, ldxios = lrtxios ) 357 357 ELSE 358 358 t_oce_co2_flx_cum = 0._wp … … 361 361 IF( ln_p5z ) THEN 362 362 IF( iom_varid( numrtr, 'sized', ldstop = .FALSE. ) > 0 ) THEN 363 CALL iom_get( numrtr, jpdom_autoglo, 'sizep' , sizep(:,:,:), ldxios = lr xios )364 CALL iom_get( numrtr, jpdom_autoglo, 'sizen' , sizen(:,:,:), ldxios = lr xios )365 CALL iom_get( numrtr, jpdom_autoglo, 'sized' , sized(:,:,:), ldxios = lr xios )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 ) 366 366 ELSE 367 367 sizep(:,:,:) = 1. … … 370 370 ENDIF 371 371 ENDIF 372 IF(lr xios) CALL iom_swap(cxios_context)372 IF(lrtxios) CALL iom_swap(cxios_context) 373 373 ! 374 374 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sed.F90
r10425 r12969 53 53 INTEGER , PUBLIC :: nn_rstsed !: control of the time step ( 0 or 1 ) for pass. tr. 54 54 INTEGER , PUBLIC :: nn_dtsed = 1 !: frequency of step on passive tracers 55 LOGICAL, PUBLIC :: lrsxios !: use xios to read restart 55 56 CHARACTER(len = 80) , PUBLIC :: cn_sedrst_in !: suffix of pass. tracer restart name (input) 56 57 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 139 139 zdta2 = 0. 140 140 141 IF(lr xios) CALL iom_swap(crsxios_context)141 IF(lrsxios) CALL iom_swap(crsxios_context) 142 142 DO jn = 1, jptrased 143 143 cltra = TRIM(sedtrcd(jn)) 144 144 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 145 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta(:,:,:,jn), ldxios = lr xios )145 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta(:,:,:,jn), ldxios = lrsxios ) 146 146 ELSE 147 147 zdta(:,:,:,jn) = 0.0 … … 162 162 cltra = TRIM(seddia3d(jn)) 163 163 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 164 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta1(:,:,:,jn), ldxios = lr xios )164 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta1(:,:,:,jn), ldxios = lrsxios ) 165 165 ELSE 166 166 zdta1(:,:,:,jn) = 0.0 … … 189 189 cltra = "dbioturb" 190 190 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 191 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lr xios )191 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrsxios ) 192 192 ELSE 193 193 zdta2(:,:,:) = 0.0 … … 199 199 cltra = "irrig" 200 200 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 201 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lr xios )201 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrsxios ) 202 202 ELSE 203 203 zdta2(:,:,:) = 0.0 … … 209 209 cltra = "sedligand" 210 210 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 211 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lr xios )211 CALL iom_get( numrsr, jpdom_autoglo, TRIM(cltra), zdta2(:,:,:), ldxios = lrsxios ) 212 212 ELSE 213 213 zdta2(:,:,:) = 0.0 … … 216 216 CALL pack_arr( jpoce, sedligand(1:jpoce,1:jpksed), & 217 217 & zdta2(1:jpi,1:jpj,1:jpksed), iarroce(1:jpoce) ) 218 IF(lr xios) CALL iom_swap(cxios_context)218 IF(lrsxios) CALL iom_swap(cxios_context) 219 219 IF( ln_timing ) CALL timing_stop('sed_rst_read') 220 220 … … 382 382 CALL iom_open( TRIM(cn_sedrst_indir)//'/'//cn_sedrst_in, numrsr ) 383 383 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) 401 399 IF(lwp) THEN 402 400 WRITE(numsed,*) ' *** Info read in restart : ' … … 419 417 ! ! set the date in offline mode 420 418 IF( ln_rst_sed .AND. nn_rstsed == 2 ) THEN 421 IF(lr xios) CALL iom_swap(crsxios_context)422 CALL iom_get( numrsr, 'ndastp', zndastp, ldxios = lr xios )419 IF(lrsxios) CALL iom_swap(crsxios_context) 420 CALL iom_get( numrsr, 'ndastp', zndastp, ldxios = lrsxios ) 423 421 ndastp = NINT( zndastp ) 424 CALL iom_get( numrsr, 'adatrj', adatrj, ldxios = lr xios )425 IF(lr xios) CALL iom_swap(crxios_context)422 CALL iom_get( numrsr, 'adatrj', adatrj, ldxios = lrsxios ) 423 IF(lrsxios) CALL iom_swap(crxios_context) 426 424 ELSE 427 425 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 86 86 IF( kt == nitsed000 ) THEN 87 87 CALL iom_close( numrsr ) ! close input tracer restart file 88 IF(lr xios) CALL iom_context_finalize( crsxios_context )88 IF(lrsxios) CALL iom_context_finalize( crsxios_context ) 89 89 ! IF(lwm) CALL FLUSH( numont ) ! flush namelist output 90 90 ENDIF -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/TRP/trcsbc.F90
r12961 r12969 86 86 IF(lwp) WRITE(numout,*) ' nittrc000-1 surface tracer content forcing fields read in the restart file' 87 87 zfact = 0.5_wp 88 IF(lr xios) CALL iom_swap(crtxios_context)88 IF(lrtxios) CALL iom_swap(crtxios_context) 89 89 DO jn = 1, jptra 90 CALL iom_get( numrtr, jpdom_autoglo, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn), ldxios = lr xios ) ! before tracer content sbc90 CALL iom_get( numrtr, jpdom_autoglo, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn), ldxios = lrtxios ) ! before tracer content sbc 91 91 END DO 92 IF(lr xios) CALL iom_swap(cxios_context)92 IF(lrtxios) CALL iom_swap(cxios_context) 93 93 ELSE ! No restart or restart not found: Euler forward time stepping 94 94 zfact = 1._wp -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trc.F90
r12489 r12969 69 69 INTEGER , PUBLIC :: nittrc000 !: first time step of passive tracers model 70 70 LOGICAL , PUBLIC :: l_trcdm2dc !: Diurnal cycle for TOP 71 LOGICAL , PUBLIC :: lrtxios !: read TOP restart with XIOS 71 72 72 73 !! Information for the ice module for tracers -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcrst.F90
r12961 r12969 130 130 131 131 ! READ prognostic variables and computes diagnostic variable 132 IF(lr xios) CALL iom_swap(crtxios_context)132 IF(lrtxios) CALL iom_swap(crtxios_context) 133 133 DO jn = 1, jptra 134 CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm), ldxios = lr xios )134 CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm), ldxios = lrtxios ) 135 135 END DO 136 136 137 137 DO jn = 1, jptra 138 CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb), ldxios = lr xios )138 CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb), ldxios = lrtxios ) 139 139 END DO 140 140 ! 141 141 CALL iom_delay_rst( 'READ', 'TOP', numrtr ) ! read only TOP delayed global communication variables 142 IF(lr xios) CALL iom_swap(cxios_context)142 IF(lrtxios) CALL iom_swap(cxios_context) 143 143 END SUBROUTINE trc_rst_read 144 144 … … 234 234 lxios_sini = .FALSE. 235 235 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 240 238 crtxios_context = 'top_rst' 241 239 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for TOP' … … 249 247 ENDIF 250 248 251 IF(lr xios) CALL iom_swap(crtxios_context)252 CALL iom_get ( numrtr, 'kt', zkt, ldxios = lr xios ) ! last time-step of previous run253 IF(lr xios) 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) 254 252 255 253 IF(lwp) THEN … … 273 271 ! ! set the date in offline mode 274 272 IF( ln_rsttr .AND. nn_rsttr == 2 ) THEN 275 IF(lr xios) CALL iom_swap(crtxios_context)276 CALL iom_get( numrtr, 'ndastp', zndastp, ldxios = lr xios )273 IF(lrtxios) CALL iom_swap(crtxios_context) 274 CALL iom_get( numrtr, 'ndastp', zndastp, ldxios = lrtxios ) 277 275 ndastp = NINT( zndastp ) 278 CALL iom_get( numrtr, 'adatrj', adatrj, ldxios = lr xios )279 CALL iom_get( numrtr, 'ntime' , ktime, ldxios = lr xios )280 IF(lr xios) 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) 281 279 nn_time0=INT(ktime) 282 280 ! calculate start time in hours and minutes -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcstp.F90
r12961 r12969 109 109 IF( kt == nittrc000 ) THEN 110 110 CALL iom_close( numrtr ) ! close input tracer restart file 111 IF(lr xios) CALL iom_context_finalize( crtxios_context )111 IF(lrtxios) CALL iom_context_finalize( crtxios_context ) 112 112 IF(lwm) CALL FLUSH( numont ) ! flush namelist output 113 113 ENDIF … … 196 196 & .AND. iom_varid( numrtr, 'ktdcy' , ldstop = .FALSE. ) > 0 & 197 197 & .AND. iom_varid( numrtr, 'nrdcy' , ldstop = .FALSE. ) > 0 ) THEN 198 IF(lr xios) CALL iom_swap(crtxios_context)199 CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lr xios )198 IF(lrtxios) CALL iom_swap(crtxios_context) 199 CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lrtxios ) 200 200 rsecfst = INT( zkt ) * rn_Dt 201 201 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 = lr xios ) ! A mean of qsr203 CALL iom_get( numrtr, 'nrdcy', zrec, ldxios = lr xios ) ! Number of record per days202 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 204 204 IF( INT( zrec ) == nb_rec_per_day ) THEN 205 205 DO jn = 1, nb_rec_per_day 206 206 IF( jn <= 9 ) THEN 207 207 WRITE(cl1,'(i1)') jn 208 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lr xios ) ! A mean of qsr208 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lrtxios ) ! A mean of qsr 209 209 ELSE 210 210 WRITE(cl2,'(i2.2)') jn 211 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lr xios ) ! A mean of qsr211 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lrtxios ) ! A mean of qsr 212 212 ENDIF 213 213 END DO … … 217 217 ENDDO 218 218 ENDIF 219 IF(lr xios) CALL iom_swap(cxios_context)219 IF(lrtxios) CALL iom_swap(cxios_context) 220 220 ELSE !* no restart: set from nit000 values 221 221 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean set to nit000 values'
Note: See TracChangeset
for help on using the changeset viewer.