Changeset 1191 for trunk/NEMO/OPA_SRC/SBC/fldread.F90
- Timestamp:
- 2008-09-18T10:33:07+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/fldread.F90
r1156 r1191 79 79 REAL(wp) :: ztinta ! ratio applied to after records when doing time interpolation 80 80 REAL(wp) :: ztintb ! ratio applied to before records when doing time interpolation 81 CHARACTER(LEN=1000) :: clfmt ! write format 81 82 !!--------------------------------------------------------------------- 82 83 ! ! ===================== ! … … 104 105 105 106 ! last record to be read in the current file 106 IF( sd(jf)%freqh == -1. ) THEN ;zreclast = 12.107 IF( sd(jf)%freqh == -1. ) THEN ; zreclast = 12. 107 108 ELSE 108 109 IF( sd(jf)%cltype == 'monthly' ) THEN ; zreclast = 24. / sd(jf)%freqh * REAL( nmonth_len(nmonth), wp ) … … 139 140 ! to the NEW year/month. If it is the case, we are at the beginning of the year/month when calling fld_rec 140 141 ! so sd(jf)%rec_a(1) = 1 141 IF( sd(jf)%rec_a(1) == 1 ) CALL fld_clopn( sd(jf), nyear, nmonth ) ! back to the current year/month142 IF( sd(jf)%rec_a(1) == 1 ) CALL fld_clopn( sd(jf), nyear, nmonth ) 142 143 ENDIF 143 144 … … 151 152 ! 152 153 IF( sd(jf)%ln_tint ) THEN 153 IF(lwp .AND. kt - nit000 <= 100 ) WRITE(numout,*)'fld_read: var ', TRIM( sd(jf)%clvar ), & 154 & ' kt = ', kt,' Y/M/D = ', nyear,'/', nmonth,'/', nday,' records b/a:', NINT(sd(jf)%rec_b(1)), & 155 & '/', NINT(sd(jf)%rec_a(1)), ' (', sd(jf)%rec_b(2)/rday,'/', sd(jf)%rec_a(2)/rday, ' days)' 154 IF(lwp .AND. kt - nit000 <= 100 ) THEN 155 clfmt = "('fld_read: var ', a, ' kt = ', i8,' Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," // & 156 & "' records b/a: ', i4.4, '/', i4.4, ' (', f7.2,'/', f7.2, ' days)')" 157 WRITE(numout, clfmt) TRIM( sd(jf)%clvar ), kt, nyear, nmonth, nday, & 158 & NINT(sd(jf)%rec_b(1)), NINT(sd(jf)%rec_a(1)), sd(jf)%rec_b(2)/rday, sd(jf)%rec_a(2)/rday 159 ENDIF 156 160 ! 157 161 ztinta = ( rsec_year + sec1jan000 - sd(jf)%rec_b(2) ) / ( sd(jf)%rec_a(2) - sd(jf)%rec_b(2) ) … … 160 164 sd(jf)%fnow(:,:) = ztintb * sd(jf)%fdta(:,:,1) + ztinta * sd(jf)%fdta(:,:,2) 161 165 ELSE 162 IF(lwp .AND. kt - nit000 <= 100 ) WRITE(numout,*)'fld_read: var ', TRIM( sd(jf)%clvar ), & 163 & ' kt = ', kt, ' Y/M/D = ', nyear,'/', nmonth,'/', nday, ' record :', INT(sd(jf)%rec_a(1)), & 164 & ' at ', sd(jf)%rec_a(2)/rday, 'day' 166 IF(lwp .AND. kt - nit000 <= 100 ) THEN 167 clfmt = "('fld_read: var ', a, ' kt = ', i8,' Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," // & 168 & "' record: ', i4.4, ' at ', f7.2, ' day')" 169 WRITE(numout, clfmt) TRIM(sd(jf)%clvar), kt, nyear, nmonth, nday, NINT(sd(jf)%rec_a(1)), sd(jf)%rec_a(2)/rday 170 ENDIF 165 171 !CDIR COLLAPSE 166 172 sd(jf)%fnow(:,:) = sd(jf)%fdta(:,:,2) ! piecewise constant field … … 194 200 INTEGER :: idvar ! variable id 195 201 INTEGER :: inrec ! number of record existing for this variable 202 CHARACTER(LEN=1000) :: clfmt ! write format 196 203 !!--------------------------------------------------------------------- 197 204 … … 208 215 209 216 IF( sdjf%rec_b(1) == 0.e0 ) THEN ! we redefine record sdjf%rec_b(1) with the last record of previous year file 210 IF( sdjf%freqh == -1. ) THEN ! monthly mean217 IF( sdjf%freqh == -1. ) THEN ! monthly mean 211 218 sdjf%rec_b(1) = 12. ! force to read december mean 212 219 ELSE … … 244 251 CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fdta(:,:,2), NINT( sdjf%rec_b(1) ) ) 245 252 246 IF(lwp) WRITE(numout,*)'fld_init : time-interpolation for ', TRIM( sdjf%clvar ), &247 & ' read previous record =', NINT(sdjf%rec_b(1)), ' at time = ', sdjf%rec_b(2)/rday, ' days'253 clfmt = "('fld_init : time-interpolation for ', a, ' read previous record = ', i4, ' at time = ', f7.2, ' days')" 254 IF(lwp) WRITE(numout, clfmt) TRIM(sdjf%clvar), NINT(sdjf%rec_b(1)), sdjf%rec_b(2)/rday 248 255 249 256 IF( llprev ) CALL iom_close( sdjf%num ) ! close previous year file (-> redefine sdjf%num to 0) … … 299 306 300 307 sdjf%rec_a(:) = (/ REAL( irec, wp ), rmonth_half(irec) /) ! define after record number and time 301 irec = irec - 1 ! move back to previous record308 irec = irec - 1 ! move back to previous record 302 309 sdjf%rec_b(:) = (/ REAL( irec, wp ), rmonth_half(irec) /) ! define before record number and time 303 310 !
Note: See TracChangeset
for help on using the changeset viewer.