Skip to content

Commit

Permalink
Merge pull request #275 from easifem-fortran/dev
Browse files Browse the repository at this point in the history
easifemBase.v23.10.2
  • Loading branch information
vickysharma0812 authored Jan 2, 2024
2 parents 60002a6 + 81996e7 commit 2206e9a
Show file tree
Hide file tree
Showing 91 changed files with 9,727 additions and 5,883 deletions.
418 changes: 0 additions & 418 deletions CMakeCache.txt

This file was deleted.

52 changes: 52 additions & 0 deletions build.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/usr/bin/env python3
#!/Users/easifem/anaconda3/envs/easifem/bin/python3

# This program is a part of EASIFEM library.
# See. www.easifem.com
# Copyright (c) 2020-2021, All right reserved, Vikas Sharma, Ph.D.
#

import os
import platform

print("Detecting OS type...")
_os = platform.system()
if _os == "Windows":
print("ERROR: INSTALLATION on windows is work in progress")
exit
# print("Please use Windows Subsystem Linux(WSL) ")
# print("Installation DONE!!")
else:
cmake_def = ""
cmake_def += ' -G "Ninja"' # Unix Makefiles, Ninja, Ninja Multi-Config
cmake_def += " -D USE_OpenMP:BOOL=ON" # OFF
cmake_def += " -D CMAKE_BUILD_TYPE:STRING=Debug" # Release
cmake_def += " -D BUILD_SHARED_LIBS:BOOL=ON"
cmake_def += " -D USE_PLPLOT:BOOL=ON"
cmake_def += " -D CMAKE_INSTALL_PREFIX:PATH=${EASIFEM_BASE}"
cmake_def += " -D USE_BLAS95:BOOL=ON"
cmake_def += " -D USE_LAPACK95:BOOL=ON"
cmake_def += " -D USE_FFTW:BOOL=ON"
cmake_def += " -D USE_GTK:BOOL=OFF"
cmake_def += " -D USE_ARPACK:BOOL=ON"
cmake_def += " -D USE_SUPERLU:BOOL=ON"
cmake_def += " -D USE_LIS:BOOL=ON"
cmake_def += " -D USE_PARPACK:BOOL=OFF"
cmake_def += " -D USE_METIS:BOOL=OFF"
cmake_def += " -D USE_LUA:BOOL=ON"
cmake_def += " -D USE_Int32:BOOL=ON"
cmake_def += " -D USE_Real64:BOOL=ON"
cmake_def += " -D COLOR_DISP:BOOL=OFF"
cmake_def += " -D CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON"

print("CMAKE DEF : ", cmake_def)

_build0 = os.path.join(os.environ["HOME"], "temp")
build_dir = os.path.join(
os.environ.get("EASIFEM_BUILD_DIR", _build0), "easifem", "base", "build"
)
# build_dir = os.environ["HOME"] + "/temp/easifem-base/build"
os.makedirs(build_dir, exist_ok=True)
os.system(f"cmake -S ./ -B {build_dir} {cmake_def}")
os.system(f"cmake --build {build_dir}")
print("Build DONE!!")
52 changes: 52 additions & 0 deletions release_install.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/usr/bin/env python3
#!/Users/easifem/anaconda3/envs/easifem/bin/python3

# This program is a part of EASIFEM library.
# See. www.easifem.com
# Copyright (c) 2020-2021, All right reserved, Vikas Sharma, Ph.D.
#

import os
import platform

print("Detecting OS type...")
_os = platform.system()
if _os == "Windows":
print("ERROR: INSTALLATION on windows is work in progress")
exit
# print("Please use Windows Subsystem Linux(WSL) ")
# print("Installation DONE!!")
else:
cmake_def = ""
cmake_def += ' -G "Ninja"' # Unix Makefiles, Ninja, Ninja Multi-Config
cmake_def += " -D USE_OpenMP:BOOL=ON" # OFF
cmake_def += " -D CMAKE_BUILD_TYPE:STRING=Release"
cmake_def += " -D BUILD_SHARED_LIBS:BOOL=ON"
cmake_def += " -D USE_PLPLOT:BOOL=ON"
cmake_def += " -D CMAKE_INSTALL_PREFIX:PATH=${EASIFEM_BASE}"
cmake_def += " -D USE_BLAS95:BOOL=ON"
cmake_def += " -D USE_LAPACK95:BOOL=ON"
cmake_def += " -D USE_FFTW:BOOL=ON"
cmake_def += " -D USE_GTK:BOOL=OFF"
cmake_def += " -D USE_ARPACK:BOOL=ON"
cmake_def += " -D USE_SUPERLU:BOOL=ON"
cmake_def += " -D USE_LIS:BOOL=ON"
cmake_def += " -D USE_PARPACK:BOOL=OFF"
cmake_def += " -D USE_METIS:BOOL=OFF"
cmake_def += " -D USE_LUA:BOOL=ON"
cmake_def += " -D USE_Int32:BOOL=ON"
cmake_def += " -D USE_Real64:BOOL=ON"
cmake_def += " -D COLOR_DISP:BOOL=OFF"
cmake_def += " -D CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON"

