Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28543 Discussions

error #6592: This symbol must be a defined parameter, an enumerator, or an argument of an inquiry f

harshal05
Beginner
2,136 Views

Hello, 

 

I am installing letkf-gfs application while compilling fortran code ./obs_gfs_ext.f90(10) is not able to take the nlev value from the defined fortran code  which is using in ./obs_gfs_ext.f90. Getting such kind of error......

 

./obs_gfs_ext.f90(10): error #6592: This symbol must be a defined parameter, an enumerator, or an argument of an inquiry function that evto a compile-time constant. [NLEV]
integer, parameter :: nlevx = nlev + nlevl
--------------------------------^
compilation aborted for ./obs_gfs_ext.f90 (code 1)
Makefile.superob:118: recipe for target 'obs_gfs_ext.o' failed
make[2]: *** [obs_gfs_ext.o] Error 1
make[2]: Leaving directory '/home/SSPMRES/buddhi/Buddhi/CDA/pratyush_support/CFS_LETKF_SCDA/letkf-gfs/util/src/superob'
Makefile:5: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/SSPMRES/buddhi/Buddhi/CDA/pratyush_support/CFS_LETKF_SCDA/letkf-gfs/util/src/superob'
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 2

 

OS : SUSE Linux

Intel Compiler : intel/16.0.3.210

XC40 CRAY 

 

If you get the point, please help in this issue.

 

 

 

 

0 Kudos
4 Replies
Ron_Green
Moderator
2,108 Views

That is a very old compiler, on a fairly new Cray.  Why are you using such an old compiler?  It could be a compiler bug and that compiler dropped out of support years ago.  Just because some application says to use a v16 compiler does not mean it will ONLY work with that compiler.  Use a newer compiler.  If it persists with the 2021 or 2022 compiler then we'll have to see how 'nlev' is declared.  And we'll need the source code.

0 Kudos
harshal05
Beginner
2,040 Views

Dear sir, 

 

Thanks for your reply. But the same source is compiled with intel v2014 compiler and I'm trying with v[16,17,18,19] but all the mentioned version after using I'm getting the same issue of the "nlev" variable. 

Source code : https://github.com/UMD-AOSC/CFSv2-LETKF

You can see the source code of the CFS-letkf (in that letkf-gfs/util/src/superob/obs_gfs_ext.f90).

 

Thanks 

0 Kudos
Arjen_Markus
Honored Contributor I
2,027 Views

Well, a quick search in the source code revealed:

  • nlev is an integer variable defined in common_gfs
  • it is imported into the module in obs_gfs_ext.f90 via the module common_obs_gfs
  • since nlev is a variable and not a parameter, you cannot use it in the way found in obs_gfs_ext.f90

The compiler is quite right to complain. Change the definition of nlev so it becomes an integer parameter instead. (I have not checked if it is changed anywhere, but the compiler will complain about that as well.)

0 Kudos
harshal05
Beginner
1,964 Views

Dear sir,

Thanks for the reply. Now the problem has been solved as some declaration issue with some variables including nlev.

Thanks again.

0 Kudos
Reply