Topic: Variable is not declared or conflicts
This may be too long a question. But here goes.
I’m compiling a project in Windows called ModTran3 with 10 *.f files and am constructing a missing include file called “parameter.list”. Here is the beginning of the 5th file called “f-MT3a-driver.server.f”. Note the variable NSPEC at the end of line = driv 130.
SUBROUTINE DRIVER driv 100
include 'parameter.list'
COMMON RELHUM(laydim),HSTOR(laydim),ICH(4),VH(17),TX(65),W(65) driv 110
COMMON IMSMX,WPATH(laythr,65),TBBY(laythr),PATM(laythr),NSPEC, driv 130
x KPOINT(12),ABSC(5,47),EXTC(5,47),ASYM(5,47),VX2(47),AWCCON(5) driv 140
In parameter.list, I tried 4 options concerning NSPEC. None of them work.
c1 ! Do Nothing
c2 parameter(nspec=12)
c3 nspec=12
c4 integer nspec/12/
c Some computations using nspec
PARAMETER(NSPECX=13, NSPECT=NSPEC+NSPECX)
PARAMETER(NSPEC2=2*NSPEC, NSPECX2=2*NSPECX, NSPECT2=2*NSPECT)
c End of parameter.list
----------------------------------
Option c1 (i.e., do nothing) gives this error:
Compiling .\f-MT3a-dpdisort.f
parameter.list:15:34:
PARAMETER(NSPECX=13, NSPECT=NSPEC+NSPECX)
1
Error: Parameter 'nspec' at (1) has not been declared or is a variable, which does not reduce to a constant expression
parameter.list:16:30:
Option c2 gives this error:
Compiling .\f-MT3a-driver.server.f
.\f-MT3a-driver.server.f:4:67:
COMMON IMSMX,WPATH(laythr,65),TBBY(laythr),PATM(laythr),NSPEC, driv 130
1
Error: PARAMETER attribute conflicts with COMMON attribute in 'nspec' at (1)
Option c3 gives this error:
Compiling .\f-MT3a-dpdisort.f
parameter.list:16:34:
PARAMETER(NSPECX=13, NSPECT=NSPEC+NSPECX)
1
Error: Parameter 'nspec' at (1) has not been declared or is a variable, which does not reduce to a constant expression
parameter.list:17:30:
Option c4 gives this error:
Compiling .\f-MT3a-dpdisort.f
parameter.list:16:34:
PARAMETER(NSPECX=13, NSPECT=NSPEC+NSPECX)
1
Error: Parameter 'nspec' at (1) has not been declared or is a variable, which does not reduce to a constant expression
parameter.list:17:30:
Any help?