- Timestamp:
- 2020-04-03T13:09:33+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.2_GO8_package/src/OCE/IOM/restart.F90
r12658 r12660 27 27 USE in_out_manager ! I/O manager 28 28 USE iom ! I/O module 29 USE ioipsl, ONLY : ju2ymds ! for calendar 29 30 USE diurnal_bulk 30 31 USE lib_mpp ! distribued memory computing library … … 59 60 INTEGER, INTENT(in) :: kt ! ocean time-step 60 61 !! 62 INTEGER :: iyear, imonth, iday 63 REAL (wp) :: zsec 64 REAL (wp) :: zfjulday 61 65 CHARACTER(LEN=20) :: clkt ! ocean time-step deine as a character 62 66 CHARACTER(LEN=50) :: clname ! ocean output restart file name … … 90 94 IF( nitrst <= nitend .AND. nitrst > 0 ) THEN 91 95 ! beware of the format used to write kt (default is i8.8, that should be large enough...) 92 IF( nitrst > 999999999 ) THEN ; WRITE(clkt, * ) nitrst 93 ELSE ; WRITE(clkt, '(i8.8)') nitrst 96 IF ( ln_rstdate ) THEN 97 zfjulday = fjulday + rdt / rday 98 IF( ABS(zfjulday - REAL(NINT(zfjulday),wp)) < 0.1 / rday ) zfjulday = REAL(NINT(zfjulday),wp) ! avoid truncation error 99 CALL ju2ymds( zfjulday, iyear, imonth, iday, zsec ) 100 WRITE(clkt, '(i4.4,2i2.2)') iyear, imonth, iday 101 ELSE 102 IF( nitrst > 999999999 ) THEN ; WRITE(clkt, * ) nitrst 103 ELSE ; WRITE(clkt, '(i8.8)') nitrst 104 ENDIF 94 105 ENDIF 95 106 ! create the file … … 173 184 END IF 174 185 ENDIF 186 CALL iom_rstput( kt, nitrst, numrow, 'neos' , REAL(neos) , ldxios = lwxios) ! equation of state 187 !CALL iom_rstput( kt, nitrst, numrow, 'neos' , neos , ktype = jp_i1, ldxios = lwxios) ! equation of state 188 175 189 176 190 IF (ln_diurnal) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst, ldxios = lwxios ) … … 249 263 !!---------------------------------------------------------------------- 250 264 REAL(wp) :: zrdt 265 REAL(wp) :: zeos 251 266 INTEGER :: jk 252 267 REAL(wp), DIMENSION(jpi, jpj, jpk) :: w3d … … 255 270 CALL rst_read_open ! open restart for reading (if not already opened) 256 271 272 IF ( ln_rst_eos ) THEN 273 ! Check equation of state used is consistent with the restart 274 IF( iom_varid( numror, 'neos') == -1) THEN 275 CALL ctl_stop( 'restart, rst_read: variable neos not found. STOP check that the equations of state in the restart file and in the namelist nameos are consistent and use ln_rst_eos=F') 276 ELSE 277 CALL iom_get( numror, 'neos', zeos, ldxios = lrxios ) 278 IF ( INT(zeos) /= neos ) CALL ctl_stop( 'restart, rst_read: equation of state used in restart file differs from namelist nameos') 279 ENDIF 280 ENDIF 281 257 282 ! Check dynamics and tracer time-step consistency and force Euler restart if changed 258 IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 ) THEN 283 IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 ) THEN 259 284 CALL iom_get( numror, 'rdt', zrdt, ldxios = lrxios ) 260 285 IF( zrdt /= rdt ) neuler = 0
Note: See TracChangeset
for help on using the changeset viewer.