= Installation with Intel Fortran = {{{}}} == Generic information for compiling with FCM == {{{ Edit $basepath/nemo/fcmconfig/bld/$compil_target/nemo.cfg and $basepath/nemovar/fcmconfig/bld/$compil_target/nemo.cfg according to your compiler and the path to netcdf, then $ cd $chemin/nemovar/build $ ./fcmvmake.ksh -t $basepath -c $compil_target }}} ==== Generating static libraries with ifort ==== The actual version of ifort (11.1) contains a bug when compiled on Mac OS: The linker (''ranlib'') does not find objects associated to global variables defined in some modules of NEMO: {{{ ifort model.o libopa.a libioipsl.a -L/usr/local/netcdf-3.6.1/intel/lib -lnetcdf -O3 -o ../opa_exe.ORCA2_Z31.1.1 Undefined symbols: "_asmpar_mp_nitdin_r_", referenced from: .... }}} These particular modules contains only global variables, and no ''CONTAINS'' section (ie no subroutines). The temporary solution is to add the option ''-c'' to ranlib: {{{ ranlib -c : Include common symbols as definitions with respect to the table of contents. This is seldom the intended behavior for linking from a library, as it forces the linking of a library member just because it uses an uninitialized global that is undefined at that point in the linking. This option is included only because this was the original behavior of ranlib. This option is not the default. }}} ==== Adding the option ''-c'' to ''ranlib'' in fcm ==== No building tool ranlib is available in fcm 1.3 . A solution is to insert the following lines in your ''nemo.cfg'': {{{ bld::tool::ar ar_mac bld::tool::arflags }}} and create a script ''ar_mac'' {{{ #!/bin/sh ar rs $@ || exit 1 ranlib -c $1 || exit 1 }}} ==== Alternative solution (found by Rachid) ==== {{{ ##bld::tool::ar ar bld::tool::ar libtool bld::tool::arflags -c -s -o }}} == Generating NETCDF modules and library == The following script is executed in the directory netcdf-3.6.1/src The compilers come from the intel web site, and installed on a Mac OS X 10.5.8 (Leopard). Flags avoid conflicts between C and Fortran during the library compilation. {{{ export FC=ifort export F90=ifort export F77=ifort export CFLAGS='-O3' export CC=icc export CXX=icpc export CPPFLAGS=' -DNDEBUG -DpgiFortran' }}} If problems persists: useful tips on the [http://www.unidata.ucar.edu/software/netcdf/docs/other-builds.html unidata] server, [http://www.unidata.ucar.edu/software/netcdf/docs/known_problems.html known problems] === Miscellaneous useful informations === - [[Color(yellow, brown, $basepath)]] refers to the path where the source code lies - [[Color(yellow, brown, $compil_target)]] is a user defined name, referring to the compilation environment. - Useful : the ROMS Mac [https://www.myroms.org/wiki/index.php/ROMS_Mac installation page] - Some compiling options for netcdf [http://software.intel.com/en-us/articles/performance-tools-for-software-developers-building-netcdf-with-the-intel-compilers/ on intel page]