readgrid subroutine

Reads NetCDF files.

How to use

subroutine readgrid(ifile, idata)
Parameters:
Return:
  • idata :: map structure with readed fields.
  • fields :: structure fields. See Structure Fields.
Call :

readgrid(ifile,idata)

[1](1, 2) Defined by user

[Code example] Read data from NetCDF

Read a dataset.

program main
  use fpl
  implicit none

  !Database download from UNIDATA:
  !                               file: test_echam_spectral.nc
  !                               http://www.unidata.ucar.edu/software/netcdf/examples/files.html                  

  !Set float datatype 3d dataset with, longitude and latitude and time in double datatype  

  type(nc3d_float_lld_td) :: spectral

  !Input and Output declarations
  character(200) :: inputpath

  inputpath = "database/test_echam_spectral.nc"

  !Set necessary parameters for read the data
  spectral%varname = "albedo_nir"
  spectral%timename = "time"
  spectral%lonname = "lon"
  spectral%latname = "lat"

  !Call function to read the data (readgrid(input_data_path, defined_data_structure))
  call readgrid(inputpath, spectral)
  
  write(*,*) "====== Dataset Information ======="
  write(*,*) "=================================="
  
  !Get data information using pointer to structures
  write(*,100) "  varname: ", spectral%varname  
  write(*,100) " varunits: ", spectral%varunits
  
  write(*,100) "  lonname: ", spectral%lonname 
  write(*,101) "    nlons: ", spectral%nlons
  write(*,100) " lonunits: ", spectral%lonunits

  write(*,100) "  latname: ", spectral%latname
  write(*,101) "    nlats: ", spectral%nlats
  write(*,100) " latunits: ", spectral%latunits

  write(*,100) " timename: ", spectral%timename  
  write(*,101) "   ntimes: ", spectral%ntimes
  write(*,100) "timeunits: ", spectral%timeunits

100 format(2a12)
101 format(a12,i3)

end program main
#RedHat based systems
gfortran -o readgrid.out readgrid.f90 -I/usr/lib64/gfortran/modules/ -lFPL

#Debian based systems
gfortran -o readgrid.out readgrid.f90 -I/usr/include/ -lFPL

Important

-I<dir> This option specifies where to put .mod files for compiled modules. It is also added to the list of directories to Influencing the linking step. See the GNU Fortran Compiler Documentation .

<dir> is defined in Makefile as $(FPL_moddir). See Build Library.

After compilation run the program ./readgrid.out