SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GET_DIMLEN_NETCDF(HFILE_NAME,HDIM_NAME,KDIM,KDIM_ID) 00003 ! 00004 ! 00005 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00006 USE PARKIND1 ,ONLY : JPRB 00007 ! 00008 USE MODI_HANDLE_ERR 00009 IMPLICIT NONE 00010 INCLUDE "netcdf.inc" 00011 CHARACTER(LEN=*), INTENT(IN):: HFILE_NAME 00012 CHARACTER(LEN=*), INTENT(IN):: HDIM_NAME 00013 INTEGER, INTENT(OUT) :: KDIM 00014 INTEGER, OPTIONAL,INTENT(OUT) :: KDIM_ID 00015 00016 !local variables 00017 INTEGER :: JRET,IFILE_ID,IDIM_ID 00018 INTEGER,DIMENSION(2) :: IRET 00019 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00020 !---------------------------------- 00021 ! 1.a Open file 00022 IF (LHOOK) CALL DR_HOOK('GET_DIMLEN_NETCDF',0,ZHOOK_HANDLE) 00023 JRET=NF_OPEN(HFILE_NAME,NF_NOWRITE,IFILE_ID) 00024 ! 00025 ! 1.b get dim info 00026 IRET(1)=NF_INQ_DIMID(IFILE_ID,HDIM_NAME,IDIM_ID) 00027 IF (PRESENT(KDIM_ID)) THEN 00028 KDIM_ID=IDIM_ID 00029 ENDIF 00030 IRET(2)=NF_INQ_DIMLEN(IFILE_ID,IDIM_ID,KDIM) 00031 00032 ! 1.c close file 00033 JRET=NF_CLOSE(IFILE_ID) 00034 ! 00035 ! 2. check for error 00036 DO JRET=1,2 00037 IF (IRET(JRET).NE.NF_NOERR) CALL HANDLE_ERR(IRET(JRET),'GET_DIMLEN_NETCDF') 00038 ENDDO 00039 IF (LHOOK) CALL DR_HOOK('GET_DIMLEN_NETCDF',1,ZHOOK_HANDLE) 00040 ! 00041 END SUBROUTINE GET_DIMLEN_NETCDF