Philippe 19/11/2015: added missing rule for LFI_INT + new versions of compilers for...
[MNH-git_open_source-lfs.git] / src / Rules.AIX64.mk
1 #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
3 #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
4 #MNH_LIC for details. version 1.
5 ##########################################################
6 #                                                        #
7 # Compiler Options                                       #
8 #                                                        #
9 ##########################################################
10 #OBJDIR_PATH=/home/escj/azertyuiopqsdfghjklm/wxcvbn/azertyuiopqsdfghjklmwxcvbn 
11 #
12 OPT_BASE  = -q64 -qsigtrap -qfloat=nans \
13             -qflttrap=enable:overflow:zerodivide:invalid \
14             -qautodbl=dbl4 -qzerosize -g -qstrict -qfullpath -qspillsize=32648 \
15             -qinitauto=0 -qdpc=e -qmaxmem=-1 -qnoescape 
16             
17 OPT_PERF0 = -O0 -qnooptimize
18 OPT_PERF2 = -O2
19 OPT_PERF3 = -O3 -qarch=auto -qtune=auto -qnohot
20 OPT_PERF4 = -O3 -qarch=auto -qtune=auto -qhot -qsimd=auto -qnostrict
21 OPT_CHECK = -C
22 OPT_I8    = -qintsize=8
23 #
24 #
25 # Integer 4/8 option
26 #
27 MNH_INT   ?=4
28 LFI_RECL  ?=512
29 #
30 ifeq "$(MNH_INT)" "8"
31 OPT_BASE         += $(OPT_I8)
32 LFI_INT           ?=8
33 MNH_MPI_RANK_KIND ?=8
34 else
35 MNH_MPI_RANK_KIND ?=4
36 LFI_INT           ?=4
37 endif
38 OPT       = $(OPT_BASE) $(OPT_PERF2) 
39 OPT0      = $(OPT_BASE) $(OPT_PERF0) 
40 OPT_NOCB  = $(OPT_BASE) $(OPT_PERF2)
41 #
42 ifeq "$(OPTLEVEL)" "DEBUG"
43 OPT       = $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK)
44 OPT0      = $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK)
45 OPT_NOCB  = $(OPT_BASE) $(OPT_PERF0)
46 endif
47 #
48 ifeq "$(OPTLEVEL)" "O3"
49 OPT       = $(OPT_BASE) $(OPT_PERF3)
50 OPT0      = $(OPT_BASE) $(OPT_PERF0)
51 OPT_NOCB  = $(OPT_BASE) $(OPT_PERF3)
52 endif
53 #
54 ifeq "$(OPTLEVEL)" "O4"
55 OPT       = $(OPT_BASE) $(OPT_PERF4)
56 OPT0      = $(OPT_BASE) $(OPT_PERF0)
57 OPT_NOCB  = $(OPT_BASE) $(OPT_PERF4)
58 OBJS2    += spll_mode_dustopt.o spll_mode_saltopt.o
59 $(OBJS2) :  OPT =  $(OPT_BASE)  $(OPT_PERF2)               
60 endif
61 #
62 #            
63 F90 = mpxlf95_r
64 F90FLAGS =       $(OPT) -qfree=f90 -qsuffix=f=f90 
65 F77 = $(F90)
66 F77FLAGS      =  $(OPT) -qfixed
67 FX90 = $(F90)
68 FX90FLAGS     =  $(OPT) -qfixed
69 FC = $(F90)
70 #
71
72 #
73 # vargas / c1a underscore management 
74 #
75 ifneq "$(findstring vargas,$(shell uname -n))" ""
76 LDFLAGS   =  $(OPT) -brename:.flush,.flush_ 
77 else
78 LDFLAGS   =  $(OPT) 
79 endif
80 #
81 # preprocessing flags 
82 #
83 CPP = /usr/lib/cpp -C -P -qlanglvl=classic
84 #
85 CPPFLAGS_SURFEX    =
86 CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND)
87 CPPFLAGS_RAD       =
88 CPPFLAGS_NEWLFI    = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL}
89 CPPFLAGS_MNH       = -DAMAX1=MAX -DMNH
90 #
91 # Gribex flags
92 #
93 #TARGET_GRIBEX=rs6000
94 TARGET_GRIBEX=ibm_power4
95 CNAME_GRIBEX=""
96 #A64=A64
97 ##########################################################
98 #                                                        #
99 # Source of MESONH PACKAGE  Distribution                 #
100 #                                                        #
101 ##########################################################
102 #DIR_SURFEX      += ARCH_SRC/surfex 
103 #DIR_SURCOUCHE   += ARCH_SRC/bug_surcouche
104 #
105 include Makefile.MESONH.mk
106 #
107 ##########################################################
108 #                                                        #
109 # extra VPATH, Compilation flag modification             #
110 #         systeme module , etc ...                       #
111 #         external precompiled module librairie          #
112 #         etc ...                                        #
113 #                                                        #
114 ##########################################################
115 OPT_PERF1  =  -O0 # option -O1 non encore supporté sur IBM !!!
116 OBJS_O1 += spll_aeroopt_get.o
117 $(OBJS_O1) : OPT = $(OPT_BASE) $(OPT_PERF1)
118
119 #OBJS_O0 += spll_compute_exner_from_ground3d.o  spll_compute_exner_from_ground1d.o spll_modi_set_rsou.o spll_set_rsou.o
120 OBJS_O0 += spll_compute_exner_from_ground1d.o 
121 $(OBJS_O0) : OPT = $(OPT_BASE) $(OPT_PERF0)
122
123 ifneq "$(findstring 8,$(LFI_INT))" ""
124 OBJS_I8=spll_NEWLFI_ALL.o
125 $(OBJS_I8) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_I8)
126 endif
127