- Timestamp:
- 2020-12-02T18:22:24+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Property svn:externals
-
old new 8 8 9 9 # SETTE 10 ^/utils/CI/sette@13 559sette10 ^/utils/CI/sette@13795 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/OCE/IOM/restart.F90
r13895 r14018 111 111 ELSE 112 112 #if defined key_iomput 113 cw xios_context = "rstw_"//TRIM(ADJUSTL(clkt))113 cw_ocerst_cxt = "rstw_"//TRIM(ADJUSTL(clkt)) 114 114 IF( TRIM(Agrif_CFixed()) == '0' ) THEN 115 115 clpname = clname … … 117 117 clpname = TRIM(Agrif_CFixed())//"_"//clname 118 118 ENDIF 119 CALL iom_init( cwxios_context, TRIM(clpath)//TRIM(clpname), .false.)120 CALL xios_update_calendar(nitrst)119 numrow = iom_xios_setid(TRIM(clpath)//TRIM(clpname)) 120 CALL iom_init( cw_ocerst_cxt, kdid = numrow, ld_closedef = .false. ) 121 121 CALL iom_swap( cxios_context ) 122 122 #else … … 147 147 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 148 148 !!---------------------------------------------------------------------- 149 IF(lwxios) CALL iom_swap( cwxios_context ) 150 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rn_Dt , ldxios = lwxios) ! dynamics time step 151 CALL iom_delay_rst( 'WRITE', 'OCE', numrow ) ! save only ocean delayed global communication variables 149 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rn_Dt ) ! dynamics time step 150 IF(.NOT.lwxios) CALL iom_delay_rst( 'WRITE', 'OCE', numrow ) ! save only ocean delayed global communication variables 152 151 153 152 IF ( .NOT. ln_diurnal_only ) THEN 154 CALL iom_rstput( kt, nitrst, numrow, 'ub' , uu(:,:,: ,Kbb) , ldxios = lwxios) ! before fields155 CALL iom_rstput( kt, nitrst, numrow, 'vb' , vv(:,:,: ,Kbb) , ldxios = lwxios)156 CALL iom_rstput( kt, nitrst, numrow, 'tb' , ts(:,:,:,jp_tem,Kbb) , ldxios = lwxios)157 CALL iom_rstput( kt, nitrst, numrow, 'sb' , ts(:,:,:,jp_sal,Kbb) , ldxios = lwxios)158 CALL iom_rstput( kt, nitrst, numrow, 'sshb' , ssh(:,: ,Kbb), ldxios = lwxios)153 CALL iom_rstput( kt, nitrst, numrow, 'ub' , uu(:,:,: ,Kbb) ) ! before fields 154 CALL iom_rstput( kt, nitrst, numrow, 'vb' , vv(:,:,: ,Kbb) ) 155 CALL iom_rstput( kt, nitrst, numrow, 'tb' , ts(:,:,:,jp_tem,Kbb) ) 156 CALL iom_rstput( kt, nitrst, numrow, 'sb' , ts(:,:,:,jp_sal,Kbb) ) 157 CALL iom_rstput( kt, nitrst, numrow, 'sshb' , ssh(:,: ,Kbb)) 159 158 ! 160 CALL iom_rstput( kt, nitrst, numrow, 'un' , uu(:,:,: ,Kmm) , ldxios = lwxios) ! now fields161 CALL iom_rstput( kt, nitrst, numrow, 'vn' , vv(:,:,: ,Kmm) , ldxios = lwxios)162 CALL iom_rstput( kt, nitrst, numrow, 'tn' , ts(:,:,:,jp_tem,Kmm) , ldxios = lwxios)163 CALL iom_rstput( kt, nitrst, numrow, 'sn' , ts(:,:,:,jp_sal,Kmm) , ldxios = lwxios)164 CALL iom_rstput( kt, nitrst, numrow, 'sshn' , ssh(:,: ,Kmm), ldxios = lwxios)165 CALL iom_rstput( kt, nitrst, numrow, 'rhop' , rhop , ldxios = lwxios)159 CALL iom_rstput( kt, nitrst, numrow, 'un' , uu(:,:,: ,Kmm) ) ! now fields 160 CALL iom_rstput( kt, nitrst, numrow, 'vn' , vv(:,:,: ,Kmm) ) 161 CALL iom_rstput( kt, nitrst, numrow, 'tn' , ts(:,:,:,jp_tem,Kmm) ) 162 CALL iom_rstput( kt, nitrst, numrow, 'sn' , ts(:,:,:,jp_sal,Kmm) ) 163 CALL iom_rstput( kt, nitrst, numrow, 'sshn' , ssh(:,: ,Kmm)) 164 CALL iom_rstput( kt, nitrst, numrow, 'rhop' , rhop ) 166 165 ENDIF 167 166 168 IF (ln_diurnal) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst, ldxios = lwxios ) 169 IF(lwxios) CALL iom_swap( cxios_context ) 167 IF (ln_diurnal) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst ) 170 168 IF( kt == nitrst ) THEN 171 169 IF(.NOT.lwxios) THEN 172 170 CALL iom_close( numrow ) ! close the restart file (only at last time step) 173 171 ELSE 174 CALL iom_context_finalize( cwxios_context ) 172 CALL iom_context_finalize( cw_ocerst_cxt ) 173 iom_file(numrow)%nfid = 0 174 numrow = 0 175 175 ENDIF 176 176 !!gm IF( .NOT. lk_trdmld ) lrst_oce = .FALSE. … … 195 195 !! the file has already been opened 196 196 !!---------------------------------------------------------------------- 197 LOGICAL :: llok 198 CHARACTER(lc) :: clpath ! full path to ocean output restart file 197 LOGICAL :: llok 198 CHARACTER(len=lc) :: clpath ! full path to ocean output restart file 199 CHARACTER(len=lc+2) :: clpname ! file name including agrif prefix 199 200 !!---------------------------------------------------------------------- 200 201 ! … … 213 214 ! can handle checking if variable is in the restart file (there will be no need to open 214 215 ! restart) 215 IF( .NOT.lxios_set )lrxios = lrxios.AND.lxios_sini216 IF( lrxios ) THEN 217 crxios_context = 'nemo_rst'218 IF( .NOT.lxios_set ) THEN219 220 CALL iom_init( crxios_context ) 221 lxios_set = .TRUE. 222 ENDIF 223 ENDIF 224 IF( TRIM(Agrif_CFixed()) /= '0' .AND. lrxios ) THEN 225 CALL iom_init( cr xios_context)226 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for AGRIF'227 lxios_set = .TRUE.228 ENDIF 216 lrxios = lrxios.AND.lxios_sini 217 218 IF( lrxios) THEN 219 cr_ocerst_cxt = 'oce_rst' 220 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS' 221 ! IF( TRIM(Agrif_CFixed()) == '0' ) THEN 222 ! clpname = cn_ocerst_in 223 ! ELSE 224 ! clpname = TRIM(Agrif_CFixed())//"_"//cn_ocerst_in 225 ! ENDIF 226 CALL iom_init( cr_ocerst_cxt, kdid = numror, ld_closedef = .TRUE. ) 227 CALL iom_swap( cxios_context ) 228 ENDIF 229 229 230 ENDIF 230 231 … … 252 253 !!---------------------------------------------------------------------- 253 254 ! 254 CALL iom_delay_rst( 'READ', 'OCE', numror ) ! read only ocean delayed global communication variables255 IF(.NOT.lrxios ) CALL iom_delay_rst( 'READ', 'OCE', numror ) ! read only ocean delayed global communication variables 255 256 ! 256 257 ! !* Diurnal DSST 257 IF( ln_diurnal ) CALL iom_get( numror, jpdom_auto, 'Dsst' , x_dsst , ldxios = lrxios)258 IF( ln_diurnal ) CALL iom_get( numror, jpdom_auto, 'Dsst' , x_dsst ) 258 259 IF ( ln_diurnal_only ) THEN 259 260 IF(lwp) WRITE( numout, * ) & 260 261 & "rst_read:- ln_diurnal_only set, setting rhop=rho0" 261 262 rhop = rho0 262 CALL iom_get( numror, jpdom_auto, 'tn' , w3d , ldxios = lrxios)263 CALL iom_get( numror, jpdom_auto, 'tn' , w3d ) 263 264 ts(:,:,1,jp_tem,Kmm) = w3d(:,:,1) 264 265 RETURN … … 267 268 ! !* Read Kmm fields 268 269 IF(lwp) WRITE(numout,*) ' Kmm u, v and T-S fields read in the restart file' 269 CALL iom_get( numror, jpdom_auto, 'un' , uu(:,:,: ,Kmm), ldxios = lrxios,cd_type = 'U', psgn = -1._wp )270 CALL iom_get( numror, jpdom_auto, 'vn' , vv(:,:,: ,Kmm), ldxios = lrxios,cd_type = 'V', psgn = -1._wp )271 CALL iom_get( numror, jpdom_auto, 'tn' , ts(:,:,:,jp_tem,Kmm) , ldxios = lrxios)272 CALL iom_get( numror, jpdom_auto, 'sn' , ts(:,:,:,jp_sal,Kmm) , ldxios = lrxios)270 CALL iom_get( numror, jpdom_auto, 'un' , uu(:,:,: ,Kmm), cd_type = 'U', psgn = -1._wp ) 271 CALL iom_get( numror, jpdom_auto, 'vn' , vv(:,:,: ,Kmm), cd_type = 'V', psgn = -1._wp ) 272 CALL iom_get( numror, jpdom_auto, 'tn' , ts(:,:,:,jp_tem,Kmm) ) 273 CALL iom_get( numror, jpdom_auto, 'sn' , ts(:,:,:,jp_sal,Kmm) ) 273 274 ! 274 275 IF( l_1st_euler ) THEN !* Euler restart … … 279 280 ELSE !* Leap frog restart 280 281 IF(lwp) WRITE(numout,*) ' Kbb u, v and T-S fields read in the restart file' 281 CALL iom_get( numror, jpdom_auto, 'ub' , uu(:,:,: ,Kbb), ldxios = lrxios,cd_type = 'U', psgn = -1._wp )282 CALL iom_get( numror, jpdom_auto, 'vb' , vv(:,:,: ,Kbb), ldxios = lrxios,cd_type = 'V', psgn = -1._wp )283 CALL iom_get( numror, jpdom_auto, 'tb' , ts(:,:,:,jp_tem,Kbb) , ldxios = lrxios)284 CALL iom_get( numror, jpdom_auto, 'sb' , ts(:,:,:,jp_sal,Kbb) , ldxios = lrxios)282 CALL iom_get( numror, jpdom_auto, 'ub' , uu(:,:,: ,Kbb), cd_type = 'U', psgn = -1._wp ) 283 CALL iom_get( numror, jpdom_auto, 'vb' , vv(:,:,: ,Kbb), cd_type = 'V', psgn = -1._wp ) 284 CALL iom_get( numror, jpdom_auto, 'tb' , ts(:,:,:,jp_tem,Kbb) ) 285 CALL iom_get( numror, jpdom_auto, 'sb' , ts(:,:,:,jp_sal,Kbb) ) 285 286 ENDIF 286 287 ! 287 288 IF( iom_varid( numror, 'rhop', ldstop = .FALSE. ) > 0 ) THEN 288 CALL iom_get( numror, jpdom_auto, 'rhop' , rhop , ldxios = lrxios) ! now potential density289 CALL iom_get( numror, jpdom_auto, 'rhop' , rhop ) ! now potential density 289 290 ELSE 290 291 CALL eos( ts(:,:,:,:,Kmm), rhd, rhop, gdept(:,:,:,Kmm) )
Note: See TracChangeset
for help on using the changeset viewer.