Browse Source

Update Fortran return for complex data types (Cray and Nvidia compilers)

tags/v0.3.29
Caroline Newcombe 10 months ago
parent
commit
760bf7aa37
3 changed files with 10 additions and 4 deletions
  1. +5
    -3
      Makefile.system
  2. +1
    -1
      common_arm64.h
  3. +4
    -0
      common_x86_64.h

+ 5
- 3
Makefile.system View File

@@ -1392,15 +1392,17 @@ endif
endif endif


ifeq ($(F_COMPILER), CRAY) ifeq ($(F_COMPILER), CRAY)
CCOMMON_OPT += -DF_INTERFACE_INTEL
CCOMMON_OPT += -DF_INTERFACE_CRAYFC
FCOMMON_OPT += -hnopattern FCOMMON_OPT += -hnopattern
ifdef INTERFACE64 ifdef INTERFACE64
ifneq ($(INTERFACE64), 0) ifneq ($(INTERFACE64), 0)
FCOMMON_OPT += -s integer64 FCOMMON_OPT += -s integer64
endif endif
endif endif
ifneq ($(USE_OPENMP), 1)
FCOMMON_OPT += -O noomp
ifeq ($(USE_OPENMP), 1)
FCOMMON_OPT += -fopenmp
else
FCOMMON_OPT += -fno-openmp
endif endif
endif endif




+ 1
- 1
common_arm64.h View File

@@ -44,7 +44,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define RMB __asm__ __volatile__ ("dmb ishld" : : : "memory") #define RMB __asm__ __volatile__ ("dmb ishld" : : : "memory")
#endif #endif


#if defined( F_INTERFACE_FLANG) || defined(F_INTERFACE_PGI)
#if defined( F_INTERFACE_FLANG) || (defined(F_INTERFACE_PGI) && (defined(__NVCOMPILER) && (__NVCOMPILER_MAJOR__ < 23 || (__NVCOMPILER_MAJOR__ == 23 && __NVCOMPILER_MINOR__ < 9))))
#define RETURN_BY_STACK #define RETURN_BY_STACK
#else #else
#define RETURN_BY_COMPLEX #define RETURN_BY_COMPLEX


+ 4
- 0
common_x86_64.h View File

@@ -283,6 +283,10 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){
#define RETURN_BY_STACK #define RETURN_BY_STACK
#endif #endif


#ifdef F_INTERFACE_CRAYFC
#define RETURN_BY_PACKED
#endif

#ifdef F_INTERFACE_FUJITSU #ifdef F_INTERFACE_FUJITSU
#define RETURN_BY_STACK #define RETURN_BY_STACK
#endif #endif


Loading…
Cancel
Save