Compiling error when using ANA_BMFLUX

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
thomas.roc
Posts: 34
Joined: Tue Oct 28, 2008 3:19 pm
Location: IT Power

Compiling error when using ANA_BMFLUX

#1 Unread post by thomas.roc »

Hi everybody,

I'm trying to run in parallel (mpi on 2 intel's cores duo) a 3 D simulation of a simple East-West channel including areas of different roughness height (Z0).
To set up these areas I am using ANA_BMFLUX.
Unfortunately this message pops up each time I try to compile the code:
analytical.f90(83): error #6580: Name in only-list does not exist. [EXCHANGE_R3D_TILE]
USE exchange_3d_mod, ONLY : exchange_r3d_tile
----------------------------------^
compilation aborted for analytical.f90 (code 1)
I don't really dig what the message says and even less how I could fix this.
Does anyone have an idea to sort this out ?

As information, here is my CPP options:
#define SOLVE3D
#define DIAGNOSTICS_UV
#define UV_SMAGORINSKY
#define MY25_MIXING
#define UV_LOGDRAG
#define ANA_GRID
#define ANA_INITIAL
#define ANA_FSOBC
#define ANA_BMFLUX
#define SEDIMENT
#define ANA_SMFLUX
#define ANA_STFLUX
#define ANA_BTFLUX
#define ANA_M3OBC
#define ANA_M2OBC
#define NORTHERN_WALL
#define SOUTHERN_WALL
#define EAST_FSCLAMPED
#define WEST_FSCLAMPED
#define EAST_M3RADIATION
#define EAST_M2REDUCED
#define WEST_M3RADIATION
#define WEST_M2FLATHER

and my compiler options (intel compiler):
/mpiifort -c -tune -ip -O3


Thanks

-T-

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

Re: Compiling error when using ANA_BMFLUX

#2 Unread post by kate »

At the very top of ROMS/Nonlinear/exchange_3d.F:

Code: Select all

#if defined SOLVE3D && (defined EW_PERIODIC || defined NS_PERIODIC)
You aren't using periodic boundary conditions and therefore don't need this routine. Routines with this use statement should all have:

Code: Select all

#if defined EW_PERIODIC || defined NS_PERIODIC
      USE exchange_3d_mod, ONLY : exchange_r3d_tile
#endif

thomas.roc
Posts: 34
Joined: Tue Oct 28, 2008 3:19 pm
Location: IT Power

Re: Compiling error when using ANA_BMFLUX

#3 Unread post by thomas.roc »

Thank you Kate.

Indeed I am not using periodic boundary conditions but I am using DISTRIBUTE (running ROMS in parallel on 2 processors) and one can find in ANA_FLUX.h:
#if defined EW_PERIODIC || defined NS_PERIODIC || defined DISTRIBUTE
USE exchange_3d_mod, ONLY : exchange_r3d_tile
#endif
and further in the script
#if defined EW_PERIODIC || defined NS_PERIODIC || defined DISTRIBUTE
CALL exchange_r3d_tile (ng, tile, &
& LBi, UBi, LBj, UBj, 1, MBOTP, &
& NghostPoints, &
& bottom)
#endif
And I don't know either how to fix this. Maybe by using something like this:
#if defined DISTRIBUTE
CALL mp_exchange_3d (ng, tile, &
& LBi, UBi, LBj, UBj, 1, MBOTP, &
& NghostPoints, &
& bottom)
#endif
But I am far from being sure of this one.

Anyway as temporary solution, I ran my case in serial to avoid this error. It compiled perfectly but unfortunately the code doesn't start and say
READ_PHYPAR - could not find input file: ocean_ini.nc
ROMS/TOMS - I/O error ............... exit_flag: 4
My question is which initial values do I have to define ?
I presume this error is related to the initial values of t(i,j,k,1,idsed(ised)), bed(i,j,k,iaged), bed(i,j,k,ithck) and bed(i,j,k,iporo).
The problem is the only way to define those values analytically is by using ANA_SEDIMENT.
Yet thanks to analytical.F one can't use ANA_SEDIMENT and ANA_BMFLUX at the same time.

If anybody could help me, it would be great.

Cheers


-T-

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

Re: Compiling error when using ANA_BMFLUX

#4 Unread post by kate »

thomas.roc wrote: #if defined EW_PERIODIC || defined NS_PERIODIC || defined DISTRIBUTE
USE exchange_3d_mod, ONLY : exchange_r3d_tile
#endif
Which version of ROMS are you using and which version did this file come from? There was a change such that this was right in the old way, not in the new way. Look to the examples provided for UPWELLING and the other provided configurations. The new way separates out the MPI (DISTRIBUTE) exchanges from the periodic boundary exchanges.

Code: Select all

READ_PHYPAR - could not find input file:  ocean_ini.nc
ROMS/TOMS - I/O error ............... exit_flag:   4
It will look for a file unless you provide everything via ANA_INITIAL and friends.

Post Reply