2 SUBROUTINE fm_read(HFILEM,HRECFM,HFIPRI,KLENG,KFIELD,KGRID,&
75 INTEGER,
INTENT(IN) ::KLENG
77 INTEGER(KIND=8),
DIMENSION(1:KLENG),
INTENT(OUT)::KFIELD
79 INTEGER,
INTENT(OUT)::KGRID
80 INTEGER,
INTENT(OUT)::KLENCH
84 INTEGER,
INTENT(OUT)::KRESP
89 INTEGER::IRESP,ILENGA,IPOSEX,ITOTAL,INUMBR,J,IROW,IFMFNL,ILUPRI
90 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE::IWORK,IWORKNEW
91 INTEGER,
DIMENSION(1:JPXKRK)::ICOMMENT
94 INTEGER :: DATASIZE,ITYPCOD,NEWSIZE
105 REAL(KIND=JPRB) :: ZHOOK_HANDLE
107 iresp = 0 ; irow = 0 ; ilupri = 6
115 ELSEIF (irow.GT.ifmfnl)
THEN 119 yintfn=adjustr(hfilem)
120 yfnlfi=yintfn//
'.lfi' 121 yfnlfi=adjustl(yfnlfi)
127 IF (iresp.NE.0)
GOTO 1000
138 ELSEIF (ilenga.EQ.0)
THEN 142 ELSEIF (ilenga.GT.
jpxfie)
THEN 151 IF(
ALLOCATED(iwork))
DEALLOCATE(iwork)
152 ALLOCATE(iwork(itotal))
155 IF (iresp.NE.0)
GOTO 1000
162 IF (klench < 0 .OR. klench >
jpxkrk)
THEN 167 datasize=itotal-klench-2
185 IF (kleng > datasize)
THEN 189 kfield(1:kleng)=iwork(klench+3:klench+2+kleng)
197 kfield(1:kleng)=iwork(3:itotal)
199 icomment(1:klench)=iwork(3:klench+2)
201 hcomment(j:j)=char(icomment(j))
217 yfnlfi=adjustl(hfipri)
219 IF (cnamfi(j).EQ.yfnlfi)
THEN 224 WRITE (ilupri,*)
' exit from FMREAD with IRESP:',iresp
226 WRITE (ilupri,*)
' | HRECFM = ',hrecfm
236 IF(
ALLOCATED(iwork))
DEALLOCATE(iwork)
integer, parameter jpfinl
integer, parameter jpnxlu
integer, parameter jpxfie
integer, parameter jpxkrk
subroutine fm_read(HFILEM, HRECFM, HFIPRI, KLENG, KFIELD, KGRID, KLENCH, HCOMMENT, KRESP)