print("CMAKE DEF : ", cmake_def)

_build0 = os.path.join(os.environ["HOME"], "temp")
build_dir = os.path.join(
os.environ.get("EASIFEM_BUILD_DIR", _build0), "easifem", "base", "build"
)
# build_dir = os.environ["HOME"] + "/temp/easifem-base/build"
os.makedirs(build_dir, exist_ok=True)
os.system(f"cmake -S ./ -B {build_dir} {cmake_def}")
os.system(f"cmake --build {build_dir} --target install")
print("Installation DONE!!")
189 changes: 188 additions & 1 deletion src/modules/BLAS95/src/F95_BLAS.F90
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,194 @@ MODULE F95_BLAS
USE F77_BLAS
IMPLICIT NONE
PRIVATE
#include "./iface.inc"

INTERFACE ASUM
MODULE PROCEDURE SASUM_F95, SCASUM_F95, DASUM_F95, DZASUM_F95
END INTERFACE ASUM

PUBLIC :: ASUM

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE AXPY
MODULE PROCEDURE SAXPY_F95, DAXPY_F95, CAXPY_F95, ZAXPY_F95
END INTERFACE AXPY

PUBLIC :: AXPY

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE COPY
MODULE PROCEDURE SCOPY_F95, DCOPY_F95, CCOPY_F95, ZCOPY_F95
END INTERFACE COPY

PUBLIC :: COPY

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE DOT
MODULE PROCEDURE SDOT_F95, DDOT_F95
END INTERFACE DOT

PUBLIC :: DOT

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE SDOT
MODULE PROCEDURE SDSDOT_F95, DSDOT_F95
END INTERFACE SDOT

PUBLIC :: SDOT

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE DOTC
MODULE PROCEDURE CDOTC_F95, ZDOTC_F95
END INTERFACE DOTC

PUBLIC :: DOTC

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE DOTU
MODULE PROCEDURE CDOTU_F95, ZDOTU_F95
END INTERFACE DOTU

PUBLIC :: DOTU

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE NRM2
MODULE PROCEDURE SNRM2_F95, DNRM2_F95, SCNRM2_F95, DZNRM2_F95
END INTERFACE NRM2

PUBLIC :: NRM2

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE ROT
MODULE PROCEDURE SROT_F95, DROT_F95, CSROT_F95, ZDROT_F95
END INTERFACE ROT

PUBLIC :: ROT

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE ROTG
MODULE PROCEDURE SROTG_F95, DROTG_F95, CROTG_F95, ZROTG_F95
END INTERFACE ROTG

PUBLIC :: ROTG

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE ROTM
MODULE PROCEDURE SROTM_F95, DROTM_F95
END INTERFACE ROTM

PUBLIC :: ROTM

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE ROTMG
MODULE PROCEDURE SROTMG_F95, DROTMG_F95
END INTERFACE ROTMG

PUBLIC :: ROTMG

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE SCAL
MODULE PROCEDURE SSCAL_F95, DSCAL_F95, CSCAL_F95, ZSCAL_F95, CSSCAL_F95,&
& ZDSCAL_F95
END INTERFACE SCAL

PUBLIC :: SCAL

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE SWAP
MODULE PROCEDURE SSWAP_F95, DSWAP_F95, CSWAP_F95, ZSWAP_F95
END INTERFACE SWAP

PUBLIC :: SWAP

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE IAMAX
MODULE PROCEDURE ISAMAX_F95, IDAMAX_F95, ICAMAX_F95, IZAMAX_F95
END INTERFACE IAMAX

PUBLIC :: IAMAX

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

#ifndef USE_NativeBLAS
INTERFACE IAMIN
MODULE PROCEDURE ISAMIN_F95, IDAMIN_F95, ICAMIN_F95, IZAMIN_F95
END INTERFACE IAMIN

PUBLIC :: IAMIN

#endif

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

#ifndef USE_APPLE_NativeBLAS
INTERFACE CABS1
MODULE PROCEDURE SCABS1_F95, DCABS1_F95
END INTERFACE CABS1

PUBLIC :: CABS1
#endif

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE GEMV
MODULE PROCEDURE SGEMV_F95, DGEMV_F95, CGEMV_F95, ZGEMV_F95
END INTERFACE GEMV

#ifdef USE_INTEL_MKL
INTERFACE GEMV
MODULE PROCEDURE SCGEMV_F95, DZGEMV_F95
END INTERFACE GEMV
#endif

PUBLIC :: GEMV
CONTAINS

#ifndef USE_APPLE_NativeBLAS
Expand Down
Loading

0 comments on commit 2206e9a

Please sign in to comment.