ROMS with MATLAB..!

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
rakeshthp

ROMS with MATLAB..!

#1 Unread post by rakeshthp »

Hello,

I recently came to know from Mr. Arango sir that there are two versions of ROMS. First is the one which is available on the repository. And the second is the one which is developed by the French group.

Well, at the beginning i was working with the Model that was developed by the French group. I was struck up at the compilation process. Later on i tried to work with this version of model. Infact am still trying. Not getting proper hand on it.

Can anyone tell me whether this version of ROMS will work along with MATLAB?

Secondly, kindly can anyone give me any contact of the French group who developed the other version of ROMS.?

Thank You in advance.

crode1968
Posts: 13
Joined: Thu Oct 28, 2004 6:58 pm
Location: Danish Meteorological Institute

#2 Unread post by crode1968 »

You can reach the French group by going to their web page
(http://www.brest.ird.fr/Roms_tools) and follow the given contacts at the bottom of the entry page.

rakeshthp

#3 Unread post by rakeshthp »

Thank you very much.. i am working with this version of roms i typed make command in the console and i got the following message

make
/bin/sh: ROMS/Bin/cpp_clean: Permission denied
makefile:230: INCLUDING FILE Compilers/make_macros.mk WHICH CONTAINS APPLICATION -DEPENDENT MAKE DEFINITIONS
/usr/bin/cpp -P -traditional -DLINUX -DX86_64 -DGFORTRAN -D'ROOT_DIR="/home/ykso ma/ROMS/trunk"' -DUPWELLING -D'HEADER="upwelling.h"' -D'ROMS_HEADER="upwelling.h "' -DNestedGrids=1 -D'ANALYTICAL_DIR="/home/yksoma/ROMS/trunk/ROMS/Functionals"' -D'SVN_REV="exported"' -IROMS/Include -IROMS/Nonlinear -IROMS/SeaIce -IROMS/Uti lity -IROMS/Drivers -IROMS/Functionals -IMaster -ICompilers -D'HEADER_DIR="./ROM S/Include"' ROMS/Nonlinear/bbl.F > Build/bbl.f90
ROMS/Bin/cpp_clean Build/bbl.f90
make: execvp: ROMS/Bin/cpp_clean: Permission denied
make: *** [Build/bbl.f90] Error 127


what may be the problem.. could u give me some suggestions..

thanks in advance

capet
Posts: 3
Joined: Thu Aug 21, 2003 6:43 pm
Location: Laboratoire d'Océanographie et du Climat - CNRS

#4 Unread post by capet »

If you are using the so callled french version (also known as AGRIF version because of its online nesting capability) you should compile the code by running jobcomp (a script that takes care of creating the makefile based on your most intimate wishes and executing it for you).
Most importantly if you are starting with this version you should follow the excellent tutorial available as part of the documentation.

nganju
Posts: 82
Joined: Mon Aug 16, 2004 8:47 pm
Location: U.S. Geological Survey, Woods Hole
Contact:

ROMS and MATLAB

#5 Unread post by nganju »

Many people use Matlab to create and modify the *.nc (netcdf) files that are used for grid, forcing, and output files. To do this, you need to install the mexcdf interface for Matlab. I think there are other postings on the board that explain how to do this. good luck...

rakeshthp

#6 Unread post by rakeshthp »

Myself Mr. Rakesh Patil, working as a project assistant in National Institute of Oceanography, GOA, INDIA. I'm working on ROMS in my project which is related to coastal altimetry. I have a small doubt sir. I hope it will be cleared from you. I'm working on Linux OpenSUSE 10.3 version. I'm using ROMS with Matlab 7.4.

I'm not able to compile the model. Following are the stpes i followed.
1) I ran a matlab session in Roms_tools/Run directory
2) Then I ran start.m script. This scripts adds the various paths of toolboxes.
3) next i ran make_grid command.
4) after this i ran make_forcing
5) after make_forcing, pathfinder_sst, next make_bulk, and finally make_clim

