Skip to content
Snippets Groups Projects
Commit ca0b1f1d authored by ESCOBAR MUNOZ Juan's avatar ESCOBAR MUNOZ Juan
Browse files

Juan 16/12/2022:Makefile & CO:New spll_lst/spll_new command for 1 time...

Juan 16/12/2022:Makefile & CO:New spll_lst/spll_new command for 1 time compilation in master & user mode
parent 495c3aa3
No related branches found
No related tags found
No related merge requests found
......@@ -140,8 +140,13 @@ fi
dep=`egrep -i "^[[:space:]]*use " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u `
mod=`egrep -i "^[[:space:]]*module " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u | grep -iv procedure `
echo $mod : $spllbase.o >> $DIRNAME/$BASENAME2.D
echo $spllbase.o : $spllfile $dep >> $DIRNAME/$BASENAME2.D
if [ "x$mod" != "x" ]
then
echo $spllbase.o : >> $DIRNAME/$BASENAME2.D
echo $mod : $spllfile $dep >> $DIRNAME/$BASENAME2.D
else
echo $spllbase.o : $spllfile $dep >> $DIRNAME/$BASENAME2.D
fi
if [ "$SUF" = "f90" ]
then
......
#!/bin/bash
#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
#MNH_LIC for details. version 1.
#set -x
if [ $# -ne 2 ]
then
echo ERROR USAGE :: spll NSOURCE file
exit 1
fi
NSOURCE=$1
file=$2
DIRNAME=`dirname $file`
BASENAME=`basename $file`
SUF=`echo $BASENAME | awk -F'.' '{print$2}'`
BASENAME2=`basename $BASENAME .$SUF`
LOCAL=$PWD
TOCASE=${TOCASE-"tolower"}
#
export PERL5LIB=$SRC_MESONH/bin
export FILE_WITHOUT_INTERFACE_NEDEED="\
rttov.*.F90|rttvi.F90|tstrad.*.F90|\
ch_f77.fx90|nband_model.fx90|BASIC.f90|mode_tmat.f90|\
ini_cmfshall.f90|mode_double_double.f90|mode_fgau.f90|\
extern_usersurc_ll.f90|\
extern_userio.f90|fmreadwrit.f90|fm_read_ll.f90|poub.f90|\
mode_glt.*.F90|\
rrtm_.*.F90|srtm_.*.F90|\
libs4py.f90|\
ec_meminfo.F90"
#
if [ "$SUF" = "f" ]
then
echo "!depfile:$BASENAME2.D" > $DIRNAME/spll_$BASENAME
cat $file >> $DIRNAME/spll_$BASENAME
echo "#" $file > $DIRNAME/$BASENAME2.D
else
TMP=/tmp/split.${USER}.$$
mkdir $TMP
trap "[ -d $TMP ] && rm -rf $TMP" 0
export LOC_INTFBDIR=$TMP
export INTFBDIR=$TMP
#cp $file $TMP/fichier_a_split.f90
cp $file $TMP/$BASENAME
echo DIRNAME=$DIRNAME BASENAME=$BASENAME
#
# Split des sources
#
(
cd $TMP
spl ${BASENAME} > liste_file
)
#
#generation de l'interface
#
(
cd $TMP
if [ "`ls modi_* 2>/dev/null`" = "" ]
then
if [ "`echo $BASENAME | egrep -i $FILE_WITHOUT_INTERFACE_NEDEED `" = "" ]
then
for sfile in `cat liste_file`
do
if [ "`egrep -i '^ *module|^ *program' $sfile`" = "" ]
then
if [ "$SUF" = "f90" ]
then
if [ "${CHECK_MODI}" != "" ]
then
#echo "HELLO JUAN OK :: $sfile "
BASENAME_MODI=$( basename $sfile .$SUF )
echo "!auto_modi_in_contains" > $sfile.tmp
echo "module modi_${BASENAME_MODI}" >> $sfile.tmp
echo " contains " >> $sfile.tmp
cat $sfile >> $sfile.tmp
echo "end module modi_${BASENAME_MODI}" >> $sfile.tmp
mv $sfile.tmp $sfile
else
make_intfbl_f90.pl $sfile
fi
elif [ "$SUF" = "fx90" ]
then
make_intfbl_f77.pl $sfile
fi
fi
done
fi
fi
ls -1 $TMP > liste_file
egrep -v "liste_file" liste_file > liste_file2
)
#
# génération des dependances
#
(
cd $TMP
echo "#=========== $BASENAME2.$SUF dependence ==========================" > $DIRNAME/$BASENAME2.D
for sfile in `cat liste_file2`
do
#
# preparation of splitted file
#
base=`echo $sfile | awk -F'.' '{print$1}'`
spllbase="spll_$base"
spllfile="$spllbase.$SUF"
echo "#---------------------- splitted $spllfile dependence -----------" >> $DIRNAME/$BASENAME2.D
#
echo "!depfile:$BASENAME2.D" > $spllfile
#
if [ "`grep -l '^[^\!]*\$n' $sfile`" != "" ]
then
# clonage of "$n" file
let iloop=0
while [ $iloop -lt $NSOURCE ]
do
let iloop=iloop+1
sed -e 's/$n/'$iloop'/g' $sfile >> $spllfile
done
else
cat $sfile >> $spllfile
fi
#
# if splitted file differente of old one, update ...
#
if [ "`diff $spllfile $DIRNAME/$spllfile 2>&1 `" != "" ]
then
cp $spllfile $DIRNAME/$spllfile
touch $DIRNAME/$BASENAME2.D
fi
dep=`egrep -i "^[[:space:]]*use " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u `
mod=`egrep -i "^[[:space:]]*module " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u | grep -iv procedure `
if [ "x$mod" != "x" ]
then
echo $spllbase.o : >> $DIRNAME/$BASENAME2.D
echo $mod : $spllfile $dep >> $DIRNAME/$BASENAME2.D
else
echo $spllbase.o : $spllfile $dep >> $DIRNAME/$BASENAME2.D
fi
if [ "$SUF" = "f90" ]
then
echo " "' $(F90) -I$(OBJDIR)/MOD $(INC) -c $(F90FLAGS) $<' >> $DIRNAME/$BASENAME2.D
else
echo " "' cp $< $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
echo " "' $(FX90) -I$(OBJDIR)/MOD $(INC) -c $(FX90FLAGS) $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
echo " "' rm $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
fi
echo " -mv $spllbase.o"' $(OBJDIR)/. || '"echo OK $spllbase.o " >> $DIRNAME/$BASENAME2.D
for filemod in $mod
do
echo " -mv $filemod "' $(OBJDIR)/MOD/. || '"echo OK $filemod " >> $DIRNAME/$BASENAME2.D
done
unset dep mod
done
touch $DIRNAME/$BASENAME2.D
)
rm -fr $TMP
fi
......@@ -549,20 +549,20 @@ SPLL ?= spll
# GENERATION OF OBJET FILES : *.o
#
%.o:%.f90
echo "inc=$(INC)"
$(F90) -I$(OBJDIR) $(INC) -c $(F90FLAGS) $<
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
#%.o:%.f90
# echo "inc=$(INC)"
# $(F90) -I$(OBJDIR) $(INC) -c $(F90FLAGS) $<
# -mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
%.o:%.f
echo "inc=$(INC)"
$(F77) -I$(OBJDIR) $(INC) -c $(F77FLAGS) $<
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
%.o:%.fx90
cp $< $(OBJDIR)/$(*F).f
$(FX90) -I$(OBJDIR) $(INC) -c $(FX90FLAGS) $(OBJDIR)/$(*F).f
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
#%.o:%.fx90
# cp $< $(OBJDIR)/$(*F).f
# $(FX90) -I$(OBJDIR) $(INC) -c $(FX90FLAGS) $(OBJDIR)/$(*F).f
# -mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
%.o : %.c
$(CC) $(INC) $(CFLAGS) $(CPPFLAGS_C) -c $< -o $(OBJDIR)/$(*F).o
......
......@@ -78,8 +78,9 @@ OPT_NOCB = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC)
# spll_advection_uvw.o spll_resolved_cloud.o
#$(OBJS_ASYNAll) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC) -h acc_model=auto_async_all
OBJS_CONCURRENT=spll_multigrid.o spll_turb_ver_thermo_flux.o spll_resolved_cloud.o
$(OBJS_CONCURRENT) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC) -h concurrent
OBJS_CONCURRENT=spll_multigrid.o spll_turb_ver_thermo_flux.o
#spll_resolved_cloud.o
$(OBJS_CONCURRENT) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC) -h concurrent -rdimo
endif
ifeq "$(OPTLEVEL)" "OPENACCNOBITREP"
......@@ -102,8 +103,9 @@ OPT_NOCB = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC)
# spll_advection_uvw.o spll_resolved_cloud.o
#$(OBJS_ASYNAll) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC) -h acc_model=auto_async_all
OBJS_CONCURRENT=spll_multigrid.o spll_turb_ver_thermo_flux.o spll_resolved_cloud.o
$(OBJS_CONCURRENT) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC) -h concurrent
OBJS_CONCURRENT=spll_multigrid.o spll_turb_ver_thermo_flux.o
# spll_resolved_cloud.o
$(OBJS_CONCURRENT) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_OPENACC) -h concurrent -rdimo
endif
#
......@@ -279,11 +281,11 @@ include Makefile.MESONH.mk
##########################################################
# Juan & Maud 20/03/2008 --> Ifort 10.1.008 Bug O2 optimization
#OPT_PERF1 = -O1
OBJS_O1= spll_schu.o spll_ps2str.o spll_ini_one_way_n.o spll_urban_solar_abs.o spll_mode_ekf.o
OBJS_O1= spll_schu.o spll_ps2str.o spll_ini_one_way_n.o spll_urban_solar_abs.o spll_mode_ekf.o mode_ekf.mod
#spll_p_abs.o
$(OBJS_O1) : OPT = $(OPT_BASE) $(OPT_PERF1)
OBJS_O0= spll_mode_gridproj.o spll_ini_dynamics.o spll_sunpos_n.o spll_average_diag.o spll_write_lfifm1_for_diag.o \
spll_write_aircraft_balloon.o spll_mode_write_les_n.o
OBJS_O0= mode_gridproj.mod spll_mode_gridproj.o spll_ini_dynamics.o spll_sunpos_n.o spll_average_diag.o spll_write_lfifm1_for_diag.o \
spll_write_aircraft_balloon.o spll_mode_write_les_n.o mode_write_les_n.mod modd_mnh_surfex_n.mod
# spll_ground_param_n.o
$(OBJS_O0) : OPT = $(OPT_BASE) $(OPT_PERF0)
......@@ -294,18 +296,19 @@ $(OBJS_I8) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_I8)
endif
ifeq "$(MNH_INT)" "8"
OBJS_I4=spll_modd_netcdf.o
OBJS_I4=spll_modd_netcdf.o modd_netcdf.mod
$(OBJS_I4) : OPT = $(OPT_BASE_I4)
endif
OBJS_LST = spll_condensation.o spll_turb_ver_thermo_flux.o spll_rotate_wind.o spll_mode_mnh_zwork.o spll_contrav_device.o \
OBJS_LST = spll_condensation.o spll_turb_ver_thermo_flux.o spll_rotate_wind.o spll_mode_mnh_zwork.o mode_mnh_zwork.mod spll_contrav_device.o \
spll_advection_metsv.o \
spll_mym_device.o spll_myf_device.o spll_dyf_device.o \
spll_gx_m_u_device.o spll_gy_m_v_device.o \
spll_gravity.o spll_gravity_impl.o \
spll_advection_uvw.o spll_resolved_cloud.o spll_mode_tools.o spll_mode_rain_ice_sedimentation_split.o spll_ice_adjust.o \
spll_advection_uvw.o spll_resolved_cloud.o spll_mode_tools.o mode_tools.mod \
spll_mode_rain_ice_sedimentation_split.o mode_rain_ice_sedimentation_split.mod spll_ice_adjust.o \
spll_countjv1d_device.o spll_countjv2d_device.o spll_countjv3d_device.o \
spll_mode_turb.o spll_phys_param_n.o spll_model_n.o spll_tridiag_tke.o \
spll_mode_turb.o mode_turb.mod spll_phys_param_n.o spll_model_n.o spll_tridiag_tke.o \
spll_turb_ver_thermo_corr.o spll_tke_eps_sources.o spll_turb_ver_dyn_flux.o \
spll_turb_hor_uv.o spll_turb_hor_uw.o spll_turb_hor_vw.o \
spll_turb_hor_dyn_corr.o spll_turb_hor_thermo_flux.o \
......@@ -314,16 +317,20 @@ OBJS_LST = spll_condensation.o spll_turb_ver_thermo_flux.o spll_rotate_wind.o sp
spll_get_halo_start_d.o spll_get_halo_stop_d.o spll_mass_leak.o \
spll_ppm_01_x.o spll_ppm_01_y.o spll_ppm_01_z.o \
spll_ppm_s0_x.o spll_ppm_s0_y.o spll_ppm_s0_z.o \
spll_mode_rain_ice_slow.o spll_mode_rain_ice_fast_rs.o \
spll_prandtl.o spll_mode_rain_ice_fast_rg.o spll_mode_rain_ice_fast_ri.o \
spll_mode_rain_ice.o spll_mode_rain_ice_warm.o \
spll_mode_rain_ice_slow.o mode_rain_ice_slow.mod spll_mode_rain_ice_fast_rs.o mode_rain_ice_fast_rs.mod \
spll_prandtl.o spll_mode_rain_ice_fast_rg.o mode_rain_ice_fast_rg.mod spll_mode_rain_ice_fast_ri.o mode_rain_ice_fast_ri.mod \
spll_mode_rain_ice.o mode_rain_ice.mod spll_mode_rain_ice_warm.o mode_rain_ice_warm.mod \
spll_ground_param_n.o spll_advec_ppm_algo.o \
spll_turb_hor_sv_corr.o spll_rain_ice.o spll_mode_rain_ice_nucleation.o \
spll_mode_prandtl.o spll_turb_ver.o spll_mode_repro_sum.o \
spll_turb_hor_sv_corr.o spll_rain_ice.o spll_mode_rain_ice_nucleation.o mode_rain_ice_nucleation.mod \
spll_mode_prandtl.o mode_prandtl.mod spll_turb_ver.o spll_mode_repro_sum.o mode_repro_sum.mod \
spll_tridiag_thermo.o spll_tridiag_wind.o spll_tridiag_w.o \
spll_tridiag_tke.o
spll_tridiag_tke.o spll_advec_weno_k_2_my.o spll_advec_weno_k_2_mx.o \
spll_advec_weno_k_2_vy.o spll_advec_weno_k_2_ux.o spll_mxm_device.o \
spll_mym_device.o spll_mzm_device.o
$(OBJS_LST) : OPT += -rdimo
#$(OBJS_LST) : OPT += -rdimo
OPT += -rimo
SPLL = spll_lst
......@@ -22,7 +22,7 @@ TP= -tp=px
#
#Version of CUDA
#(8.0 at least if compute capability >= 6.0)
CUDALEVEL=cuda11.4
CUDALEVEL=cuda11.0
#
#Compute capability of GPU
#
......@@ -87,6 +87,15 @@ OPT = $(OPT_BASE) $(OPT_PERF2)
OPT0 = $(OPT_BASE) $(OPT_PERF0)
OPT_NOCB = $(OPT_BASE) $(OPT_PERF2)
#
#
# List of Files with compilation problem in O2
#
OBJS_REPROD= spll_mode_sum_ll.o mode_sum_ll.mod
OBJS_O1_OPENACC= spll_ice4_tendencies.o spll_turb_ver_thermo_flux.o spll_mode_device.o mode_device.mod spll_mppdb_check3d_real_mg.o \
spll_mppdb_check0d_real_mg.o spll_mode_turb.o mode_turb.mod spll_modd_les_n.o modd_les_n.mod
#
#
ifeq "$(OPTLEVEL)" "DEBUG"
OPT = -g $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK)
OPT0 = -g $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK)
......@@ -99,7 +108,6 @@ OPT = -g $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2)
OPT0 = -g $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF0)
OPT_NOCB = -g $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2)
CXXFLAGS = -g -acc -Kieee -Mnofma $(OPT_MANAGED)
OBJS_REPROD= spll_mode_sum_ll.o
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g
endif
#
......@@ -109,12 +117,10 @@ OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2)
OPT0 = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF0)
OPT_NOCB = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2)
CXXFLAGS = -acc -Kieee -Mnofma $(OPT_MANAGED) -gpu=nofma
OBJS_REPROD= spll_mode_sum_ll.o
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2) -Mvect=nosimd -Minfo=all
OBJS_OPENACC = spll_modd_halo_d.o
OBJS_OPENACC = spll_modd_halo_d.o modd_halo_d.mod
$(OBJS_OPENACC) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
OBJS_O1_MANAGED= spll_ice4_tendencies.o spll_turb_ver_thermo_flux.o spll_turb_hor_dyn_corr.o spll_mode_turb.o
$(OBJS_O1_MANAGED) : OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF1)
$(OBJS_O1_OPENACC) : OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF1)
endif
#
ifeq "$(OPTLEVEL)" "MULTICORE"
......@@ -124,16 +130,16 @@ OPT0 = $(OPT_BASE) $(OPT_MULTICORE) $(OPT_PERF0)
OPT_NOCB = $(OPT_BASE) $(OPT_MULTICORE)
CXXFLAGS = -acc -Kieee -Mnofma $(OPT_MULTICORE)
endif
#
ifeq "$(OPTLEVEL)" "OPENACC"
CPPFLAGS += -DMNH_OPENACC -DMNH_GPUDIRECT
# -imacros MNH_OPENACC_SHUMAN_MACRO.CPP
OPT = -g $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
OPT0 = -g $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
OPT_NOCB = -g $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
CXXFLAGS = -g -acc -Kieee -Mnofma $(OPT_OPENACC)
OBJS_REPROD= spll_mode_sum_ll.o
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g
OPT = -gopt $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
OPT0 = -gopt $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
OPT_NOCB = -gopt $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
CXXFLAGS = -gopt -acc -Kieee -Mnofma $(OPT_OPENACC)
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -gopt
$(OBJS_O1_OPENACC) : OPT = -gopt $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF1)
endif
ifeq "$(OPTLEVEL)" "OPENACCO2"
CPPFLAGS += -DMNH_OPENACC -DMNH_GPUDIRECT
......@@ -141,10 +147,17 @@ OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
OPT0 = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
OPT_NOCB = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
CXXFLAGS = -acc -Kieee -Mnofma $(OPT_OPENACC)
OBJS_REPROD= spll_mode_sum_ll.o
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all
OBJS_O1_OPENACC= spll_ice4_tendencies.o spll_turb_ver_thermo_flux.o spll_mode_device.o spll_mppdb_check3d_real_mg.o \
spll_mppdb_check0d_real_mg.o spll_mode_turb.o
$(OBJS_O1_OPENACC) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF1)
endif
ifeq "$(OPTLEVEL)" "OPENACCO2NOBITREP"
MNH_BITREP = NO
CPPFLAGS += -DMNH_OPENACC -DMNH_GPUDIRECT
OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
OPT0 = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
OPT_NOCB = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
CXXFLAGS = -acc -Kieee -Mnofma $(OPT_OPENACC)
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all
$(OBJS_O1_OPENACC) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF1)
endif
#
......@@ -154,7 +167,6 @@ OPT = -g $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF0)
OPT0 = -g $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF0)
OPT_NOCB = -g $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF0)
CXXFLAGS = -Kieee -Mnofma $(OPT_NOOPENACC)
OBJS_REPROD= spll_mode_sum_ll.o
$(OBJS_REPROD) : OPT = -g $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all
endif
#
......@@ -164,7 +176,6 @@ OPT = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2)
OPT0 = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF0)
OPT_NOCB = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2)
CXXFLAGS = -Kieee -Mnofma $(OPT_NOOPENACC)
OBJS_REPROD= spll_mode_sum_ll.o
$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g
endif
#
......@@ -208,7 +219,7 @@ CPPFLAGS_MNH += -DMNH_EXPAND -DMNH_EXPAND_OPENACC
# BITREP flags
#
#if MNH_BITREP exists => compile with the BITREP library
MNH_BITREP = YES
MNH_BITREP ?= YES
ifeq "$(MNH_BITREP)" "YES"
CPPFLAGS_MNH += -DMNH_BITREP
endif
......@@ -263,11 +274,12 @@ include Makefile.MESONH.mk
# etc ... #
# #
##########################################################
OBJS_O1 += spll_modd_isba_n.o spll_mode_construct_ll.o \
spll_init_surf_atm_n.o spll_mode_scatter_ll.o spll_convert_patch_teb.o \
spll_define_mask_n.o spll_del1dfield_ll.o spll_mode_fm.o spll_mode_gather_ll.o \
ifneq "$(OPTLEVEL)" "DEBUG"
OBJS_O1 += spll_modd_isba_n.o modd_isba_n.mod spll_mode_construct_ll.o mode_construct_ll.mod \
spll_init_surf_atm_n.o spll_mode_scatter_ll.o mode_scatter_ll.mod spll_convert_patch_teb.o \
spll_define_mask_n.o spll_del1dfield_ll.o spll_mode_fm.o mode_fm.mod spll_mode_gather_ll.o mode_gather_ll.mod \
spll_convect_updraft.o spll_convect_updraft_shal.o \
spll_mode_dustopt.o spll_mode_saltopt.o \
spll_mode_dustopt.o mode_dustopt.mod spll_mode_saltopt.o mode_saltopt.mod \
spll_aeroopt_get.o spll_write_lfifm1_for_diag_supp.o spll_write_lfifm1_for_diag.o spll_write_lfifm_n.o \
#spll_unpack_1d_2d_from2d.o
......@@ -275,22 +287,24 @@ OBJS_O1 += spll_modd_isba_n.o spll_mode_construct_ll.o \
#spll_phys_param_n.o
$(OBJS_O1) : OPT = $(OPT_BASE) $(OPT_PERF1)
OBJS_O0= spll_mode_mppdb.o \
OBJS_O0= spll_mode_mppdb.o mode_mppdb.mod \
spll_fft55.o spll_fft.o spll_flat_invz.o \
spll_mode_repro_sum.o \
spll_modd_les_n.o \
spll_default_desfm_n.o
#default_desfmn: workaround a nvhpc 21.9 bug (run stall in default_desfmn)
spll_mode_repro_sum.o mode_repro_sum.mod \
spll_modd_les_n.o modd_les_n.mod \
spll_default_desfm_n.o \
spll_modd_pack_gr_field_n.o modd_pack_gr_field_n.mod
$(OBJS_O0) : OPT = -g $(OPT_BASE) $(OPT_PERF0)
#default_desfmn: workaround a nvhpc 21.9 bug (run stall in default_desfmn)
# spll_fast_terms.o
# spll_modd_ch_solver_n.o \
# spll_modd_dummy_gr_field_n.o spll_modd_dyn_n.o
# spll_mode_sum_ll.o
$(OBJS_O0) : OPT = -g $(OPT_BASE) $(OPT_PERF0)
OBJS_O2= spll_mode_device.o
OBJS_O2= spll_mode_device.o mode_device.mod
$(OBJS_O2) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
endif
ifneq "$(findstring 8,$(LFI_INT))" ""
OBJS_I8=spll_NEWLFI_ALL.o
......@@ -298,6 +312,8 @@ $(OBJS_I8) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_I8)
endif
ifeq "$(MNH_INT)" "8"
OBJS_I4=spll_modd_netcdf.o
OBJS_I4=spll_modd_netcdf.o modd_netcdf.mod
$(OBJS_I4) : OPT = $(OPT_BASE_I4)
endif
SPLL = spll_new
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment