Juan 13/09/2016:Rules.LXgfortran.mk , compile the tools if gfortran >= 5.X
[MNH-git_open_source-lfs.git] / src / Rules.LXgfortran.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  =  -g -fno-second-underscore -fpic  -ffpe-trap=overflow,zero,invalid  -fbacktrace
13 #
14 OPT_PERF0 = -O0
15 OPT_PERF2 = -O2
16 OPT_CHECK = -fbounds-check -finit-real=nan
17 OPT_I8    = -fdefault-integer-8 
18 OPT_R8    = -fdefault-real-8 -fdefault-double-8
19 #
20 #
21 # Real/Integer 4/8 option
22 #
23 MNH_REAL  ?=R8
24 MNH_INT   ?=4
25 LFI_RECL  ?=512
26 #
27 #
28 ifneq "$(MNH_REAL)" "R4"
29 OPT_BASE           += $(OPT_R8)
30 CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION
31 endif
32 #
33 OPT_BASE_I4       := $(OPT_BASE)
34 ifeq "$(MNH_INT)" "8"
35 OPT_BASE          += $(OPT_I8)
36 LFI_INT           ?=8
37 MNH_MPI_RANK_KIND ?=8
38 else
39 MNH_MPI_RANK_KIND ?=4
40 LFI_INT           ?=4
41 endif
42 #
43 #
44 OPT       = $(OPT_BASE) $(OPT_PERF2) 
45 OPT0      = $(OPT_BASE) $(OPT_PERF0) 
46 OPT_NOCB  = $(OPT_BASE) $(OPT_PERF2)
47 #
48 ifeq "$(OPTLEVEL)" "DEBUG"
49 OPT       = $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK)
50 OPT0      = $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK)
51 OPT_NOCB  = $(OPT_BASE) $(OPT_PERF0)
52 CFLAGS    += -g -O0
53 endif
54 #
55 #  
56 FC = gfortran 
57 ifeq "$(VER_MPI)" "MPIAUTO"
58 F90 = mpif90
59 else         
60 F90 = gfortran
61 endif
62 #
63 F90FLAGS      =  $(OPT) 
64 F77 = $(F90)
65 F77FLAGS      =  $(OPT) 
66 FX90 = $(F90)
67 FX90FLAGS     =  $(OPT) 
68 #
69 LDFLAGS   =   -Wl,-warn-once
70 #
71 # preprocessing flags 
72 #
73 CPP = cpp -P -traditional -Wcomment
74 #
75 CPPFLAGS_SURFEX    =
76 CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL  -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND)
77 CPPFLAGS_RAD       =
78 CPPFLAGS_NEWLFI    = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL}
79 CPPFLAGS_MNH       = -DMNH -DAINT=INT -DAMOD=MOD
80 ifdef VER_GA
81 CPPFLAGS_SURCOUCHE += -DMNH_GA
82 INC                += -I${GA_ROOT}/include
83 LIBS               += -L${GA_ROOT}/lib -larmci -lga
84 endif
85 #
86 # Gribex flags
87 #
88 TARGET_GRIBEX=linux
89 CNAME_GRIBEX=_gfortran
90 #
91 # Netcdf/HDF5 flags
92 #
93 HDF_CONF= CFLAGS=-std=c99
94 #
95 # LIBTOOLS flags
96 #
97 #if MNH_TOOLS exists => compile the tools if gfortran >= 5.X
98 ifeq ($(shell test $$( gfortran -dumpversion | cut -b1 ) -ge 5 ; echo $$?),0)
99 MNH_TOOLS = yes
100 endif
101 #
102 ##########################################################
103 #                                                        #
104 # Source of MESONH PACKAGE  Distribution                 #
105 #                                                        #
106 ##########################################################
107 #
108 include Makefile.MESONH.mk
109 #
110 ##########################################################
111 #                                                        #
112 # extra VPATH, Compilation flag modification             #
113 #         systeme module , etc ...                       #
114 #         external precompiled module librairie          #
115 #         etc ...                                        #
116 #                                                        #
117 ##########################################################
118
119 ifneq "$(findstring 8,$(LFI_INT))" ""
120 OBJS_I8=spll_NEWLFI_ALL.o
121 $(OBJS_I8) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_I8)
122 endif
123
124 ifeq "$(MNH_INT)" "8"
125 OBJS_I4=spll_modd_netcdf.o
126 $(OBJS_I4) : OPT = $(OPT_BASE_I4)
127 endif
128