Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

gen_domain.F90 make error:macro names must be identifiers

XinYan

Xin Yan
New Member
When I try to get a executable gen_domain file, I entered into following directory and type "make":
$CIMEROOT/tools/mapping/gen_domain_files/src
error.png

So I try to make a macro.make file by typing:
./configure --macros-format Makefile --mpilib mpi-serial
and it still displays the error: macro names must be identifires.

My real netcdf path is /home/user/netcdf-gnu.
I think maybe my environmental variables are wrong, can somebody help me solve this problem? Thank you very much!
 

erik

Erik Kluzek
CSEG and Liaisons
Staff member
OK, I'm a little confused with what you've presented, because the content of the block of what you did, doesn't show the results of the configure command, and only a few attempts at running make, before the configure command was called.

I just ran the following steps for the latest CLM5.0 release branch version on cheyenne under TCSHELL and this is what I got...

../../../configure --macros-format Makefile --mpilib mpi-serial
Setting resource.RLIMIT_STACK to -1 from (307200000, -1)
gen_domain_files/src> source ./.env_mach_specific.csh ; gmake
ifort -c -DFORTRANUNDERSCORE -DCPRINTEL -DLINUX -DOPT -qno-opt-dynamic-align -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source -qopt-report -xCORE_AVX2 -no-fma -O2 -debug minimal -I/glade/u/apps/ch/opt/netcdf/4.5.0/intel/17.0.1//include -I/glade/u/apps/ch/opt/netcdf/4.5.0/intel/17.0.1//include gen_domain.F90
ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
ifort -o ../gen_domain gen_domain.o -mkl

Note:

  • You have to call the configure command that's under the cime/tools directory.
  • You have to source the hidden env_mach_specific script that's appropriate for your shell (how this is done is different for Bourne shells)
  • The make version you use needs to be a GNU make version
  • For an unknown machine you'll need to specify the --machine and --compiler options to the configure command
  • Use the --help to ../../../configure to get some help on it's usage
For the case of getting this to work on a machine that isn't a supported machine for cime -- you'll have to port to that machine first. There are instructions in cime for how to do that.

You can get the list of supported machines by doing this...

../../../../scripts/query_config --machines
 

harryterpee

Yin
New Member
When I try to get a executable gen_domain file, I entered into following directory and type "make":
$CIMEROOT/tools/mapping/gen_domain_files/src
View attachment 1720

So I try to make a macro.make file by typing:
./configure --macros-format Makefile --mpilib mpi-serial
and it still displays the error: macro names must be identifires.

My real netcdf path is /home/user/netcdf-gnu.
I think maybe my environmental variables are wrong, can somebody help me solve this problem? Thank you very much!
Hi Xin, I also meet the same question. Have you fixed it and how?
 
Top