Access to External Packages

24-Jan-2007


Transp uses several external packages ( Blas, MDSplus, NETcdf.. ), all of which have associated libraries, & some of which have header or module definition files. At JET, these files ( or links to them ) are stored under $TRANSPROOT/external :

>ls -lR $TRANSPROOT/external
/common/transp_shared/Code/transp/La_95_27a/external:
 inc
 lib
 mod

/common/transp_shared/Code/transp/La_95_27a/external/inc:
 ncvalues.h -> /home/pshare/lib/source/netcdf-3.6.0-p1/include/ncvalues.h
 netcdfcpp.h -> /home/pshare/lib/source/netcdf-3.6.0-p1/include/netcdfcpp.h
 netcdf.h -> /home/pshare/lib/source/netcdf-3.6.0-p1/include/netcdf.h
 netcdf.inc -> /home/pshare/lib/source/netcdf-3.6.0-p1/include/netcdf.inc

/common/transp_shared/Code/transp/La_95_27a/external/lib:
 libblas.a -> /home/pshare/lib/source/blas/libblas.a
 libf2c.so -> /common/transp_shared/Code/transp/other/libf2c.so.0.22
 libfftw.a -> /home/pshare/lib/source/fftw-2.1.3/fftw/.libs/libfftw.a
 liblapack.a -> /home/pshare/lib/source/LAPACK/lf95/liblapack.a
 libnetcdf.a -> /home/pshare/lib/source/netcdf-3.6.0-p1/lib/libnetcdf.a
 libppf.so -> /usr/local/lib/libppf.so
 librfftw.a -> /home/pshare/lib/source/fftw-2.1.3/rfftw/.libs/librfftw.a

/common/transp_shared/Code/transp/La_95_27a/external/mod
 netcdf.mod -> /home/pshare/lib/source/netcdf-3.6.0-p1/include/netcdf.mod
 typesizes.mod -> /home/pshare/lib/source/netcdf-3.6.0-p1/include/typesizes.mod
 

Access

These directories are made accessible to the compilers, via 3 environment variables, set in transprc :-

#
#.. External Packages
#
setenv EXT $TRANSPROOT/external
setenv F90_INC "-M$EXT/mod -I$EXT/inc "
setenv C_INC "-I$EXT/inc "
setenv CXX_INC "-I$EXT/inc "
#

These variables are appended to the compiler option strings, in $SC/System_options :-

#
# Site specific / External search paths :-
#
if( $?F90_INC ) then
   set f90opt   = "$f90opt $F90_INC"
   set f90debug = "$f90debug $F90_INC"
endif
if( $?C_INC ) then
   set ccopt   = "$ccopt $C_INC"
   set ccdebug = "$ccdebug $C_INC"
endif
if( $?CXX_INC ) then
   set cxxopt   = "$cxxopt $CXX_INC"
   set cxxdebug = "$cxxdebug $CXX_INC"
endif
#

Diagnostic

The script $SC/options displays the compiler switches for a given program or library -

>$SC/optest tcomp_test
optest: executing Get_All_Options ...
tcomp% -I- used: /common/transp_shared/Code/transp/La_95_27a/config/User_options
options finished

------> optest output for LINUX ( LaheyFujitsu ), tcomp_test


f90opt = lf95 -c -O --trap --trace -Wa,--32 \
-I/common/transp_shared/Code/transp/La_95_27a/codesys/compsc/tcomp_test \
-M/common/transp_shared/Code/transp/La_95_27a/codesys/obj/tcomp_test \
-M/common/transp_shared/Code/transp/La_95_27a/codesys/mod \
-M/common/transp_shared/Code/transp/La_95_27a/external/mod \
-I/common/transp_shared/Code/transp/La_95_27a/external/inc


f90debug = lf95 -c --xref -I /common/transp_shared/Code/transp/La_95_27a/debug


cppargs = -undef -D__LINUX -D__F90 -D__FUJITSU -D__UNIX -D__IDL6_FIX \
-I/common/transp_shared/Code/transp/La_95_27a/codesys/compsc/tcomp_test -D_DEBUG -D__JET -D_JET -D_NORZS


ccopt = gcc -ansi -c -O2 -mcpu=i486 -DSYS5 -D__LINUX \
-I/home/pshare/lib/source/SuperLU_3.0//include -D__UNIX -D__IDL6_FIX \
-I/usr/local/mdsplus/include \
-I/common/transp_shared/Code/transp/La_95_27a/codesys/compsc/tcomp_test \
-I/common/transp_shared/Code/transp/La_95_27a/external/inc


ccdebug = gcc -ansi -c -g -mcpu=i486 -DSYS5 -D__LINUX \
-I/home/pshare/lib/source/SuperLU_3.0//include -D__UNIX -D__IDL6_FIX \
-I/usr/local/mdsplus/include \
-I/common/transp_shared/Code/transp/La_95_27a/codesys/compsc/tcomp_test \
-I/common/transp_shared/Code/transp/La_95_27a/external/inc


cxxopt = g++ -c -D__LINUX \
-I/home/pshare/lib/source/SuperLU_3.0//include -D__UNIX -D__IDL6_FIX \
-I/common/transp_shared/Code/transp/La_95_27a/external/inc


cxxdebug = g++ -c -g -D__LINUX \
-I/home/pshare/lib/source/SuperLU_3.0//include -D__UNIX -D__IDL6_FIX \
-I/common/transp_shared/Code/transp/La_95_27a/external/inc