- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear sir,
Thanks for the reply. Now the problem has been solved as some declaration issue with some variables including nlev.
Thanks again.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page