I did the same as it was mentioned in documentation. Finally, i opened a terminal(console) and compiled the said file: jobcomp as
:> tcsh jobcomp
I got the following response:


:~/Roms_tools/Run> tcsh jobcomp
OPERATING SYSTEM IS: Linux
PROCESSOR IS: x86_64
SIXTYFOUR
cp: No match.
fpp: Command not found.
fpp: Command not found.
fpp: Command not found.
/bin/rm -rf core *.o AGRIFZOOM/AGRIF_YOURFILES/*.o *.i *.s *.f *.trace *.mod
/bin/rm -rf roms mpc cross_matrix cppcheck srcscheck checkkwds partit ncjoin ncrename ./rii_files
fpp -free -P -I../netcdf_x86_64 mpc.F > mpc.f
/bin/sh: fpp: command not found
gmake: *** [mpc] Error 127
fpp -free -P -I../netcdf_x86_64 main.F | ./mpc > main.f
/bin/sh: fpp: command not found
/bin/sh: ./mpc: No such file or directory
gmake: *** [main.o] Error 127


i'm not able to go forward as i'm confused with what is the error and how to rectify the error. It will be very grateful of you if you give me proper guidance. Waiting for your earliest reply.

Thank You

andres
Posts: 54
Joined: Tue May 06, 2003 4:35 pm
Location: University of Concepcion
Contact:

#7 Unread post by andres »

Hi Rakesh,

You have to modify jobcomp to point where is in your system the fortran pre processor, fpp. What fortran processor do you have in your system? Have you installed the Intel fortran compiler? What do you get if you type

locate fpp

at the shell?

Regards,

Andres
rakeshthp wrote: :> tcsh jobcomp
I got the following response:


:~/Roms_tools/Run> tcsh jobcomp
OPERATING SYSTEM IS: Linux
PROCESSOR IS: x86_64
SIXTYFOUR
cp: No match.
fpp: Command not found.
fpp: Command not found.
fpp: Command not found.

i'm not able to go forward as i'm confused with what is the error and how to rectify the error. It will be very grateful of you if you give me proper guidance. Waiting for your earliest reply.

Thank You

rakeshthp

locate fpp

#8 Unread post by rakeshthp »

Hi.. I got this message..

> locate fpp
/usr/bin/diffpp
/usr/bin/dprofpp
/usr/share/man/man1/diffpp.1.gz
/usr/share/man/man1/dprofpp.1.gz
/windows/C/Perl/html/bin/dprofpp.html


which part of jobcomp file do i need to change..???

andres
Posts: 54
Joined: Tue May 06, 2003 4:35 pm
Location: University of Concepcion
Contact:

Re: locate fpp

#9 Unread post by andres »

Hi
rakeshthp wrote:Hi.. I got this message..

> locate fpp
/usr/bin/diffpp
/usr/bin/dprofpp
/usr/share/man/man1/diffpp.1.gz
/usr/share/man/man1/dprofpp.1.gz
/windows/C/Perl/html/bin/dprofpp.html


which part of jobcomp file do i need to change..???
The problem now is not a modification of the jobcomp file. Seems you dont have the fpp program that is needed, which is called by jobcomp. Here is what I have in my system:

[andres@localhost daily_run]$ which fpp
/usr/local/bin/fpp

but as you can see

[andres@localhost daily_run]$ ls -l /usr/local/bin/fpp
lrwxrwxrwx 1 root root 25 May 23 2006 /usr/local/bin/fpp -> /opt/intel/fc/9.0/bin/fpp

fpp comes as part of the Intel Fortran Compiler that I have installed. Which Fortran compiler do you use? Intel, PG, gfortran?

Andres

rakeshthp

hi..

#10 Unread post by rakeshthp »

my system is having gfortran compiler.. i tried all 4 combinations that is given in jobcomp.. i.e. ifort, f99 or something...

andres
Posts: 54
Joined: Tue May 06, 2003 4:35 pm
Location: University of Concepcion
Contact:

Re: hi..

#11 Unread post by andres »

rakeshthp wrote:my system is having gfortran compiler.. i tried all 4 combinations that is given in jobcomp.. i.e. ifort, f99 or something...
Hi.

you need to modify a line at the top of the jobcomp (near line 25) declaring which fortran compiler do you use. Seems jobcomp does not include yet gfortran as an option so you should install another compliler such as g95, g77 or ifort. Can you add these compilers to your system?

Do you have the cpp installed? (Type which cpp at the command prompt)

Andres

rakeshthp

#12 Unread post by rakeshthp »

Hi there...

cpp is installed by default on my system. I'm using Open SUSE 10.3.. i typed which cpp at command prompt. I got the following output:

/usr/bin/cpp

i think it can be compiled using cpp also na..?? i had set LINUX_FC=g77 n compiled it.. i got the following message..

gourish@spk:/home/roms/Roms_tools/Run> tcsh jobcomp
OPERATING SYSTEM IS: Linux
PROCESSOR IS: i686
Please provide a netcdf library
cp: No match.
/bin/rm -rf core *.o AGRIFZOOM/AGRIF_YOURFILES/*.o *.i *.s *.f *.trace *.mod
/bin/rm -rf roms mpc cross_matrix cppcheck srcscheck checkkwds partit ncjoin ncrename ./rii_files
cpp -traditional -DLinux -P XXX mpc.F > mpc.f
cpp: XXX: No such file or directory
cpp: warning: '-x c' after last input file has no effect
cpp: no input files
gmake: *** [mpc] Error 1
/home/roms/Roms_tools/Compile
cpp -traditional -DLinux -P XXX main.F | ./mpc > main.f
/bin/sh: ./mpc: No such file or directory
cpp: XXX: No such file or directory
cpp: warning: '-x c' after last input file has no effect
cpp: no input files
gmake: *** [main.o] Error 127
mv: cannot stat `roms': No such file or directory


whats the next step..?? should i install other fortran compiler..??

andres
Posts: 54
Joined: Tue May 06, 2003 4:35 pm
Location: University of Concepcion
Contact:

#13 Unread post by andres »

Hi,

It would be easier for me to help you if you install the Intel Fotran Compiler (is the one I use)...

Andres
rakeshthp wrote:Hi there...

cpp is installed by default on my system. I'm using Open SUSE 10.3.. i typed which cpp at command prompt. I got the following output:

/usr/bin/cpp

i think it can be compiled using cpp also na..?? i had set LINUX_FC=g77 n compiled it.. i got the following message..

gourish@spk:/home/roms/Roms_tools/Run> tcsh jobcomp
OPERATING SYSTEM IS: Linux
PROCESSOR IS: i686
Please provide a netcdf library
cp: No match.
/bin/rm -rf core *.o AGRIFZOOM/AGRIF_YOURFILES/*.o *.i *.s *.f *.trace *.mod
/bin/rm -rf roms mpc cross_matrix cppcheck srcscheck checkkwds partit ncjoin ncrename ./rii_files
cpp -traditional -DLinux -P XXX mpc.F > mpc.f
cpp: XXX: No such file or directory
cpp: warning: '-x c' after last input file has no effect
cpp: no input files
gmake: *** [mpc] Error 1
/home/roms/Roms_tools/Compile
cpp -traditional -DLinux -P XXX main.F | ./mpc > main.f
/bin/sh: ./mpc: No such file or directory
cpp: XXX: No such file or directory
cpp: warning: '-x c' after last input file has no effect
cpp: no input files
gmake: *** [main.o] Error 127
mv: cannot stat `roms': No such file or directory


whats the next step..?? should i install other fortran compiler..??

rakeshthp

#14 Unread post by rakeshthp »

OK.. thanks... will get back to you once i get it installed.. anyways, i hope u enjoyed christmas a lot... belated merry christmas..

rakeshthp

HIIII

#15 Unread post by rakeshthp »

Thanks a lot... i installed intel fortran compiler and did some changes in jobcomp file.. and its working properly...... Thanks for all for ur kind cooperation... :) HAPPY NEW YEAR...

User avatar
size
Posts: 3
Joined: Mon Nov 24, 2008 6:27 pm
Location: Ocean University of China

Re: ROMS with MATLAB..!

#16 Unread post by size »

hi rakeshthp
i am very newer of roms and i use ifort too. Can you tell which part of jobcomp I should modify to go through this problem?

andres
Posts: 54
Joined: Tue May 06, 2003 4:35 pm
Location: University of Concepcion
Contact:

Re: ROMS with MATLAB..!

#17 Unread post by andres »

Hi,

Can you send the screen output?
size wrote:hi rakeshthp
i am very newer of roms and i use ifort too. Can you tell which part of jobcomp I should modify to go through this problem?
Andres Sepulveda

------------------------------
Geophysics Department
University of Concepcion

improvechen

Re: HIIII

#18 Unread post by improvechen »

rakeshthp wrote:Thanks a lot... i installed intel fortran compiler and did some changes in jobcomp file.. and its working properly...... Thanks for all for ur kind cooperation... :) HAPPY NEW YEAR...
Hello,

My ROMS_AGRIF can work in parallel when I defines "OPENMP". But it can not be compiled successfully when I defines "MPI".
Can you tell which part of jobcomp I should modify to go through this problem? Thank you!
##############################
set SOURCE=../Roms_Agrif
set SCRDIR=../Compile
set RUNDIR=`pwd`

#
# Linux compiler options (only relevant to Linux OS)
#
set LINUX_FC=ifort
#set LINUX_FC=ifc
#set LINUX_FC=g95
#set LINUX_FC=g77

#
# set 32 or 64 Bits executable
#
#set BITS=THIRTYTWO
set BITS=SIXTYFOUR

#
# set NETCDF directories
#
if ($BITS == THIRTYTWO) then
# set NETCDFLIB=-L$HOME/lib32
# set NETCDFINC=-I$HOME/lib32
if ($LINUX_FC == g77) then
set NETCDFLIB=-L../netcdf_g77/
set NETCDFINC=-I../netcdf_g77/
else
set NETCDFLIB=-L/public/soft/netcdf362-intel101/lib/
set NETCDFINC=-I/public/soft/netcdf362-intel101/include/
endif
else
set NETCDFLIB=-L/public/soft/netcdf362-intel101/lib/
set NETCDFINC=-I/public/soft/netcdf362-intel101/include/
endif

#
# set MPI directories if needed
#

set MPILIB=-L/public/soft/ompi133-intel101/lib/
set MPIINC=-I/public/soft/ompi133-intel101/include/
#
# END OF USER'S MODIFICATIONS
####################################################
main.o: In function `MAIN__':
main.f:(.text+0x37): undefined reference to `mpi_init_'
main.f:(.text+0x3e): undefined reference to `pmpi_wtime_'
main.f:(.text+0x93): undefined reference to `mpi_barrier_'
main.f:(.text+0x9a): undefined reference to `pmpi_wtime_'
main.f:(.text+0x141): undefined reference to `mpi_finalize_'
read_inp.o: In function `read_inp_':
read_inp.f:(.text+0x85): undefined reference to `mpi_bcast_'
setup_grid2.o: In function `setup_grid2_tile_':
setup_grid2.f:(.text+0xad5): undefined reference to `mpi_send_'
setup_grid2.f:(.text+0xb27): undefined reference to `mpi_recv_'
setup_grid2.f:(.text+0xd40): undefined reference to `mpi_bcast_'
setup_grid2.o: In function `setup_grid2_':
setup_grid2.f:(.text+0x1be7): undefined reference to `mpi_send_'
setup_grid2.f:(.text+0x1c3c): undefined reference to `mpi_recv_'
setup_grid2.f:(.text+0x1e53): undefined reference to `mpi_bcast_'
set_nudgcof.o: In function `set_nudgcof_tile_':
set_nudgcof.f:(.text+0xf5): undefined reference to `mpi_bcast_'
set_nudgcof.o: In function `set_nudgcof_':
set_nudgcof.f:(.text+0xfe6): undefined reference to `mpi_bcast_'
diag.o: In function `diag_tile_':
diag.f:(.text+0x1215): undefined reference to `mpi_send_'
diag.f:(.text+0x126b): undefined reference to `mpi_recv_'
diag.o: In function `diag_':
diag.f:(.text+0x288a): undefined reference to `mpi_send_'
diag.f:(.text+0x28e0): undefined reference to `mpi_recv_'
grid_stiffness.o: In function `grid_stiffness_tile_':
grid_stiffness.f:(.text+0x6da): undefined reference to `mpi_send_'
grid_stiffness.f:(.text+0x71d): undefined reference to `mpi_recv_'
grid_stiffness.f:(.text+0x79e): undefined reference to `mpi_bcast_'
grid_stiffness.o: In function `grid_stiffness_':
grid_stiffness.f:(.text+0xfa2): undefined reference to `mpi_send_'
grid_stiffness.f:(.text+0xfe6): undefined reference to `mpi_recv_'
grid_stiffness.f:(.text+0x1067): undefined reference to `mpi_bcast_'
wrt_his.o: In function `wrt_his_':
wrt_his.f:(.text+0x55): undefined reference to `mpi_recv_'
wrt_his.f:(.text+0x1047): undefined reference to `mpi_send_'
wrt_rst.o: In function `wrt_rst_':
wrt_rst.f:(.text+0x55): undefined reference to `mpi_recv_'
wrt_rst.f:(.text+0xcc0): undefined reference to `mpi_send_'
wrt_avg.o: In function `wrt_avg_':
wrt_avg.f:(.text+0x55): undefined reference to `mpi_recv_'
wrt_avg.f:(.text+0x75f): undefined reference to `mpi_send_'
MPI_Setup.o: In function `mpi_setup_':
MPI_Setup.f:(.text+0x1c): undefined reference to `mpi_comm_size_'
MPI_Setup.f:(.text+0x30): undefined reference to `mpi_comm_rank_'
MessPass2D.o: In function `messpass2d_tile_':
MessPass2D.f:(.text+0x7d6): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x80d): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0xeef): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0xf26): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0x14f2): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x1526): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0x1ac3): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x1af7): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0x1b8d): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x1bc1): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0x1c6a): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x1c9e): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0x1d41): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x1d75): undefined reference to `mpi_send_'
MessPass2D.f:(.text+0x1f11): undefined reference to `mpi_wait_'
MessPass2D.f:(.text+0x1f5e): undefined reference to `mpi_wait_'
MessPass2D.f:(.text+0x1fcf): undefined reference to `mpi_wait_'
MessPass2D.f:(.text+0x2027): undefined reference to `mpi_wait_'
MessPass2D.f:(.text+0x2099): undefined reference to `mpi_wait_'
MessPass2D.o:MessPass2D.f:(.text+0x241f): more undefined references to `mpi_wait_' follow
MessPass2D.o: In function `messpass2d_tile_':
MessPass2D.f:(.text+0x3012): undefined reference to `mpi_irecv_'
MessPass2D.f:(.text+0x3046): undefined reference to `mpi_send_'
MessPass3D.o: In function `messpass3d_tile_':
MessPass3D.f:(.text+0xc02): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0xc36): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0xd23): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0xd57): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0xe28): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0xe5c): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0xf33): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0xf67): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0x1073): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0x10a7): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0x1104): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0x1138): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0x1195): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0x11c9): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0x1226): undefined reference to `mpi_irecv_'
MessPass3D.f:(.text+0x125a): undefined reference to `mpi_send_'
MessPass3D.f:(.text+0x1288): undefined reference to `mpi_wait_'
MessPass3D.f:(.text+0x1661): undefined reference to `mpi_wait_'
MessPass3D.f:(.text+0x1adc): undefined reference to `mpi_wait_'
MessPass3D.f:(.text+0x1f19): undefined reference to `mpi_wait_'
MessPass3D.f:(.text+0x2374): undefined reference to `mpi_wait_'
MessPass3D.o:MessPass3D.f:(.text+0x2623): more undefined references to `mpi_wait_' follow
make: *** [roms] Error 1
mv: cannot stat `roms': No such file or directory

andres
Posts: 54
Joined: Tue May 06, 2003 4:35 pm
Location: University of Concepcion
Contact:

Re: ROMS with MATLAB..!

#19 Unread post by andres »

Hi, improvechen

Seems you have a confusion between OPENMP and MPI

To use mpi you have to compile the mpich2 code indicating that you will use the intel fortran compiler.

This will generate the mpif90 executable that you have to use in the jobcomp file to compile the ROMS_AGRIF code,

set LINUX_FC=mpif90

pointing to the correct lib and include directories

#
# set MPI directories if needed
#

set MPILIB=-L/usr/local/lib/
set MPIINC=-I/usr/local/include/


then you have to run the daemon mpd

/usr/local/bin/mpd &

and then use mpiexec in the run_roms.csh file to actually run the code

/usr/local/bin/mpiexec -n $MYCORES ./$CODFILE ${MODEL}_hindcast.in > ${MODEL}_hindcast_`date -Idate`.out
Andres Sepulveda

------------------------------
Geophysics Department
University of Concepcion

improvechen

Re: ROMS with MATLAB..!

#20 Unread post by improvechen »

Thanks for your help.Now it works.
andres wrote:Hi, improvechen

Seems you have a confusion between OPENMP and MPI

To use ...
/usr/local/bin/mpiexec -n $MYCORES ./$CODFILE ${MODEL}_hindcast.in > ${MODEL}_hindcast_`date -Idate`.out

magaesco
Posts: 10
Joined: Wed Sep 01, 2010 8:01 pm
Location: ESPOL

Re: ROMS with MATLAB..!

#21 Unread post by magaesco »

Hi people,

I'm a little confused, so Anybody can help me with this issue?
I'm running for inter annual analysis (with ./roms roms_inter.in), and I get the following:

]$ ./roms roms_inter.in
ERROR in MPI_Setup: number of MPI-nodes should be 8 instead of 1.
exe_time = 0.000000000000000E+000


But, I've defined MPI in cppdesf.and edited param.h:

#ifdef MPI
integer NP_XI, NP_ETA, NNODES
parameter (NP_XI=2, NP_ETA=4, NNODES=8)
parameter (NSUB_X=1, NSUB_E=1, NPP=1)

So, Anybody does know what It is my mistake?
Thanks, for advances,

milena
Posts: 8
Joined: Wed Feb 01, 2006 1:56 am
Location: Los Alamos National Laboratory

Re: ROMS with MATLAB..!

#22 Unread post by milena »

Hi,
when you run with MPI, you need to send the job through mpirun:
mpirun -np n ./roms roms.in
where n=number of total processors used = 8 in your case.

See page 29 of the latest documentation file.

best,
Milena

magaesco
Posts: 10
Joined: Wed Sep 01, 2010 8:01 pm
Location: ESPOL

Re: ROMS with MATLAB..!

#23 Unread post by magaesco »

Thanks, Milena for your quickly answer.
You're right with MPI. :)
Best,

Post Reply