So soon this compiler will join this six-pack list to compile this widely used F2003 code of your neighbor university? Here is its Makefile:
# Specify a particular compiler with 'make COMPILER=pgi', etc.
# Specify debugging flags with 'make MODE=debug'
# If floating-point consistency is required then set the flag 'CONS=1'
# Alternatively, these options can be specified as environment variables
# eg. 'export COMPILER=gfortran' can be added to $HOME/.bashrc
# Compiler specific flags
# PGI
# ===
ifeq ($(strip $(COMPILER)),pgi)
FFLAGS = -r8 -fast -fastsse -O3 -Mipa=fast,inline -Minfo # Optimised
# Intel
# =====
ifeq ($(strip $(COMPILER)),intel)
FFLAGS = -O3 -g -stand f03
# gfortran
# ========
ifeq ($(strip $(COMPILER)),gfortran)
FFLAGS = -O3 -g -std=f2003
# g95
# ========
ifeq ($(strip $(COMPILER)),g95)
FFLAGS = -O3
# IBM Bluegene
# ============
ifeq ($(strip $(COMPILER)),ibm)
FFLAGS = -O5 -qhot -qipa # Optimised
# IBM compiler needs a -WF to recognise preprocessor directives
D = -WF,-D
endif
# ARCHER (also works for HECToR)
# ========
ifeq ($(strip $(COMPILER)),archer)
FFLAGS = -O3 -hipa2
# The following are a list of pre-processor defines which can be added to
# the above line modifying the code behaviour at compile time.
# Set every pseudoparticle in a species to represent the same number of
# real particles.
#DEFINES += $(D)PER_SPECIES_WEIGHT
# Use second order particle weighting (default is third order).
#DEFINES += $(D)PARTICLE_SHAPE_TOPHAT
# Use fifth order particle weighting (default is third order).
#DEFINES += $(D)PARTICLE_SHAPE_BSPLINE3
https://github.com/Warwick-Plasma/epoch
I think the best way to decide which new Standard's features to add is to compile broadly used modern codes. Only this will widen the pool of new customers because it will ensure that the compiler is future proof and hence it will be appealing to the younger generation.
By the way all these compilers despite support of the 2003-2008 features either not heard of any debuggers in Linux or use debuggers which are not far from punchcards era . You waste 10x more time with them making your code working. With this code I started my attempts to modify it to my needs in January and only now succeeded with gFortran.
Due to the same problem of absence of good debuggers on all other compilers and the fact that FTN95 was not compiling another large and pretty brain breaking code which has exactly this ASSOCIATE feature i failed so far to get through this another PIC code. It is even not clear if this F2003 feature was really necessary but it was among things which stopped the code to compile.
https://gitlab.com/MD-CWI-NL/afivo-pic
With the debugger like SDBG you would just get through the running code step by step and get everything in one day. Without debuggers in some cases you will be getting stuck like in an encrypted web. And learning new complex language features without debuggers is a pure hell.
It is obvious that ALL 15 and 20 years old Standard's features have to be implemented. What the point to implement only part of existing Standards ? Imagine some arbitrary compiler which only supports part of F2018 Standard, part of F2008 Standard, part of F2003, part of F1995, part of F1977, part of F1966 then it will essentially run just the Fortran4 codes gathering around only appropriate declining legacy codes public.