When compiling ROMS 3.0 with sea ice (PGI + Linux) I get the following message:
pgf90 -u -Bstatic -fastsse master.o ocean_control.o propagator.o -o roms libRPM.a libTLM.a libNLM.a libICE.a libUTIL.a libMODS.a -L/usr/local/netcdf-3.6.1/lib -lnetcdf
libICE.a(ice_elastic.o)(.text+0x4df4): In function `ice_elastic_mod_ice_elastic_tile_':
: undefined reference to `exchange_u2d_tile_'
libICE.a(ice_elastic.o)(.text+0x508e): In function `ice_elastic_mod_ice_elastic_tile_':
: undefined reference to `exchange_v2d_tile_'
libICE.a(ice_elastic.o)(.text+0x9e61): In function `ice_elastic_mod_ice_elastic_tile_':
: undefined reference to `exchange_u2d_tile_'
libICE.a(ice_elastic.o)(.text+0xa0fb): In function `ice_elastic_mod_ice_elastic_tile_':
: undefined reference to `exchange_v2d_tile_'
make: *** [roms] Error 2
Any suggestions/clues, welcome. thank you!
Guiyo.
undefined reference to exchange_u2d.tile_
I think I see the problem:
#if defined EW_PERIODIC || defined NS_PERIODIC
USE exchange_2d_mod, ONLY : exchange_r2d_tile
#endif
when in fact we are using the u2d and v2d routines, not the r2d routine. It should be:
#if defined EW_PERIODIC || defined NS_PERIODIC
USE exchange_2d_mod, ONLY : exchange_u2d_tile, exchange_v2d_tile
#endif
or even:
#if defined EW_PERIODIC || defined NS_PERIODIC
USE exchange_2d_mod
#endif
#if defined EW_PERIODIC || defined NS_PERIODIC
USE exchange_2d_mod, ONLY : exchange_r2d_tile
#endif
when in fact we are using the u2d and v2d routines, not the r2d routine. It should be:
#if defined EW_PERIODIC || defined NS_PERIODIC
USE exchange_2d_mod, ONLY : exchange_u2d_tile, exchange_v2d_tile
#endif
or even:
#if defined EW_PERIODIC || defined NS_PERIODIC
USE exchange_2d_mod
#endif