Changeset 13871 for NEMO/branches/2020/dev_12905_xios_restart/src/TOP
- Timestamp:
- 2020-11-25T12:51:29+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_12905_xios_restart/src/TOP
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/C14/trcini_c14.F90
r13727 r13871 68 68 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 69 69 ! 70 IF(lr txios) CALL iom_swap(crtxios_context)71 CALL iom_get( numrtr, 'co2sbc', co2sbc, ldxios = lr txios )72 CALL iom_get( numrtr, jpdom_auto, 'c14sbc', c14sbc, ldxios = lr txios )73 CALL iom_get( numrtr, jpdom_auto, 'exch_co2', exch_co2, ldxios = lr txios )74 CALL iom_get( numrtr, jpdom_auto, 'exch_c14', exch_c14, ldxios = lr txios )75 CALL iom_get( numrtr, jpdom_auto, 'qtr_c14', qtr_c14, ldxios = lr txios )76 IF(lr txios) CALL iom_swap(cxios_context)70 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 71 CALL iom_get( numrtr, 'co2sbc', co2sbc, ldxios = lrxios ) 72 CALL iom_get( numrtr, jpdom_auto, 'c14sbc', c14sbc, ldxios = lrxios ) 73 CALL iom_get( numrtr, jpdom_auto, 'exch_co2', exch_co2, ldxios = lrxios ) 74 CALL iom_get( numrtr, jpdom_auto, 'exch_c14', exch_c14, ldxios = lrxios ) 75 CALL iom_get( numrtr, jpdom_auto, 'qtr_c14', qtr_c14, ldxios = lrxios ) 76 IF(lrxios) CALL iom_swap(cxios_context) 77 77 ! 78 78 END IF … … 87 87 ELSE 88 88 ! 89 IF(lr txios) CALL iom_swap(crtxios_context)90 CALL iom_get( numrtr, jpdom_auto, 'qint_c14', qint_c14, ldxios = lr txios )91 IF(lr txios) CALL iom_swap(cxios_context)89 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 90 CALL iom_get( numrtr, jpdom_auto, 'qint_c14', qint_c14, ldxios = lrxios ) 91 IF(lrxios) CALL iom_swap(cxios_context) 92 92 ! 93 93 ENDIF -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/C14/trcsms_c14.F90
r13727 r13871 144 144 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 145 145 ! 146 IF( lwxios ) CALL iom_swap( cw txios_context )146 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 147 147 CALL iom_rstput( kt, nitrst, numrtw, 'co2sbc', co2sbc, ldxios = lwxios ) ! These five need & 148 148 CALL iom_rstput( kt, nitrst, numrtw, 'c14sbc', c14sbc, ldxios = lwxios ) ! & to be written & -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/CFC/trcsms_cfc.F90
r13727 r13871 179 179 IF(lwp) WRITE(numout,*) '~~~~' 180 180 jl = 0 181 IF( lwxios ) CALL iom_swap( cw txios_context )181 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 182 182 DO jn = jp_cfc0, jp_cfc1 183 183 jl = jl + 1 … … 298 298 ! 299 299 jl = 0 300 IF(lr txios) CALL iom_swap(crtxios_context)300 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 301 301 DO jn = jp_cfc0, jp_cfc1 302 302 jl = jl + 1 303 CALL iom_get( numrtr, jpdom_auto, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl), ldxios = lr txios )303 CALL iom_get( numrtr, jpdom_auto, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jl), ldxios = lrxios ) 304 304 END DO 305 IF(lr txios) CALL iom_swap(cxios_context)305 IF(lrxios) CALL iom_swap(cxios_context) 306 306 ENDIF 307 307 IF(lwp) WRITE(numout,*) -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/P2Z/p2zexp.F90
r13727 r13871 134 134 & 'at it= ', kt,' date= ', ndastp 135 135 IF(lwp) WRITE(numout,*) '~~~~' 136 IF( lwxios ) CALL iom_swap( cw txios_context )136 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 137 137 CALL iom_rstput( kt, nitrst, numrtw, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:), ldxios = lwxios ) 138 138 CALL iom_rstput( kt, nitrst, numrtw, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:), ldxios = lwxios ) … … 216 216 ! 217 217 IF( ln_rsttr ) THEN 218 IF(lr txios) CALL iom_swap(crtxios_context)219 CALL iom_get( numrtr, jpdom_auto, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:), ldxios = lr txios )220 CALL iom_get( numrtr, jpdom_auto, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:), ldxios = lr txios )221 IF(lr txios) CALL iom_swap(cxios_context)218 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 219 CALL iom_get( numrtr, jpdom_auto, 'SEDB'//ctrcnm(jpdet), sedpocb(:,:), ldxios = lrxios ) 220 CALL iom_get( numrtr, jpdom_auto, 'SEDN'//ctrcnm(jpdet), sedpocn(:,:), ldxios = lrxios ) 221 IF(lrxios) CALL iom_swap(cxios_context) 222 222 ELSE 223 223 sedpocb(:,:) = 0._wp -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/P4Z/p4zsms.F90
r13727 r13871 332 332 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 333 333 ! 334 IF(lr txios) CALL iom_swap(crtxios_context)334 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 335 335 IF( iom_varid( numrtr, 'PH', ldstop = .FALSE. ) > 0 ) THEN 336 CALL iom_get( numrtr, jpdom_auto, 'PH' , hi(:,:,:), ldxios = lr txios )336 CALL iom_get( numrtr, jpdom_auto, 'PH' , hi(:,:,:), ldxios = lrxios ) 337 337 ELSE 338 338 CALL p4z_che( Kbb, Kmm ) ! initialize the chemical constants 339 339 CALL ahini_for_at( hi, Kbb ) 340 340 ENDIF 341 CALL iom_get( numrtr, jpdom_auto, 'Silicalim', xksi(:,:), ldxios = lr txios )341 CALL iom_get( numrtr, jpdom_auto, 'Silicalim', xksi(:,:), ldxios = lrxios ) 342 342 IF( iom_varid( numrtr, 'Silicamax', ldstop = .FALSE. ) > 0 ) THEN 343 CALL iom_get( numrtr, jpdom_auto, 'Silicamax' , xksimax(:,:), ldxios = lr txios )343 CALL iom_get( numrtr, jpdom_auto, 'Silicamax' , xksimax(:,:), ldxios = lrxios ) 344 344 ELSE 345 345 xksimax(:,:) = xksi(:,:) … … 347 347 ! 348 348 IF( iom_varid( numrtr, 'tcflxcum', ldstop = .FALSE. ) > 0 ) THEN ! cumulative total flux of carbon 349 CALL iom_get( numrtr, 'tcflxcum' , t_oce_co2_flx_cum, ldxios = lr txios )349 CALL iom_get( numrtr, 'tcflxcum' , t_oce_co2_flx_cum, ldxios = lrxios ) 350 350 ELSE 351 351 t_oce_co2_flx_cum = 0._wp … … 354 354 IF( ln_p5z ) THEN 355 355 IF( iom_varid( numrtr, 'sized', ldstop = .FALSE. ) > 0 ) THEN 356 CALL iom_get( numrtr, jpdom_auto, 'sizep' , sizep(:,:,:), ldxios = lr txios )357 CALL iom_get( numrtr, jpdom_auto, 'sizen' , sizen(:,:,:), ldxios = lr txios )358 CALL iom_get( numrtr, jpdom_auto, 'sized' , sized(:,:,:), ldxios = lr txios )356 CALL iom_get( numrtr, jpdom_auto, 'sizep' , sizep(:,:,:), ldxios = lrxios ) 357 CALL iom_get( numrtr, jpdom_auto, 'sizen' , sizen(:,:,:), ldxios = lrxios ) 358 CALL iom_get( numrtr, jpdom_auto, 'sized' , sized(:,:,:), ldxios = lrxios ) 359 359 ELSE 360 360 sizep(:,:,:) = 1. … … 363 363 ENDIF 364 364 ENDIF 365 IF(lr txios) CALL iom_swap(cxios_context)365 IF(lrxios) CALL iom_swap(cxios_context) 366 366 ! 367 367 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN … … 371 371 IF(lwp) WRITE(numout,*) '~~~~~~~' 372 372 ENDIF 373 IF( lwxios ) CALL iom_swap( cw txios_context )373 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 374 374 CALL iom_rstput( kt, nitrst, numrtw, 'PH', hi(:,:,:), ldxios = lwxios ) 375 375 CALL iom_rstput( kt, nitrst, numrtw, 'Silicalim', xksi(:,:), ldxios = lwxios ) -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sed.F90
r12969 r13871 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 restart56 55 CHARACTER(len = 80) , PUBLIC :: cn_sedrst_in !: suffix of pass. tracer restart name (input) 57 56 CHARACTER(len = 256), PUBLIC :: cn_sedrst_indir !: restart input directory -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sedrst.F90
r13750 r13871 85 85 ELSE 86 86 #if defined key_iomput 87 cw sxios_context = "rstws_"//TRIM(ADJUSTL(clkt))87 cw_sedrst_cxt = "rstws_"//TRIM(ADJUSTL(clkt)) 88 88 IF( TRIM(Agrif_CFixed()) == '0' ) THEN 89 89 clpname = clname … … 91 91 clpname = TRIM(Agrif_CFixed())//"_"//clname 92 92 ENDIF 93 CALL iom_init( cw sxios_context, fname = TRIM(clpath)//TRIM(clpname), ld_closedef = .FALSE. )93 CALL iom_init( cw_sedrst_cxt, fname = TRIM(clpath)//TRIM(clpname), ld_closedef = .FALSE. ) 94 94 CALL iom_swap( cxios_context ) 95 95 #else … … 138 138 zdta2 = 0. 139 139 140 IF(lr sxios) CALL iom_swap(crsxios_context)140 IF(lrxios) CALL iom_swap(cr_sedrst_cxt) 141 141 DO jn = 1, jptrased 142 142 cltra = TRIM(sedtrcd(jn)) 143 143 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 144 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta(:,:,:,jn), ldxios = lr sxios )144 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta(:,:,:,jn), ldxios = lrxios ) 145 145 ELSE 146 146 zdta(:,:,:,jn) = 0.0 … … 161 161 cltra = TRIM(seddia3d(jn)) 162 162 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 163 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta1(:,:,:,jn), ldxios = lr sxios )163 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta1(:,:,:,jn), ldxios = lrxios ) 164 164 ELSE 165 165 zdta1(:,:,:,jn) = 0.0 … … 188 188 cltra = "dbioturb" 189 189 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 190 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:), ldxios = lr sxios )190 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:), ldxios = lrxios ) 191 191 ELSE 192 192 zdta2(:,:,:) = 0.0 … … 198 198 cltra = "irrig" 199 199 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 200 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:), ldxios = lr sxios )200 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:), ldxios = lrxios ) 201 201 ELSE 202 202 zdta2(:,:,:) = 0.0 … … 208 208 cltra = "sedligand" 209 209 IF( iom_varid( numrsr, TRIM(cltra) , ldstop = .FALSE. ) > 0 ) THEN 210 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:), ldxios = lr sxios )210 CALL iom_get( numrsr, jpdom_auto, TRIM(cltra), zdta2(:,:,:), ldxios = lrxios ) 211 211 ELSE 212 212 zdta2(:,:,:) = 0.0 … … 215 215 CALL pack_arr( jpoce, sedligand(1:jpoce,1:jpksed), & 216 216 & zdta2(1:jpi,1:jpj,1:jpksed), iarroce(1:jpoce) ) 217 IF(lr sxios) CALL iom_swap(cxios_context)217 IF(lrxios) CALL iom_swap(cxios_context) 218 218 IF( ln_timing ) CALL timing_stop('sed_rst_read') 219 219 … … 259 259 !! 1. WRITE in nutwrs 260 260 !! ------------------ 261 IF( lwxios ) CALL iom_swap( cw sxios_context )261 IF( lwxios ) CALL iom_swap( cw_sedrst_cxt ) 262 262 ! zinfo(1) = REAL( kt) 263 263 CALL iom_rstput( kt, nitrst, numrsw, 'kt', REAL( kt , wp), ldxios = lwxios ) … … 322 322 CALL iom_close( numrsw ) ! close the restart file (only at last time step) 323 323 ELSE 324 CALL iom_context_finalize( cw sxios_context )324 CALL iom_context_finalize( cw_sedrst_cxt ) 325 325 ENDIF 326 326 IF( l_offline .AND. ln_rst_list ) THEN … … 381 381 CALL iom_open( TRIM(cn_sedrst_indir)//'/'//cn_sedrst_in, numrsr ) 382 382 383 lrsxios = lrxios.AND.lxios_sini 384 IF( lrsxios) THEN 385 crsxios_context = 'sed_rst' 383 IF( lrxios) THEN 384 cr_sedrst_cxt = 'sed_rst' 386 385 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for SED' 387 386 IF( TRIM(Agrif_CFixed()) == '0' ) THEN … … 390 389 clpname = TRIM(Agrif_CFixed())//"_"//cn_sedrst_in 391 390 ENDIF 392 CALL iom_init( cr sxios_context, fname = TRIM(cn_sedrst_indir)//'/'//TRIM(clpname), &391 CALL iom_init( cr_sedrst_cxt, fname = TRIM(cn_sedrst_indir)//'/'//TRIM(clpname), & 393 392 idfp = iom_file(numrsr)%nfid, ld_closedef = .TRUE. ) 394 393 ENDIF 395 IF(lr sxios) CALL iom_swap(crsxios_context)396 CALL iom_get ( numrsr, 'kt', zkt, ldxios = lr sxios ) ! last time-step of previous run397 IF(lr sxios) CALL iom_swap(cxios_context)394 IF(lrxios) CALL iom_swap(cr_sedrst_cxt) 395 CALL iom_get ( numrsr, 'kt', zkt, ldxios = lrxios ) ! last time-step of previous run 396 IF(lrxios) CALL iom_swap(cxios_context) 398 397 IF(lwp) THEN 399 398 WRITE(numsed,*) ' *** Info read in restart : ' … … 416 415 ! ! set the date in offline mode 417 416 IF( ln_rst_sed .AND. nn_rstsed == 2 ) THEN 418 IF(lr sxios) CALL iom_swap(crsxios_context)419 CALL iom_get( numrsr, 'ndastp', zndastp, ldxios = lr sxios )417 IF(lrxios) CALL iom_swap(cr_sedrst_cxt) 418 CALL iom_get( numrsr, 'ndastp', zndastp, ldxios = lrxios ) 420 419 ndastp = NINT( zndastp ) 421 CALL iom_get( numrsr, 'adatrj', adatrj, ldxios = lr sxios )422 IF(lr sxios) CALL iom_swap(crxios_context)420 CALL iom_get( numrsr, 'adatrj', adatrj, ldxios = lrxios ) 421 IF(lrxios) CALL iom_swap(cr_ocerst_cxt) 423 422 ELSE 424 423 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam … … 444 443 IF(lwp) WRITE(numsed,*) 'trc_wri : write the TOP restart file (NetCDF) at it= ', kt, ' date= ', ndastp 445 444 IF(lwp) WRITE(numsed,*) '~~~~~~~' 446 IF( lwxios ) CALL iom_init_closedef(cw sxios_context)447 ENDIF 448 IF( lwxios ) CALL iom_swap( cw sxios_context )445 IF( lwxios ) CALL iom_init_closedef(cw_sedrst_cxt) 446 ENDIF 447 IF( lwxios ) CALL iom_swap( cw_sedrst_cxt ) 449 448 CALL iom_rstput( kt, nitrst, numrsw, 'kt' , REAL( kt , wp), ldxios = lwxios ) ! time-step 450 449 CALL iom_rstput( kt, nitrst, numrsw, 'ndastp' , REAL( ndastp, wp), ldxios = lwxios ) ! date -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/PISCES/SED/sedstp.F90
r12969 r13871 86 86 IF( kt == nitsed000 ) THEN 87 87 CALL iom_close( numrsr ) ! close input tracer restart file 88 IF(lr sxios) CALL iom_context_finalize( crsxios_context )88 IF(lrxios) CALL iom_context_finalize( cr_sedrst_cxt ) 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
r13727 r13871 87 87 IF(lwp) WRITE(numout,*) ' nittrc000-1 surface tracer content forcing fields read in the restart file' 88 88 zfact = 0.5_wp 89 IF(lr txios) CALL iom_swap(crtxios_context)89 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 90 90 DO jn = 1, jptra 91 CALL iom_get( numrtr, jpdom_auto, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn), ldxios = lr txios ) ! before tracer content sbc91 CALL iom_get( numrtr, jpdom_auto, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc_b(:,:,jn), ldxios = lrxios ) ! before tracer content sbc 92 92 END DO 93 IF(lr txios) CALL iom_swap(cxios_context)93 IF(lrxios) CALL iom_swap(cxios_context) 94 94 ELSE ! No restart or restart not found: Euler forward time stepping 95 95 zfact = 1._wp … … 183 183 & 'at it= ', kt,' date= ', ndastp 184 184 IF(lwp) WRITE(numout,*) '~~~~' 185 IF( lwxios ) CALL iom_swap( cw txios_context )185 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 186 186 DO jn = 1, jptra 187 187 CALL iom_rstput( kt, nitrst, numrtw, 'sbc_'//TRIM(ctrcnm(jn))//'_b', sbc_trc(:,:,jn), ldxios = lwxios ) -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trc.F90
r13727 r13871 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 XIOS72 71 73 72 !! Information for the ice module for tracers -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcrst.F90
r13750 r13871 96 96 ELSE 97 97 #if defined key_iomput 98 cw txios_context = "rstwt_"//TRIM(ADJUSTL(clkt))98 cw_toprst_cxt = "rstwt_"//TRIM(ADJUSTL(clkt)) 99 99 IF( TRIM(Agrif_CFixed()) == '0' ) THEN 100 100 clpname = clname … … 102 102 clpname = TRIM(Agrif_CFixed())//"_"//clname 103 103 ENDIF 104 CALL iom_init( cw txios_context, fname = TRIM(clpath)//TRIM(clpname), ld_closedef = .FALSE. )104 CALL iom_init( cw_toprst_cxt, fname = TRIM(clpath)//TRIM(clpname), ld_closedef = .FALSE. ) 105 105 CALL iom_swap( cxios_context ) 106 106 #else … … 130 130 131 131 ! READ prognostic variables and computes diagnostic variable 132 IF(lr txios) CALL iom_swap(crtxios_context)132 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 133 133 DO jn = 1, jptra 134 CALL iom_get( numrtr, jpdom_auto, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm), ldxios = lr txios )134 CALL iom_get( numrtr, jpdom_auto, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm), ldxios = lrxios ) 135 135 END DO 136 136 137 137 DO jn = 1, jptra 138 CALL iom_get( numrtr, jpdom_auto, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb), ldxios = lr txios )138 CALL iom_get( numrtr, jpdom_auto, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb), ldxios = lrxios ) 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 txios) CALL iom_swap(cxios_context)142 IF(lrxios) CALL iom_swap(cxios_context) 143 143 END SUBROUTINE trc_rst_read 144 144 … … 155 155 !!---------------------------------------------------------------------- 156 156 ! 157 IF( lwxios ) CALL iom_swap( cw txios_context )157 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 158 158 CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rn_Dt, ldxios = lwxios ) ! passive tracer time step (= ocean time step) 159 159 ! prognostic variables … … 173 173 CALL trc_rst_stat( Kmm, Krhs ) ! statistics 174 174 IF(lwxios) THEN 175 CALL iom_context_finalize( cw txios_context )175 CALL iom_context_finalize( cw_toprst_cxt ) 176 176 ELSE 177 177 CALL iom_close( numrtw ) ! close the restart file (only at last time step) … … 234 234 lxios_sini = .FALSE. 235 235 CALL iom_open( TRIM(cn_trcrst_indir)//'/'//cn_trcrst_in, numrtr ) 236 lrtxios = lrxios.AND.lxios_sini 237 IF( lrtxios) THEN 238 crtxios_context = 'top_rst' 236 IF( lrxios) THEN 237 cr_toprst_cxt = 'top_rst' 239 238 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for TOP' 240 239 IF( TRIM(Agrif_CFixed()) == '0' ) THEN … … 243 242 clpname = TRIM(Agrif_CFixed())//"_"//cn_trcrst_in 244 243 ENDIF 245 CALL iom_init( cr txios_context, fname = TRIM(cn_trcrst_indir)//'/'//TRIM(clpname), &244 CALL iom_init( cr_toprst_cxt, fname = TRIM(cn_trcrst_indir)//'/'//TRIM(clpname), & 246 245 idfp = iom_file(numrtr)%nfid, ld_closedef = .TRUE. ) 247 246 ENDIF 248 247 249 IF(lr txios) CALL iom_swap(crtxios_context)250 CALL iom_get ( numrtr, 'kt', zkt, ldxios = lr txios ) ! last time-step of previous run251 IF(lr txios) CALL iom_swap(cxios_context)248 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 249 CALL iom_get ( numrtr, 'kt', zkt, ldxios = lrxios ) ! last time-step of previous run 250 IF(lrxios) CALL iom_swap(cxios_context) 252 251 253 252 IF(lwp) THEN … … 271 270 ! ! set the date in offline mode 272 271 IF( ln_rsttr .AND. nn_rsttr == 2 ) THEN 273 IF(lr txios) CALL iom_swap(crtxios_context)274 CALL iom_get( numrtr, 'ndastp', zndastp, ldxios = lr txios )272 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 273 CALL iom_get( numrtr, 'ndastp', zndastp, ldxios = lrxios ) 275 274 ndastp = NINT( zndastp ) 276 CALL iom_get( numrtr, 'adatrj', adatrj, ldxios = lr txios )277 CALL iom_get( numrtr, 'ntime' , ktime, ldxios = lr txios )278 IF(lr txios) CALL iom_swap(cxios_context)275 CALL iom_get( numrtr, 'adatrj', adatrj, ldxios = lrxios ) 276 CALL iom_get( numrtr, 'ntime' , ktime, ldxios = lrxios ) 277 IF(lrxios) CALL iom_swap(cxios_context) 279 278 nn_time0=INT(ktime) 280 279 ! calculate start time in hours and minutes … … 336 335 IF(lwp) WRITE(numout,*) '~~~~~~~' 337 336 ENDIF 338 IF( lwxios ) CALL iom_swap( cw txios_context )337 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 339 338 CALL iom_rstput( kt, nitrst, numrtw, 'kt' , REAL( kt , wp) , ldxios = lwxios ) ! time-step 340 339 CALL iom_rstput( kt, nitrst, numrtw, 'ndastp' , REAL( ndastp, wp) , ldxios = lwxios ) ! date -
NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcstp.F90
r13727 r13871 110 110 IF( kt == nittrc000 ) THEN 111 111 CALL iom_close( numrtr ) ! close input tracer restart file 112 IF(lr txios) CALL iom_context_finalize( crtxios_context )112 IF(lrxios) CALL iom_context_finalize( cr_toprst_cxt ) 113 113 IF(lwm) CALL FLUSH( numont ) ! flush namelist output 114 114 ENDIF … … 197 197 & .AND. iom_varid( numrtr, 'ktdcy' , ldstop = .FALSE. ) > 0 & 198 198 & .AND. iom_varid( numrtr, 'nrdcy' , ldstop = .FALSE. ) > 0 ) THEN 199 IF(lr txios) CALL iom_swap(crtxios_context)200 CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lr txios )199 IF(lrxios) CALL iom_swap(cr_toprst_cxt) 200 CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lrxios ) 201 201 rsecfst = INT( zkt ) * rn_Dt 202 202 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 203 CALL iom_get( numrtr, jpdom_auto, 'qsr_mean', qsr_mean, ldxios = lr txios ) ! A mean of qsr204 CALL iom_get( numrtr, 'nrdcy', zrec, ldxios = lr txios ) ! Number of record per days203 CALL iom_get( numrtr, jpdom_auto, 'qsr_mean', qsr_mean, ldxios = lrxios ) ! A mean of qsr 204 CALL iom_get( numrtr, 'nrdcy', zrec, ldxios = lrxios ) ! Number of record per days 205 205 IF( INT( zrec ) == nb_rec_per_day ) THEN 206 206 DO jn = 1, nb_rec_per_day 207 207 IF( jn <= 9 ) THEN 208 208 WRITE(cl1,'(i1)') jn 209 CALL iom_get( numrtr, jpdom_auto, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lr txios ) ! A mean of qsr209 CALL iom_get( numrtr, jpdom_auto, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lrxios ) ! A mean of qsr 210 210 ELSE 211 211 WRITE(cl2,'(i2.2)') jn 212 CALL iom_get( numrtr, jpdom_auto, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lr txios ) ! A mean of qsr212 CALL iom_get( numrtr, jpdom_auto, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lrxios ) ! A mean of qsr 213 213 ENDIF 214 214 END DO … … 218 218 ENDDO 219 219 ENDIF 220 IF(lr txios) CALL iom_swap(cxios_context)220 IF(lrxios) CALL iom_swap(cxios_context) 221 221 ELSE !* no restart: set from nit000 values 222 222 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean set to nit000 values' … … 252 252 zkt = REAL( ktdcy, wp ) 253 253 zrec = REAL( nb_rec_per_day, wp ) 254 IF( lwxios ) CALL iom_swap( cw txios_context )254 IF( lwxios ) CALL iom_swap( cw_toprst_cxt ) 255 255 CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt, ldxios = lwxios ) 256 256 CALL iom_rstput( kt, nitrst, numrtw, 'nrdcy', zrec, ldxios = lwxios )
Note: See TracChangeset
for help on using the changeset viewer.