Re: exceeding max. number of INPUT-variables
From: mark.e.sale@gsk.com
Subject: Re: [NMusers] exceeding max. number of INPUT-variables
Date: Wed, 24 Aug 2005 10:55:58 -0400
Markus,
You're right, there are a number of error in the Fortran source. It may not be realistic to get
this running without some Fortran expertise. But, the errors include:
1. No continuation line (non-blank character in column 6) for this code (and others)
READ(77,*) TID(I),TCOV(I,1), TCOV(I,2), TCOV(I,3), TCOV(I,4),
TCOV(I,5), TCOV(I,6), TCOV(I,7), TCOV(I,8), TCOV(I,9),
TCOV(I,10), TCOV(I,11), TCOV(I,12), TCOV(I,13), TCOV(I,14),
TCOV(I,15), TCOV(I,16)
Fortran lines must be <=72 columns, if you need continutation lines, you must use the continuation
character in column 6 of the next line.
the line numbers seem to have gotten messed up (likely by the various email servers) in
11 CONTINUE
the 11 needs to go in columns 1 -5, the CONTINUE starting in 7
You also have a number of tab characters in the file, which is not permitted in Fortran.
Finally, the code in the control file
" COMMON/PRCOMG/IDUM1,IDUM2,IMAX,IDUM4,IDUM5
" INTEGER IDUM1,IDUM2,IMAX,IDUM4,IDUM5
" IMAX=1000000
is not related to reading in the data, it is to increase the number of steps permitted by the ODE solver.
Below is an editted Get_subs.for, this compiles, don't know if it is correct. I also suspect that you'll have problems with long
lines in your verbatim code in the control file. Note in the code below the "1"s need to be in column 6 and
the "11" and "12" need to be in columns 1 to 5. Code needs to start in Column 7, the email servers may change this. Tabs
are not permitted.
SUBROUTINE READER()
COMMON /READ/ TID,TCOV
REAL TID(139),TCOV(139,15)
OPEN(UNIT = 77,FILE = 'DATA.PRN')
REWIND 77
DO 11,I = 1,139
READ(77,*) TID(I),TCOV(I,1), TCOV(I,2), TCOV(I,3), TCOV(I,4),
1 TCOV(I,5), TCOV(I,6), TCOV(I,7), TCOV(I,8), TCOV(I,9),
1 TCOV(I,10), TCOV(I,11), TCOV(I,12), TCOV(I,13), TCOV(I,14),
1 TCOV(I,15), TCOV(I,16)
11 CONTINUE
END
SUBROUTINE GET_SUB(NEWIND,ID,CURID,COV1,COV2,COV3,COV4,COV5,
1 COV6,COV7,COV8,COV9,COV10,COV11,COV12,COV13,COV14,COV15,
1 COV16,MID)
COMMON /READ/ TID,TCOV
REAL ID,CURID,COV1,COV2,COV3,COV4,COV5,COV6,COV7,COV8,COV9,
1 COV10,COV11,COV12,COV13,COV14,COV15,COV16,MID
INTEGER NEWIND
REAL TID(139),TCOV(139,15)
IF (NEWIND.EQ.1) THEN
CURID=1
12 CONTINUE
IF(ID.GT.TID(CURID)) THEN
CURID =CURID + 1
GOTO 12
END IF
ELSEIF(NEWIND.EQ.0) THEN
CURID = 1
END IF
COV1 = TCOV(CURID,1)
COV2 = TCOV(CURID,2)
COV3 = TCOV(CURID,3)
COV4 = TCOV(CURID,4)
COV5 = TCOV(CURID,5)
COV6 = TCOV(CURID,6)
COV7 = TCOV(CURID,7)
COV8 = TCOV(CURID,8)
COV9 = TCOV(CURID,9)
COV10 = TCOV(CURID,10)
COV11 = TCOV(CURID,11)
COV12 = TCOV(CURID,12)
COV13 = TCOV(CURID,13)
COV14 = TCOV(CURID,14)
COV15 = TCOV(CURID,15)
COV16 = TCOV(CURID,16)
MID = TID(CURID)
END
Mark Sale M.D.
Global Director, Research Modeling and Simulation
GlaxoSmithKline
919-483-1808
Mobile
919-522-6668