Changeset 6058 for IOIPSL


Ignore:
Timestamp:
02/10/22 13:44:36 (2 years ago)
Author:
jgipsl
Message:

Add error checking after read of attributes related to time axis. Do nothing if there are errors. This is needed for the file ECDYN.nc without time axis, file read by create_etat0_limit in LMDZ. Note that it is not new that this file is read by flincom but maybe the debug options was not tested for this case before.

Done by Adriana Sima, LMD

Location:
IOIPSL
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • IOIPSL/tags/v2_2_5/src/flincom.f90

    r4863 r6058  
    377377  REAL, PARAMETER :: eps = 1.e-4 
    378378!- 
    379   INTEGER :: iret, vid, fid, nbdim, i, iilast, jjlast 
     379  INTEGER :: iret, nberr, vid, fid, nbdim, i, iilast, jjlast 
    380380  INTEGER :: gdtt_id, old_id, iv, gdtmaf_id 
    381381  CHARACTER(LEN=250) :: name 
     
    653653    ELSE IF (old_id > 0) THEN 
    654654      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'delta_tstep_sec', dt) 
     655      nberr = 0  
    655656      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'day0', r_day) 
     657      IF (iret /= NF90_NOERR) nberr=nberr+1 
    656658      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'sec0', sec) 
     659      IF (iret /= NF90_NOERR) nberr=nberr+1  
    657660      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'year0', r_year) 
     661      IF (iret /= NF90_NOERR) nberr=nberr+1 
    658662      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'month0', r_month) 
    659 !----- 
    660       day = INT(r_day) 
    661       month = INT(r_month) 
    662       year = INT(r_year) 
    663 !----- 
    664       CALL ymds2ju (year, month, day, sec, date0) 
     663      IF (iret /= NF90_NOERR) nberr=nberr+1 
     664 
     665      IF (nberr == 0) THEN 
     666         day = INT(r_day) 
     667         month = INT(r_month) 
     668         year = INT(r_year) 
     669 
     670         CALL ymds2ju (year, month, day, sec, date0) 
     671      ELSE 
     672          WRITE(*,*) 'Subroutine : flinopen_work ; time axis missing or not recognized in file', filename 
     673      ENDIF 
     674 
    665675    ENDIF 
    666676  ENDIF 
  • IOIPSL/trunk/src/flincom.f90

    r4863 r6058  
    377377  REAL, PARAMETER :: eps = 1.e-4 
    378378!- 
    379   INTEGER :: iret, vid, fid, nbdim, i, iilast, jjlast 
     379  INTEGER :: iret, nberr, vid, fid, nbdim, i, iilast, jjlast 
    380380  INTEGER :: gdtt_id, old_id, iv, gdtmaf_id 
    381381  CHARACTER(LEN=250) :: name 
     
    653653    ELSE IF (old_id > 0) THEN 
    654654      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'delta_tstep_sec', dt) 
     655      nberr = 0  
    655656      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'day0', r_day) 
     657      IF (iret /= NF90_NOERR) nberr=nberr+1 
    656658      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'sec0', sec) 
     659      IF (iret /= NF90_NOERR) nberr=nberr+1  
    657660      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'year0', r_year) 
     661      IF (iret /= NF90_NOERR) nberr=nberr+1 
    658662      iret = NF90_GET_ATT (fid, NF90_GLOBAL, 'month0', r_month) 
    659 !----- 
    660       day = INT(r_day) 
    661       month = INT(r_month) 
    662       year = INT(r_year) 
    663 !----- 
    664       CALL ymds2ju (year, month, day, sec, date0) 
     663      IF (iret /= NF90_NOERR) nberr=nberr+1 
     664 
     665      IF (nberr == 0) THEN 
     666         day = INT(r_day) 
     667         month = INT(r_month) 
     668         year = INT(r_year) 
     669 
     670         CALL ymds2ju (year, month, day, sec, date0) 
     671      ELSE 
     672          WRITE(*,*) 'Subroutine : flinopen_work ; time axis missing or not recognized in file', filename 
     673      ENDIF 
     674 
    665675    ENDIF 
    666676  ENDIF 
Note: See TracChangeset for help on using the changeset viewer.