ncfile_get_var_ndims Function

public function ncfile_get_var_ndims(sf, varname_in) result(ndims_out)

get the number of dimensions of a variable

Type Bound

t_ncfile

Arguments

Type IntentOptional Attributes Name
class(t_ncfile), intent(inout) :: sf

self

character(len=*), intent(in) :: varname_in

name of the variable (can include "/" for groups)

Return Value integer


Calls

proc~~ncfile_get_var_ndims~~CallsGraph proc~ncfile_get_var_ndims t_ncfile%ncfile_get_var_ndims nf90_inq_varid nf90_inq_varid proc~ncfile_get_var_ndims->nf90_inq_varid nf90_inquire_variable nf90_inquire_variable proc~ncfile_get_var_ndims->nf90_inquire_variable proc~mpi_check_single_access mpi_check_single_access proc~ncfile_get_var_ndims->proc~mpi_check_single_access proc~ncfile_enter_groups t_ncfile%ncfile_enter_groups proc~ncfile_get_var_ndims->proc~ncfile_enter_groups proc~ncfile_handle_error t_ncfile%ncfile_handle_error proc~ncfile_get_var_ndims->proc~ncfile_handle_error proc~ncfile_enter_groups->proc~mpi_check_single_access nf90_inq_ncid nf90_inq_ncid proc~ncfile_enter_groups->nf90_inq_ncid proc~ncfile_openfile t_ncfile%ncfile_openfile proc~ncfile_enter_groups->proc~ncfile_openfile proc~ncfile_handle_error->proc~mpi_check_single_access nf90_strerror nf90_strerror proc~ncfile_handle_error->nf90_strerror proc~ncfile_openfile->proc~mpi_check_single_access proc~ncfile_openfile->proc~ncfile_handle_error nf90_create nf90_create proc~ncfile_openfile->nf90_create nf90_open nf90_open proc~ncfile_openfile->nf90_open

Source Code

  FUNCTION ncfile_get_var_ndims(sf,varname_in) RESULT(ndims_out)
    ! MODULES
    IMPLICIT NONE
    !-------------------------------------------------------------------------------------------------------------------------------
    ! INPUT VARIABLES
    CHARACTER(LEN=*),INTENT(IN) :: varname_in !! name of the variable (can include "/" for groups)
    !-------------------------------------------------------------------------------------------------------------------------------
    ! OUTPUT VARIABLES
    CLASS(t_ncfile),INTENT(INOUT)        :: sf !! self
    INTEGER                              :: ndims_out !0: scalar, 1: vector, 2: matrix...
    !-------------------------------------------------------------------------------------------------------------------------------
    ! LOCAL VARIABLES
    CHARACTER(LEN=255) :: varname
    INTEGER :: grpid,varid
    LOGICAL :: exists
    !===============================================================================================================================
    CALL mpi_check_single_access()
    CALL sf%enter_groups(varname_in,grpid,varname,exists)
#if NETCDF
    IF(.NOT.exists) CALL sf%handle_error("finding group in '"//TRIM(varname_in)//"'")
    sf%ioError = nf90_INQ_VARID(grpid, TRIM(varname), varid)
    CALL sf%handle_error("finding of variable '"//TRIM(varname_in)//"'")
    sf%ioError = nf90_inquire_variable(grpid,  varid, ndims=ndims_out)
    CALL sf%handle_error("finding ndims of variable '"//TRIM(varname_in)//"'")
#endif /*NETCDF*/
  END FUNCTION ncfile_get_var_ndims