Files
GEOS-Chem-adjoint-v35-note/code/NcdfUtil/m_netcdf_io_checks.F90
2018-08-28 00:38:52 -04:00

140 lines
2.8 KiB
Fortran

! $Id: m_netcdf_io_checks.F90,v 1.1 2009/08/04 14:52:04 bmy Exp $
!-------------------------------------------------------------------------
! NASA/GFSC, SIVO, Code 610.3
!-------------------------------------------------------------------------
!BOP
!
! !MODULE: m_netcdf_io_checks
!
! !INTERFACE:
!
module m_netcdf_io_checks
!
implicit none
!
! !PUBLIC MEMBER FUNCTIONS:
!
public Ncdoes_Udim_Exist
public Ncdoes_Var_Exist
!
! !DESCRIPTION: Routines to check if a netCDF file contains a specified
! variable.
!\\
!\\
! !AUTHOR:
! Jules Kouatchou
!
! !REVISION HISTORY:
! Initial code.
!
!EOP
!-------------------------------------------------------------------------
CONTAINS
!-------------------------------------------------------------------------
!BOP
!
! !FUNCTION: Ncdoes_Udim_Exist
!
! !INTERFACE:
!
function Ncdoes_Udim_Exist (ncid)
!
implicit none
!
include "netcdf.inc"
!
! !INPUT PARAMETERS:
!! ncid : netCDF file id to check
integer, intent (in) :: ncid
!
! !DESCRIPTION: Checks a given netCDF file to see if it contains an
! unlimited dimension.
!\\
!\\
! !RETURN VALUE:
logical :: Ncdoes_Udim_Exist
!
! !AUTHOR:
! John Tannahill (LLNL) and Jules Kouatchou
!
! !REVISION HISTORY:
! Initial code.
!
!EOP
!-------------------------------------------------------------------------
!BOC
!
! !LOCAL VARIABLES:
integer :: ierr
integer :: udimid
!
ierr = Nf_Inq_Unlimdim (ncid, udimid)
if (ierr == NF_NOERR) then
Ncdoes_Udim_Exist = .true.
else
Ncdoes_Udim_Exist = .false.
end if
return
end function Ncdoes_Udim_Exist
!EOC
!-------------------------------------------------------------------------
!BOP
!
! !FUNCTION: Ncdoes_Var_Exist
!
! !INTERFACE:
!
function Ncdoes_Var_Exist (ncid, varname)
!
implicit none
!
include "netcdf.inc"
!
! !INPUT PARAMETERS:
!! ncid : netCDF file id to check
!! varname : netCDF variable name to check
integer, intent (in) :: ncid
character (len=*), intent (in) :: varname
!
! !DESCRIPTION: Checks a given netCDF file to see if a given netCDF variable
! exists in it.
!\\
!\\
! !RETURN VALUE:
logical :: Ncdoes_Var_Exist
!
! !AUTHOR:
! John Tannahill (LLNL) and Jules Kouatchou
!
! !REVISION HISTORY:
! Initial code.
!
!EOP
!-------------------------------------------------------------------------
!BOC
!
! !LOCAL VARIABLES:
integer :: ierr
integer :: varid
!
ierr = Nf_Inq_Varid (ncid, varname, varid)
if (ierr == NF_NOERR) then
Ncdoes_Var_Exist = .true.
else
Ncdoes_Var_Exist = .false.
end if
return
end function Ncdoes_Var_Exist
!EOC
!------------------------------------------------------------------------
end module m_netcdf_io_checks