File: language-support.F90

package info (click to toggle)
fortran-julienne 3.6.2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 828 kB
  • sloc: f90: 5,043; makefile: 22; ansic: 14
file content (60 lines) | stat: -rw-r--r-- 2,290 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
! Copyright (c) 2024-2025, The Regents of the University of California
! Terms of use are as specified in LICENSE.txt

#ifndef _JULIENNE_LANGUAGE_SUPPORT_H
#define _JULIENNE_LANGUAGE_SUPPORT_H

#ifdef __GNUC__
#  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#else
#  define GCC_VERSION 0
#endif

#if __GNUC__ && ( __GNUC__ < 14 || (__GNUC__ == 14 && __GNUC_MINOR__ < 3) )
#define GCC_GE_MINIMUM
#endif

! If not already determined, make a compiler-dependent determination of whether Julienne may use
! multi-image features such as `this_image()` and `sync all`.
#ifndef HAVE_MULTI_IMAGE_SUPPORT
#  if defined(__flang__) || defined(__LFORTRAN__) || (defined(__INTEL_COMPILER) && (__INTEL_COMPILER < 20250201))
#    define HAVE_MULTI_IMAGE_SUPPORT 0
#  else
#    define HAVE_MULTI_IMAGE_SUPPORT 1
#  endif
#endif

! If not already determined, make a compiler-dependent determination of whether Julienne may invoke
! co_max with a character array first argument, a feature used in Julienne's co_gather function
#ifndef HAVE_CO_MAX_CHARACTER_ARRAY_SUPPORT
#  if ! HAVE_MULTI_IMAGE_SUPPORT
#    define HAVE_CO_MAX_CHARACTER_ARRAY_SUPPORT 0
#  elif defined(_CRAYFTN) || defined(NAGFOR) || defined(__flang__)
#    define HAVE_CO_MAX_CHARACTER_ARRAY_SUPPORT 1
#  else
#    define HAVE_CO_MAX_CHARACTER_ARRAY_SUPPORT 0
#  endif
#endif

! If not already determined, make a compiler-dependent determination of whether Julienne may pass
! procedure actual arguments to procedure pointer dummy arguments, a feature introduced in
! Fortran 2008 and described in Fortran 2023 clause 15.5.2.10 paragraph 5.
#ifndef HAVE_PROCEDURE_ACTUAL_FOR_POINTER_DUMMY
#if defined(_CRAYFTN) || defined(__INTEL_COMPILER) || defined(NAGFOR) || defined(__flang__) || (GCC_VERSION > 140200)
#    define HAVE_PROCEDURE_ACTUAL_FOR_POINTER_DUMMY 1
#  else
#    define HAVE_PROCEDURE_ACTUAL_FOR_POINTER_DUMMY 0
#  endif
#endif

! If not already determined, make a compiler-dependent determination of whether Julienne may use
! kind type parameters for derived types.
#ifndef HAVE_DERIVED_TYPE_KIND_PARAMETERS
#  if defined(__GFORTRAN__) || defined(__LFORTRAN__)
#    define HAVE_DERIVED_TYPE_KIND_PARAMETERS 0
#  else
#    define HAVE_DERIVED_TYPE_KIND_PARAMETERS 1
#  endif
#endif

#endif