2 SUBROUTINE read_dimlen(KLUOUT,HFILE,HVAR,KDIM,KDIMLEN)
16 INTEGER,
INTENT(IN) :: KLUOUT
17 CHARACTER(LEN=*),
INTENT(IN) :: HFILE
18 CHARACTER(LEN=*),
INTENT(IN) :: HVAR
19 INTEGER,
INTENT(IN) :: KDIM
20 INTEGER,
DIMENSION(KDIM),
INTENT(OUT) :: KDIMLEN
24 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDIMIDS
26 CHARACTER(LEN=NF90_MAX_NAME) :: YFNAME
27 CHARACTER(LEN=NF90_MAX_NAME) :: YVAR
36 REAL(KIND=JPRB) :: ZHOOK_HANDLE
41 yfname = hfile(1:len_trim(hfile))
42 yvar = hvar(1:len_trim(hvar))
44 iret=nf90_open(yfname,nf90_nowrite,ifile_id)
45 IF(iret/=nf90_noerr)
THEN 46 WRITE(kluout,*)
'READ_DIMLEN : error in NF90_OPEN' 47 CALL abort_trip(
'READ_DIMLEN : error in NF90_OPEN')
50 iret=nf90_inq_varid(ifile_id,yvar,ivar_id)
51 IF(iret/=nf90_noerr)
THEN 52 WRITE(kluout,*)
'READ_DIMLEN : error in NF90_INQ_VARID' 53 CALL abort_trip(
'READ_DIMLEN : error in NF90_INQ_VARID')
56 iret=nf90_inquire_variable(ifile_id,ivar_id,ndims=indims)
57 IF(iret/=nf90_noerr)
THEN 58 WRITE(kluout,*)
'READ_DIMLEN : error in NF90_INQ_VARNDIMS' 59 CALL abort_trip(
'READ_DIMLEN : error in NF90_INQ_VARNDIMS')
63 WRITE(kluout,*)
'READ_DIMLEN from TRIP_CONF90_FRC :' 64 WRITE(kluout,*)
'Size read (',indims,
') /= size expected (',kdim,
')' 65 CALL abort_trip(
'READ_DIMLEN : sizes not good')
68 ALLOCATE(idimids(kdim))
70 iret=nf90_inquire_variable(ifile_id,ivar_id,dimids=idimids(1:indims))
71 IF(iret/=nf90_noerr)
THEN 72 WRITE(kluout,*)
'READ_DIMLEN : error in NF90_INQ_VARDIMID' 73 CALL abort_trip(
'READ_DIMLEN : error in NF90_INQ_VARDIMID')
77 iret=nf90_inquire_dimension(ifile_id,idimids(jdim),len=kdimlen(jdim))
78 IF(iret/=nf90_noerr)
THEN 79 WRITE(kluout,*)
'READ_DIMLEN : error in NF90_INQ_DIMLEN for dimension ',jdim
80 CALL abort_trip(
'READ_DIMLEN : error in NF90_INQ_DIMLEN')
84 iret=nf90_close(ifile_id)
85 IF(iret/=nf90_noerr)
THEN 86 WRITE(kluout,*)
'READ_DIMLEN : error in NF90_CLOSE' 87 CALL abort_trip(
'READ_DIMLEN : error in NF90_CLOSE')
subroutine read_dimlen(KLUOUT, HFILE, HVAR, KDIM, KDIMLEN)
subroutine abort_trip(YTEXT)