Ignore:
Timestamp:
Mar 14, 2017, 11:10:55 PM (7 years ago)
Author:
oboucher
Message:

Climatological ASNO3M, CSNO3M, CINO3M aerosol fields can be read and fed
through the aerosol routines for optical properties. The get_aero_fromfile
routine needed some change so that it doesn't stop if a particular field
is not there.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/readaerosol.F90

    r2346 r2823  
    222222    REAL, ALLOCATABLE, DIMENSION(:)       :: varktmp
    223223
    224     REAL, DIMENSION(nbp_lon,nbp_lat,12)         :: psurf_glo2D   ! Surface pression for 12 months on dynamics global grid
     224    REAL, DIMENSION(nbp_lon,nbp_lat,12)   :: psurf_glo2D   ! Surface pression for 12 months on dynamics global grid
    225225    REAL, DIMENSION(klon_glo,12)          :: psurf_glo1D   ! -"- on physical global grid
    226     REAL, DIMENSION(nbp_lon,nbp_lat,12)         :: load_glo2D    ! Load for 12 months on dynamics global grid
     226    REAL, DIMENSION(nbp_lon,nbp_lat,12)   :: load_glo2D    ! Load for 12 months on dynamics global grid
    227227    REAL, DIMENSION(klon_glo,12)          :: load_glo1D    ! -"- on physical global grid
    228     REAL, DIMENSION(nbp_lon,nbp_lat)            :: vartmp
    229     REAL, DIMENSION(nbp_lon)                  :: lon_src              ! longitudes in file
    230     REAL, DIMENSION(nbp_lat)                :: lat_src, lat_src_inv ! latitudes in file
     228    REAL, DIMENSION(nbp_lon,nbp_lat)      :: vartmp
     229    REAL, DIMENSION(nbp_lon)              :: lon_src              ! longitudes in file
     230    REAL, DIMENSION(nbp_lat)              :: lat_src, lat_src_inv ! latitudes in file
    231231    LOGICAL                               :: new_file             ! true if new file format detected
    232232    LOGICAL                               :: invert_lat           ! true if the field has to be inverted for latitudes
     
    245245 
    246246       WRITE(lunout,*) 'reading variable ',TRIM(varname),' in file ', TRIM(fname)
    247        CALL check_err( nf90_open(TRIM(fname), NF90_NOWRITE, ncid), "pb open "//trim(varname) )
     247       CALL check_err( nf90_open(TRIM(fname), NF90_NOWRITE, ncid), "pb open "//trim(fname) )
    248248
    249249! Test for equal longitudes and latitudes in file and model
     
    338338!****************************************************************************************
    339339          ! Get variable id
    340           CALL check_err( nf90_inq_varid(ncid, TRIM(varname), varid),"pb inq var "//TRIM(varname) )
    341          
    342           ! Get the variable
    343           CALL check_err( nf90_get_var(ncid, varid, varyear(:,:,:,:)),"pb get var "//TRIM(varname) )
     340          !CALL check_err( nf90_inq_varid(ncid, TRIM(varname), varid),"pb inq var "//TRIM(varname) )
     341          print *,'readaerosol ', TRIM(varname)
     342          IF ( nf90_inq_varid(ncid, TRIM(varname), varid) /= NF90_NOERR ) THEN
     343            ! Variable is not there
     344            WRITE(lunout,*) 'Attention '//TRIM(varname)//' is not in aerosol input file'
     345            varyear(:,:,:,:)=0.0
     346          ELSE
     347            ! Get the variable
     348            CALL check_err( nf90_get_var(ncid, varid, varyear(:,:,:,:)),"pb get var "//TRIM(varname) )
     349          ENDIF
    344350         
    345351! ++) Read surface pression, 12 month in one variable
     
    353359!****************************************************************************************
    354360          ! Get variable id
    355           CALL check_err( nf90_inq_varid(ncid, "load_"//TRIM(varname), varid) ,"pb inq var load_"//TRIM(varname))
    356           ! Get the variable
    357           CALL check_err( nf90_get_var(ncid, varid, load_glo2D),"pb get var load_"//TRIM(varname) )
     361          !CALL check_err( nf90_inq_varid(ncid, "load_"//TRIM(varname), varid) ,"pb inq var load_"//TRIM(varname))
     362          IF ( nf90_inq_varid(ncid, "load_"//TRIM(varname), varid) /= NF90_NOERR ) THEN
     363            WRITE(lunout,*) 'Attention load_'//TRIM(varname)//' is not in aerosol input file'
     364            load_glo2D(:,:,:)=0.0
     365          ELSE
     366            ! Get the variable
     367            CALL check_err( nf90_get_var(ncid, varid, load_glo2D),"pb get var load_"//TRIM(varname) )
     368          ENDIF
    358369         
    359370! ++) Read ap
Note: See TracChangeset for help on using the changeset viewer.