SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
get_dimlen_netcdf.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE get_dimlen_netcdf(HFILE_NAME,HDIM_NAME,KDIM,KDIM_ID)
7 !
8 !
9 USE yomhook ,ONLY : lhook, dr_hook
10 USE parkind1 ,ONLY : jprb
11 !
12 USE modi_handle_err
13 IMPLICIT NONE
14 include "netcdf.inc"
15  CHARACTER(LEN=*), INTENT(IN):: hfile_name
16  CHARACTER(LEN=*), INTENT(IN):: hdim_name
17 INTEGER, INTENT(OUT) :: kdim
18 INTEGER, OPTIONAL,INTENT(OUT) :: kdim_id
19 
20 !local variables
21 INTEGER :: jret,ifile_id,idim_id
22 INTEGER,DIMENSION(2) :: iret
23 REAL(KIND=JPRB) :: zhook_handle
24 !----------------------------------
25 ! 1.a Open file
26 IF (lhook) CALL dr_hook('GET_DIMLEN_NETCDF',0,zhook_handle)
27 jret=nf_open(hfile_name,nf_nowrite,ifile_id)
28 !
29 ! 1.b get dim info
30 iret(1)=nf_inq_dimid(ifile_id,hdim_name,idim_id)
31 IF (present(kdim_id)) THEN
32  kdim_id=idim_id
33 ENDIF
34 iret(2)=nf_inq_dimlen(ifile_id,idim_id,kdim)
35 
36 ! 1.c close file
37 jret=nf_close(ifile_id)
38 !
39 ! 2. check for error
40 DO jret=1,2
41  IF (iret(jret).NE.nf_noerr) CALL handle_err(iret(jret),'GET_DIMLEN_NETCDF')
42 ENDDO
43 IF (lhook) CALL dr_hook('GET_DIMLEN_NETCDF',1,zhook_handle)
44 !
45 END SUBROUTINE get_dimlen_netcdf
subroutine handle_err(IRET, HNAME)
Definition: handle_err.F90:6
subroutine get_dimlen_netcdf(HFILE_NAME, HDIM_NAME, KDIM, KDIM_ID)