ROMS 2.2 problem when USWEST is defined

Bug reports, work arounds and fixes

Moderators: arango, robertson

Post Reply
Message
Author
cousins
Posts: 11
Joined: Wed Apr 20, 2005 4:03 pm
Location: Univ. of Maine

ROMS 2.2 problem when USWEST is defined

#1 Unread post by cousins »

After downloading the ROMS code with the corrections I made two changes:

1. cppdefs.h: undefined UPWELLING and defined USWEST
2. makefile: changed compiler to ifort

ran make:
... yada, yada, yada...
/usr/bin/cpp -P -traditional -I/opt/intelsoft/netcdf/include -DLINUX -DX86_64 -DIFORT -IInclude -INonlinear -IDrivers -ISeaIce Nonlinear/step2d.F > step2d.f90
Bin/cpp_clean step2d.f90
/usr/bin/cpp -P -traditional -I/opt/intelsoft/netcdf/include -DLINUX -DX86_64 -DIFORT -IInclude -INonlinear -IDrivers -ISeaIce Nonlinear/obc_volcons.F > obc_volcons.f90
Bin/cpp_clean obc_volcons.f90
ifort -c -ip -O3 -xW obc_volcons.f90
obc_volcons.f90(153) : (col. 8) remark: LOOP WAS VECTORIZED.
obc_volcons.f90(162) : (col. 8) remark: LOOP WAS VECTORIZED.
obc_volcons.f90(275) : (col. 8) remark: LOOP WAS VECTORIZED.
obc_volcons.f90(283) : (col. 8) remark: LOOP WAS VECTORIZED.
obc_volcons.f90(330) : (col. 8) remark: LOOP WAS VECTORIZED.
obc_volcons.f90(336) : (col. 8) remark: LOOP WAS VECTORIZED.
ifort -c -ip -O3 -xW step2d.f90
fortcom: Error: step2d.f90, line 756: This name does not have a type, and must have an explicit type. [M2NUDGCOF]
cff=0.25_r8*(M2nudgcof(i-1,j)+M2nudgcof(i,j))* &
-----------------------^
fortcom: Error: step2d.f90, line 760: This name does not have a type, and must have an explicit type. [UBARCLM]
& (ubarclm(i,j)-ubar(i,j,krhs))
-----------------------------^
fortcom: Error: step2d.f90, line 769: This name does not have a type, and must have an explicit type. [VBARCLM]
& (vbarclm(i,j)-vbar(i,j,krhs))
-----------------------------^
compilation aborted for step2d.f90 (code 1)
make: *** [step2d.o] Error 1
rm mod_kinds.f90

I haven't been able to trace it down yet. Based on the parameters that get set up in step2d.f90 it looks like not all of the preprocessor definitions are getting made:

CALL step2d_tile (ng, Istr, Iend, Jstr, Jend, &
& LBi, UBi, LBj, UBj, N(ng), &
& krhs(ng), kstp(ng), knew(ng), &
& nstp(ng), nnew(ng), &
& GRID(ng) % pmask, GRID(ng) % rmask, &
& GRID(ng) % umask, GRID(ng) % vmask, &
& GRID(ng) % Hz, &
& GRID(ng) % z_r, GRID(ng) % z_w, &
& GRID(ng) % fomn, GRID(ng) % h, &
& GRID(ng) % om_u, GRID(ng) % om_v, &
& GRID(ng) % on_u, GRID(ng) % on_v, &
& GRID(ng) % omn, &
& GRID(ng) % pm, GRID(ng) % pn, &
& GRID(ng) % dndx, GRID(ng) % dmde, &
& GRID(ng) % pmon_r, GRID(ng) % pnom_r, &
& GRID(ng) % pmon_p, GRID(ng) % pnom_p, &
& GRID(ng) % om_r, GRID(ng) % on_r, &
& GRID(ng) % om_p, GRID(ng) % on_p, &
& MIXING(ng) % visc2_p, MIXING(ng) % visc2_r, &
& COUPLING(ng) % rhoA, COUPLING(ng) % rhoS, &
& COUPLING(ng) % DU_avg1, COUPLING(ng) % DU_avg2, &
& COUPLING(ng) % DV_avg1, COUPLING(ng) % DV_avg2, &
& COUPLING(ng) % Zt_avg1, &
& COUPLING(ng) % rufrc, COUPLING(ng) % rvfrc, &
& OCEAN(ng) % ru, OCEAN(ng) % rv, &
& OCEAN(ng) % rubar, OCEAN(ng) % rvbar, &
& OCEAN(ng) % rzeta, &
& OCEAN(ng) % ubar, OCEAN(ng) % vbar, &
& OCEAN(ng) % zeta)

Notice there are no CLIMA(ng)'s.

The system I'm trying it on now is a Opteron Linux system with RHEL 3 on it and ifort 8.1.

I have also tried it on a Mac system both with OSX and Debian Linux. The OSX version is with the xlf compiller and on Debian it is gfortran. Same problem.

Anyone know what the problem is?

Thanks,

Steve

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

#2 Unread post by kate »

OK, OK, I tracked it down. Yes, any one of us could have investigated this, but there is no one tasked with helping users in this manner.

cygnus.arsc.edu 249% xdump foo1
00000000 4d32434c 494d4154 4f4c3047 590a M2CLIMATOL0GY.
cygnus.arsc.edu 250% xdump foo2
00000000 4d32434c 494d4154 4f4c4f47 590a M2CLIMATOLOGY.

The problem is that in cppdefs.h, there is a #define M2CLIMATOLOGY for USWEST. This one instance has a typo with a zero instead of the letter o. It's easier for me to see in this forum font than in my xterm. The step2d code has #ifdef M2CLIMATOLOGY around passing the variables to step2d_tile, but not around the section where it is actually used.

Post Reply