Add files via upload
This commit is contained in:
159
code/NcdfUtil/m_netcdf_io_get_dimlen.F90
Normal file
159
code/NcdfUtil/m_netcdf_io_get_dimlen.F90
Normal file
@ -0,0 +1,159 @@
|
||||
! $Id: m_netcdf_io_get_dimlen.F90,v 1.1 2009/08/04 14:52:04 bmy Exp $
|
||||
!-------------------------------------------------------------------------
|
||||
! NASA/GFSC, SIVO, Code 610.3
|
||||
!-------------------------------------------------------------------------
|
||||
!BOP
|
||||
!
|
||||
! !MODULE: m_netcdf_io_get_dimlen
|
||||
!
|
||||
! !INTERFACE:
|
||||
!
|
||||
module m_netcdf_io_get_dimlen
|
||||
!
|
||||
implicit none
|
||||
!
|
||||
! !PUBLIC MEMBER FUNCTIONS:
|
||||
!
|
||||
public Ncget_Dimlen
|
||||
public Ncget_Unlim_Dimlen
|
||||
!
|
||||
! !DESCRIPTION: Provides routines to obtain the length of a given dimension.
|
||||
!\\
|
||||
!\\
|
||||
! !AUTHOR:
|
||||
! Jules Kouatchou
|
||||
!
|
||||
! !REVISION HISTORY:
|
||||
! Initial code.
|
||||
!
|
||||
!EOP
|
||||
!-------------------------------------------------------------------------
|
||||
|
||||
CONTAINS
|
||||
|
||||
!-------------------------------------------------------------------------
|
||||
!BOP
|
||||
!
|
||||
! !IROUTINE: Ncget_Dimlen
|
||||
!
|
||||
! !INTERFACE:
|
||||
!
|
||||
subroutine Ncget_Dimlen (ncid, dim_name, dim_len)
|
||||
!
|
||||
! !USES:
|
||||
!
|
||||
use m_do_err_out
|
||||
!
|
||||
implicit none
|
||||
!
|
||||
include 'netcdf.inc'
|
||||
!
|
||||
! !INPUT PARAMETERS:
|
||||
!! dim_name : netCDF dimension name
|
||||
!! ncid : netCDF file id
|
||||
character (len=*), intent(in) :: dim_name
|
||||
integer, intent(in) :: ncid
|
||||
!
|
||||
! !OUTPUT PARAMETERS:
|
||||
!! dim_len: netCDF dimension length
|
||||
integer, intent(out) :: dim_len
|
||||
!
|
||||
! !DESCRIPTION: Returns the length of a given netCDF dimension.
|
||||
!\\
|
||||
!\\
|
||||
! !AUTHOR:
|
||||
! John Tannahill (LLNL) and Jules Kouatchou
|
||||
!
|
||||
! !REVISION HISTORY:
|
||||
! Initial code.
|
||||
!
|
||||
!EOP
|
||||
!-------------------------------------------------------------------------
|
||||
!BOC
|
||||
!
|
||||
! !LOCAL VARIABLES:
|
||||
character (len=128) :: err_msg
|
||||
integer :: dimid
|
||||
integer :: ierr
|
||||
!
|
||||
ierr = Nf_Inq_Dimid (ncid, dim_name, dimid)
|
||||
|
||||
if (ierr /= NF_NOERR) then
|
||||
err_msg = 'In Ncget_Dimlen #1: ' // Trim (dim_name) // &
|
||||
', ' // Nf_Strerror (ierr)
|
||||
call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0)
|
||||
end if
|
||||
|
||||
ierr = Nf_Inq_Dimlen (ncid, dimid, dim_len)
|
||||
|
||||
if (ierr /= NF_NOERR) then
|
||||
err_msg = 'In Ncget_Dimlen #2: ' // Nf_Strerror (ierr)
|
||||
call Do_Err_Out (err_msg, .true., 2, ncid, dimid, 0, 0.0d0, 0.0d0)
|
||||
end if
|
||||
|
||||
return
|
||||
end subroutine Ncget_Dimlen
|
||||
!EOC
|
||||
!-------------------------------------------------------------------------
|
||||
!BOP
|
||||
!
|
||||
! !IROUTINE: Ncget_Unlim_Dimlen
|
||||
!
|
||||
! !INTERFACE:
|
||||
!
|
||||
subroutine Ncget_Unlim_Dimlen (ncid, udim_len)
|
||||
!
|
||||
! !USES:
|
||||
!
|
||||
use m_do_err_out
|
||||
!
|
||||
implicit none
|
||||
!
|
||||
include 'netcdf.inc'
|
||||
!
|
||||
! !INPUT PARAMETERS:
|
||||
!! ncid : netCDF file id
|
||||
integer, intent(in) :: ncid
|
||||
!
|
||||
! !OUTPUT PARAMETERS:
|
||||
!! udim_len : netCDF unlimited dimension length
|
||||
integer, intent(out) :: udim_len
|
||||
!
|
||||
! !DESCRIPTION: Returns the length of the unlimited netCDF dimension.
|
||||
!\\
|
||||
!\\
|
||||
! !AUTHOR:
|
||||
! John Tannahill (LLNL) and Jules Kouatchou
|
||||
!
|
||||
! !REVISION HISTORY:
|
||||
! Initial code.
|
||||
!
|
||||
!EOP
|
||||
!-------------------------------------------------------------------------
|
||||
!BOC
|
||||
!
|
||||
! !LOCAL VARIABLES:
|
||||
character (len=128) :: err_msg
|
||||
integer :: ierr
|
||||
integer :: udimid
|
||||
!
|
||||
ierr = Nf_Inq_Unlimdim (ncid, udimid)
|
||||
|
||||
if (ierr /= NF_NOERR) then
|
||||
err_msg = 'In Ncget_Unlim_Dimlen #1: ' // Nf_Strerror (ierr)
|
||||
call Do_Err_Out (err_msg, .true., 1, ncid, 0, 0, 0.0d0, 0.0d0)
|
||||
end if
|
||||
|
||||
ierr = Nf_Inq_Dimlen (ncid, udimid, udim_len)
|
||||
|
||||
if (ierr /= NF_NOERR) then
|
||||
err_msg = 'In Ncget_Unlim_Dimlen #2: ' // Nf_Strerror (ierr)
|
||||
call Do_Err_Out (err_msg, .true., 2, ncid, udimid, 0, 0.0d0, 0.0d0)
|
||||
end if
|
||||
|
||||
return
|
||||
|
||||
end subroutine Ncget_Unlim_Dimlen
|
||||
!EOC
|
||||
!------------------------------------------------------------------------
|
||||
end module m_netcdf_io_get_dimlen
|
Reference in New Issue
Block a user