Back to home page

MITgcm

 
 

    


Warning, /tools/build_options/unsupported/SUPER-UX_SX-8_sxf90+mpi_awi is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
13d43ea6c5 Mart*0001 #!/bin/bash
                0002 #
bd282699e9 Mart*0003 # for cross compiling on sx8.awi.de
6144427bd2 Jean*0004 # uname -a:
13d43ea6c5 Mart*0005 # Linux sx8 2.6.5-7.282-default #1 SMP Tue Aug 29 10:40:40 UTC 2006 ia64 ia64 ia64 GNU/Linux#
                0006 
                0007 # nec use
                0008 CPP='/lib/cpp -traditional -P'
2a78e0a5bd Mart*0009 DEFINES='-DALLOW_USE_MPI -DALWAYS_USE_MPI -DTARGET_NEC_SX -DWORDLENGTH=1 -DHAVE_CLOC -UHAVE_SIGREG -DSEAICE_VECTORIZE_LSR -DCG2D_OUTERLOOPITERS=10 -DCG3D_OUTERLOOPITERS=10'
bd282699e9 Mart*0010 FC='sxmpif90'
                0011 CC='sxcc -sx8r'
                0012 
92cde3e2c4 Mart*0013 RMFILES='*.L'
13d43ea6c5 Mart*0014 FC_NAMEMANGLE="#define FC_NAMEMANGLE(X)  X ## _"
                0015 LINK='sxmpif90'
bd282699e9 Mart*0016 #LINK='sxmpif90 -p' # with profiler
1287aab3da Mart*0017 FFLAGS='-Pstack -sx8r'
6144427bd2 Jean*0018 # automatic inlining for routines < 50 lines (default) and in the same file
af6dbe6221 Mart*0019 # where they are to be inlined (we do not have too many of those)
                0020 FFLAGS=$FFLAGS' -pi'
6144427bd2 Jean*0021 # This is how you inline external routines if they are longer than 50 lines
                0022 # and live in a separate file (the actual routines depend on the packages
                0023 # used, therefore there are only a few examples here); unfortunately, these
                0024 # flags break the genmake2 tests, so they get an extra flag variable that
f5a486f51f Mart*0025 # is not tested in genmake2
                0026 FEXTRAFLAGS='-pi auto fullmsg exp=barrier,ucase,timestep_tracer,ilnblnk,ifnblnk,cycle_tracer,pressure_for_eos,sw_temp,sw_ptmp rexp=fool_the_compiler,fool_the_compiler_r8,bar2,sw_adtg expin=barrier.F,timestep_tracer.F,fool_the_compiler.F,bar2.F,utils.F,cycle_tracer.F,pressure_for_eos.F,seawater.F'
6144427bd2 Jean*0027 # additional candidates for inlining are parts of packages that are not
af6dbe6221 Mart*0028 # always used, therefore use this at your own risk:
                0029 #FEXTRAFLAGS=${FEXTRAFLAGS}' -pi fullmsg exp= expin='
1287aab3da Mart*0030 # additional options:
6144427bd2 Jean*0031 # include a formated code listing and a listing of compiler transformations
1287aab3da Mart*0032 # in *.L files
                0033 #FFLAGS=$FFLAGS' -R2'
                0034 # assume a loop count of 5,000,000 instead of estimating it from field
6144427bd2 Jean*0035 # declarations and include details messages about vectorization (if -R2
1287aab3da Mart*0036 # specified)
                0037 #FFLAGS=$FFLAGS' -Wf "-pvctl noassume loopcnt=5000000 fullmsg"'
                0038 # trace output for performance analysis
                0039 #FFLAGS=$FFLAGS' -ftrace'
                0040 # default automatic optimization level
6144427bd2 Jean*0041 #FOPTIM='-C vopt'
08055e29de Mart*0042 if test "x$IEEE" = x ; then
                0043  # highest automatic optimization level, handle with care
                0044  FOPTIM='-C hopt'
1287aab3da Mart*0045 
08055e29de Mart*0046  # these files require lower optimization
                0047  NOOPTFILES='ini_forcing.F mom_calc_visc.F'
                0048  NOOPTFLAGS='-C vopt'
                0049 else
                0050  #  Try to follow IEEE-754
                0051  # highest automatic optimization level, handle with care
                0052  FOPTIM='-C vsafe'
                0053 fi
13d43ea6c5 Mart*0054 
bd282699e9 Mart*0055 # awi specific paths and stuff
83e24172f2 Mart*0056 #INCLUDES='-I/SX/usr/include -I/home/sx8/sx8bench/netcdf/include'
                0057 #LIBS='-L/home/sx8/sx8bench/netcdf/lib -lnetcdf'
                0058 INCLUDES='-I/SX/usr/include -I/sx8/user2/awisoft/sx8/netcdf-4.0/dw/include'
                0059 LIBS='-L/sx8/user2/awisoft/sx8/netcdf-4.0/dw/lib -lnetcdf'
acea9c6e3e Mart*0060 # this is needed for compiling on the compute nodes
                0061 INCLUDES=$INCLUDES' -I/SX/opt/mpisx/inst/usr/include'
                0062