compile ROMS error
-
- Posts: 15
- Joined: Thu Apr 05, 2018 6:34 pm
- Location: Ha Noi University Sience and Technology, Vietnam
compile ROMS error
Hi everyone,i compile ROMS using Ubuntu app,i get trouble:
cd Build; -c -fno-second-underscore -O3 -ffast-math mod_kinds.f90
/bin/sh: 1: -c: not found
ROMS/Modules/Module.mk:15: recipe for target 'Build/mod_kinds.o' failed
make: *** [Build/mod_kinds.o] Error 127
please help me
cd Build; -c -fno-second-underscore -O3 -ffast-math mod_kinds.f90
/bin/sh: 1: -c: not found
ROMS/Modules/Module.mk:15: recipe for target 'Build/mod_kinds.o' failed
make: *** [Build/mod_kinds.o] Error 127
please help me
Re: compile ROMS error
From the flags it appears that you have enabled gfortran but my first guess is that either gfortran is not installed or is not in your path. Most modern Linux distributions have a separate package for the GNU fortran compiler; it no longer comes as part of the gcc package. I believe Ubuntu has many to choose from.
try:
which gfortran
if the full path to your gfortran executable is not returned then you need to install/get gfortran in your path.
Dave
try:
which gfortran
if the full path to your gfortran executable is not returned then you need to install/get gfortran in your path.
Dave
Re: compile ROMS error
I'm new in ROMS. If I'm sure gfortran is installed, which file should I edit to point to the path. Thanks~
Re: compile ROMS error
From the command line, see what "which gfortran" or "which mpif90" give you. That's what the ROMS build system will execute to find the correct path. If it doesn't come up already, you need to change your user path to point there, perhaps in your ~/.bashrc file or similar. On a supercomputer, it might be something like "module load XXX" where on the system here, XXX is "toolchain/foss/2016b" (foss here stands for free and open source software). You might need to ask a local expert on your computer.
Re: compile ROMS error
This is what I've got. Please help me, tks~
ROMS/Bin/cpp_clean /home/njtsai/src/trunk/ROMS/Bin/Build_roms/mod_kinds.f90
cd /home/njtsai/src/trunk/ROMS/Bin/Build_roms; -c -frepack-arrays -O3 -ffast-math mod_kinds.f90
/bin/sh: 1: -c: not found
ROMS/Modules/Module.mk:15: recipe for target '/home/njtsai/src/trunk/ROMS/Bin/Build_roms/mod_kinds.o' failed
make: *** [/home/njtsai/src/trunk/ROMS/Bin/Build_roms/mod_kinds.o] Error 127
ROMS/Bin/cpp_clean /home/njtsai/src/trunk/ROMS/Bin/Build_roms/mod_kinds.f90
cd /home/njtsai/src/trunk/ROMS/Bin/Build_roms; -c -frepack-arrays -O3 -ffast-math mod_kinds.f90
/bin/sh: 1: -c: not found
ROMS/Modules/Module.mk:15: recipe for target '/home/njtsai/src/trunk/ROMS/Bin/Build_roms/mod_kinds.o' failed
make: *** [/home/njtsai/src/trunk/ROMS/Bin/Build_roms/mod_kinds.o] Error 127
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: compile ROMS error
Your problem is that you haven't configured the build_roms.sh and build_roms.bash correctly. For example, notice that in the build_roms.sh script we have:
If you set USE_MY_LIBS it to yes, then you need to modify source code root file Complilers/my_build_paths.sh and edit the appropriate paths for the desired compiler. You need to spend sometime reading and understanding the information provided in the build scripts.
What I recommend to everybody is to have a customized version of these make configuration files in a different directory, say ${HOME}/Compilers/ROMS or any other, to avoid overwriting during svn updates. Notice that in build_roms.sh, we have logic for such strategy:
If after these suggestions you still have problems, you need to seek help from a computer technician at your institution. There is not much that we can do for you neither have the time for messaging you back.
We are in a profession that requires lots of patience and curiosity. All users of ROMS go through the learning phase by themselves slowly by exploring the code and reading the instructions provided in the Wiki. ROMS is not a black box, and some knowledge of the computer environment, Unix, compilers, and ocean modeling is required. There are several examples of ROMS configuration in the test repository. See the ROMA Wiki for more information.
Code: Select all
#--------------------------------------------------------------------------
# If applicable, use my specified library paths.
#--------------------------------------------------------------------------
setenv USE_MY_LIBS no # use system default library paths
#setenv USE_MY_LIBS yes # use my customized library paths
set MY_PATHS = ${COMPILERS}/my_build_paths.sh
if ($USE_MY_LIBS == 'yes') then
source ${MY_PATHS} ${MY_PATHS}
endif
What I recommend to everybody is to have a customized version of these make configuration files in a different directory, say ${HOME}/Compilers/ROMS or any other, to avoid overwriting during svn updates. Notice that in build_roms.sh, we have logic for such strategy:
Code: Select all
# Set path of the directory containing makefile configuration (*.mk) files.
# The user has the option to specify a customized version of these files
# in a different directory than the one distributed with the source code,
# ${MY_ROMS_SRC}/Compilers. If this is the case, you need to keep these
# configurations files up-to-date.
setenv COMPILERS ${MY_ROMS_SRC}/Compilers
#setenv COMPILERS ${HOME}/Compilers/ROMS
We are in a profession that requires lots of patience and curiosity. All users of ROMS go through the learning phase by themselves slowly by exploring the code and reading the instructions provided in the Wiki. ROMS is not a black box, and some knowledge of the computer environment, Unix, compilers, and ocean modeling is required. There are several examples of ROMS configuration in the test repository. See the ROMA Wiki for more information.
Re: compile ROMS error
Hi! I'm new in ROMS and I got several errors while trying to installing it, but I have fixed every one until this last one I got some days ago. It happens while I try to compile ROMS. I have read some other topics but I can't fix it even if I try to follow what you recommended to other people.
I think I get one of the most popular errors, but I can't fix it. It's the one explained in the FAQ section in the wiki.
Followed by many, many messages like this one. But after the first one I get:
(Sorry if it doesn't make sense, but I got the messages in Spanish and I tried to translate them to the way I supposed they are shown in English)
I have copied build_roms.bash and my_build_paths.bash to the Upwelling folder and customized them changing:
and
in the build_roms.bash file.
At the bottom, I get:
I have also changed in the my_build_paths.bash file:
Because that is the place I compile NETCDF (both NetCDF C 4.7.0 and NetCDF Fortran 4.4.5). Finally, I have also modified the CYGWIN-gfortran.mk file to look like:
Do you know if I am missing some step or if I am not doing something in the right way?
Thank you very much for your concern!
Carlos.
I think I get one of the most popular errors, but I can't fix it. It's the one explained in the FAQ section in the wiki.
Code: Select all
/home/keles/roms/Projects/Upwelling/Build_roms/libUTIL.a(close_io.o):close_io.f90:(.text+0x120c): undefined reference to `__netcdf_MOD_nf90_strerror'
Code: Select all
/home/keles/roms/Projects/Upwelling/Build_roms/libUTIL.a(close_io.o):close_io.f90:(.text+0x120c): truncated relocation to adjust: R_X86_64_PC32 against the undefined reference to: `__netcdf_MOD_nf90_strerror'
I have copied build_roms.bash and my_build_paths.bash to the Upwelling folder and customized them changing:
Code: Select all
export COMPILERS=/home/keles/roms/Projects/Upwelling
Code: Select all
#export USE_MY_LIBS=no # use system default library paths
export USE_MY_LIBS=yes # use my customized library paths
MY_PATHS=${COMPILERS}/my_build_paths.bash
At the bottom, I get:
Code: Select all
collect2: error: ld returned 1 exit status
make: *** [Master/Module.mk:22: /home/keles/roms/Projects/Upwelling/romsS.exe] Error 1
Code: Select all
export NETCDF_INCDIR=/usr/local/include
export NETCDF_LIBDIR=/usr/local/lib
Code: Select all
NETCDF_INCDIR ?= /usr/local/include
NETCDF_LIBDIR ?= /usr/local/lib
NETCDF_LIBS ?= -lnetcdff -lnetcdf
Thank you very much for your concern!
Carlos.
Re: compile ROMS error
I received the same error but I am able to address it through editing both the build_roms.sh and the linked my_build_paths.sh. Now I am able to build the model. I am new to this as well and I am still confused on how different compilers work, but this is what I have, hopefully it will be helpful to some of you.
Firstly, in the build_roms.sh I tuned based on what I have on my computer
I found this slightly confusing, since a lot of tutorials are asking me to do different stuff. I finally decided to use mpif90 and gfortran because I can directly find them with "which" command in my terminal.
Then, I goes to the my_build_path.sh and find that section. Based on what I have in build_roms.sh, in the library section, I went to gfortran ) section, in the singularity command section, use NetCDF4 section, and not using parallel IO (else) section, and edited my path to NetCDF4
Both my MacOS and Linux has netcdf directory under /usr/bin/ and /usr/include/ so I found the original path document a little bit confusing
Firstly, in the build_roms.sh I tuned based on what I have on my computer
Code: Select all
export USE_MPIF90=on # compile with mpif90 script
export FORT=gfortran
export USE_DEBUG=on # use Fortran debugging flags
export USE_LARGE=on # activate 64-bit compilation
export USE_NETCDF4=on
Then, I goes to the my_build_path.sh and find that section. Based on what I have in build_roms.sh, in the library section, I went to gfortran ) section, in the singularity command section, use NetCDF4 section, and not using parallel IO (else) section, and edited my path to NetCDF4
Code: Select all
export NETCDF=/usr
export NF_CONFIG=${NETCDF}/bin/nf-config
export NETCDF_INCDIR=${NETCDF}/include