Welcome, Guest
Username: Password: Remember me

TOPIC: Problem when compiling flusec and fluxpr

Problem when compiling flusec and fluxpr 14 years 4 months ago #292

  • jeremie
  • jeremie's Avatar
  • OFFLINE
  • Junior Boarder
  • Hydro-Quebec
  • Posts: 39
  • Thank you received: 7
Hi all,

I am currently compiling the V6P0 from source on a linux platform with the Intel Fortran 11.1 compiler and impi library. The current setup is known to work with V5P9. So far, mumpsvoid, damocles, bief, paravoid, parallel and special have compiled all right.

However, I encounter a subtle syntax error when compiling flusec_telemac2d.f and fluxpr_telemac2d.f in the telemac2d folder.

The compiler seems to interpret the logical variable CLASSIC as some sort of parameter IC of type CLASS. It then complains about this data type. The error message looks as follows:
=> Compilation de flusec_telemac2d.f :
flusec_telemac2d.f(115): error #5082: Syntax error, found IDENTIFIER 'IC' when expecting one of: ( % : . = =>
      IF (.NOT.ALLOCATED(CHAIN)) CLASSIC=.TRUE.
--------------------------------------^
flusec_telemac2d.f(115): error #6404: This name does not have a type, and must have an explicit type.   [CLASS]
      IF (.NOT.ALLOCATED(CHAIN)) CLASSIC=.TRUE.
---------------------------------^
flusec_telemac2d.f(115): error #6460: This is not a field name that is defined in the encompassing structure.   [IC]
      IF (.NOT.ALLOCATED(CHAIN)) CLASSIC=.TRUE.
--------------------------------------^
flusec_telemac2d.f(115): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.
      IF (.NOT.ALLOCATED(CHAIN)) CLASSIC=.TRUE.
-----------------------------------------^
compilation aborted for flusec_telemac2d.f (code 1)


I think a flag might be missing in my compiling options. My systel.ini compiler data is the following (with hostype=linux):
[linux]
DIRLIB=linux
#
FC_NAM="ifort"
FC_OPT_OBJEXT="o"
FC_OPT_COMPIL=" -c -O3 -convert big_endian -no-vec"
FC_OPT_DEBUG=" -g "
FC_OPT_PROFILE=" -O3 -w=obs -v -pg -c "
FC_OPT_INCLUDE="-I "
FC_OPT_OTHERS=" -extend-source 132 "
#
LK_NAM="ifort"
LK_OPT_NORMAL= 
LK_OPT_DEBUG=
LK_OPT_PROFILE=
LK_OPT_OUTNAME=" -o "
LK_OPT_OTHERS=
#
LIB_NAM=ar
LIB_OPT_LIBEXT="a"
LIB_OPT_OUTNAME="cru"
LIB_OPT_OTHERS=
LIB_RANLIB="ranlib"
#
RUN_DEBUG=
RUN_PROFILE=
#
#---- IMPI
#
FC_MPI="ifort "
LK_MPI="mpiifort -o <EXE>  <OBJS>  <LIBS>"
LIBS_MPI=" -L/opt/intel/impi/3.2.2/lib64/libmpi.a"
#RUN_MPI="mpiexec  -machinefile mpirun.txt -n <N> ./<EXE>"
RUN_MPI="mpirun -r ssh -f mpirun.txt -env I_MPI_DEBUG 2 -n <N> ./<EXE>"


The same error is produced when compiling some files in sisyphe that use CLASSIC as well.


Any help is appreciated!

P.S.

I should mention here that the installation guide written by Decung, Denis and Hervouet is of great help and is very well written.
The administrator has disabled public write access.

Re:Problem when compiling flusec and fluxpr 14 years 4 months ago #293

  • sebourban
  • sebourban's Avatar
  • OFFLINE
  • Administrator
  • Principal Scientist
  • Posts: 814
  • Thank you received: 219
Hello Jeremie,

I have seen a report of that error before, but I have never been able to reproduce it. As you suggest, I also believe it comes from the option of the compiler. Try to look at the intel options on the windows platform and add the missing options.

Although I do not understand why the following could make a difference:

/iface:cref /iface:nomixed_str_len_arg

Please let us know if it works.

Sébastien
The administrator has disabled public write access.

Re:Problem when compiling flusec and fluxpr 14 years 4 months ago #294

  • jmhervouet
  • jmhervouet's Avatar
Hi there,

Though it seems a compiler oddity, I suggest we change CLASSIC into OLD_METHOD. Anyway this was for compatibility with already existing models and we could suppress it in the next version 6.1, because this old method does not always work in parallel, whereas the new one, offered by Jacek Jankowski at BAW, is duly designed for parallelism.

Regards,

Jean-Michel
The administrator has disabled public write access.

Re:Problem when compiling flusec and fluxpr 14 years 4 months ago #303

  • jeremie
  • jeremie's Avatar
  • OFFLINE
  • Junior Boarder
  • Hydro-Quebec
  • Posts: 39
  • Thank you received: 7
Thanks for your input.

As a temporary patch I renamed CLASSIC to OLD_METHOD in the following source files:
flusec_telemac2d.f
fluxpr_telemac2d.f
flusec_sisyphe.f
fluxpr_sisyphe.f

That fixed the issue. Compiling and linking are now successful and I get a working install of T2D. I will look into the compiling options soon.

There is one last thing I need to resolve. I cannot generate MP exes with makepar90 even though it points to the right mpi library. I will post this issue under a new thread in case some other users might be interested.
The administrator has disabled public write access.

Re:Problem when compiling flusec and fluxpr 14 years 3 months ago #375

  • jeremie
  • jeremie's Avatar
  • OFFLINE
  • Junior Boarder
  • Hydro-Quebec
  • Posts: 39
  • Thank you received: 7
Hi all,

I think my previous post was deleted or lost by the system so here it is again...

Thanks for your useful remarks. As suggested by JM, I temporarily patched the issue by renaming CLASSIC to OLD_METHOD in the following files:
flusec_telemac2d.f, fluxpr_telemac2d.f, flusec_sisyphe.f, and fluxpr_sisyphe.f

I could then compile everything with makeall90.

In the meantime, I will look into the compiler options suggested to see how to avoid this syntax error.

Cheers,

jeremie
The administrator has disabled public write access.
Moderators: borisb

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.