- Timestamp:
- 2017-10-11T13:03:17+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8600_xios_read/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
r6140 r8612 193 193 WRITE(numout,*) '~~~~~~~~' 194 194 ENDIF 195 195 lxios_sini = .FALSE. 196 196 clpath = TRIM(cn_ocerst_indir) 197 197 IF( clpath(LEN_TRIM(clpath):) /= '/' ) clpath = TRIM(clpath) // '/' 198 198 CALL iom_open( TRIM(clpath)//cn_ocerst_in, numror, kiolib = jlibalt ) 199 ENDIF 199 ! are we using XIOS to read the data? Part above will have to modified once XIOS 200 ! can handle checking if variable is in the restart file (there will be no need to open 201 ! restart) 202 IF(.NOT.lxios_set) lxios_read = lxios_read.AND.lxios_sini 203 IF( lxios_read) THEN 204 rxios_context = 'nemo_rst' 205 if(.NOT.lxios_set) then 206 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS' 207 CALL iom_init( rxios_context ) 208 lxios_set = .TRUE. 209 endif 210 ENDIF 211 IF( TRIM(Agrif_CFixed()) /= '0' .AND. lxios_read) THEN 212 CALL iom_init( rxios_context ) 213 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for AGRIF' 214 lxios_set = .TRUE. 215 ENDIF 216 ENDIF 217 200 218 END SUBROUTINE rst_read_open 201 219 … … 211 229 REAL(wp) :: zrdt 212 230 INTEGER :: jk 231 TYPE(xios_duration):: dtime 232 integer::ni,nj,nk 213 233 !!---------------------------------------------------------------------- 214 234 … … 217 237 ! Check dynamics and tracer time-step consistency and force Euler restart if changed 218 238 IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 ) THEN 219 CALL iom_get( numror, 'rdt', zrdt )239 CALL iom_get( numror, 'rdt', zrdt, lrxios = lxios_read ) 220 240 IF( zrdt /= rdt ) neuler = 0 221 241 ENDIF 222 242 223 243 ! Diurnal DSST 224 IF( ln_diurnal ) CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst 244 IF( ln_diurnal ) CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst, lrxios = lxios_read ) 225 245 IF ( ln_diurnal_only ) THEN 226 246 IF(lwp) WRITE( numout, * ) & 227 247 & "rst_read:- ln_diurnal_only set, setting rhop=rau0" 228 248 rhop = rau0 229 CALL iom_get( numror, jpdom_autoglo, 'tn' , tsn(:,:,1,jp_tem) )249 CALL iom_get( numror, jpdom_autoglo, 'tn' , tsn(:,:,1,jp_tem), lrxios = lxios_read ) 230 250 RETURN 231 251 ENDIF 232 252 233 253 IF( iom_varid( numror, 'ub', ldstop = .FALSE. ) > 0 ) THEN 234 CALL iom_get( numror, jpdom_autoglo, 'ub' , ub ) ! before fields235 CALL iom_get( numror, jpdom_autoglo, 'vb' , vb )236 CALL iom_get( numror, jpdom_autoglo, 'tb' , tsb(:,:,:,jp_tem) )237 CALL iom_get( numror, jpdom_autoglo, 'sb' , tsb(:,:,:,jp_sal) )238 CALL iom_get( numror, jpdom_autoglo, 'sshb' , sshb )254 CALL iom_get( numror, jpdom_autoglo, 'ub' , ub, lrxios = lxios_read ) ! before fields 255 CALL iom_get( numror, jpdom_autoglo, 'vb' , vb, lrxios = lxios_read ) 256 CALL iom_get( numror, jpdom_autoglo, 'tb' , tsb(:,:,:,jp_tem), lrxios = lxios_read ) 257 CALL iom_get( numror, jpdom_autoglo, 'sb' , tsb(:,:,:,jp_sal), lrxios = lxios_read ) 258 CALL iom_get( numror, jpdom_autoglo, 'sshb' , sshb, lrxios = lxios_read ) 239 259 ELSE 240 260 neuler = 0 241 261 ENDIF 242 262 ! 243 CALL iom_get( numror, jpdom_autoglo, 'un' , un 244 CALL iom_get( numror, jpdom_autoglo, 'vn' , vn 245 CALL iom_get( numror, jpdom_autoglo, 'tn' , tsn(:,:,:,jp_tem) )246 CALL iom_get( numror, jpdom_autoglo, 'sn' , tsn(:,:,:,jp_sal) )247 CALL iom_get( numror, jpdom_autoglo, 'sshn' , sshn 263 CALL iom_get( numror, jpdom_autoglo, 'un' , un, lrxios = lxios_read ) ! now fields 264 CALL iom_get( numror, jpdom_autoglo, 'vn' , vn, lrxios = lxios_read ) 265 CALL iom_get( numror, jpdom_autoglo, 'tn' , tsn(:,:,:,jp_tem), lrxios = lxios_read ) 266 CALL iom_get( numror, jpdom_autoglo, 'sn' , tsn(:,:,:,jp_sal), lrxios = lxios_read ) 267 CALL iom_get( numror, jpdom_autoglo, 'sshn' , sshn, lrxios = lxios_read ) 248 268 IF( iom_varid( numror, 'rhop', ldstop = .FALSE. ) > 0 ) THEN 249 CALL iom_get( numror, jpdom_autoglo, 'rhop' , rhop 269 CALL iom_get( numror, jpdom_autoglo, 'rhop' , rhop, lrxios = lxios_read ) ! now potential density 250 270 ELSE 251 271 CALL eos( tsn, rhd, rhop, gdept_n(:,:,:) )
Note: See TracChangeset
for help on using the changeset viewer.