Skip to content

Commit

Permalink
4.10.13 NEW DEBUG OPTIONS CONVENTIONS
Browse files Browse the repository at this point in the history
* Introducing: DEBUG and AGGRESSIVE fortran compiler options for scifortran (and then for the others packages).
DEBUG: conventional debug options
AGGRESSIVE: using a lot more options which can break compilation in some systems

* Set Cmake 3.5.0 minimum version (in case of emergency reduce the request locally)

Merge branch 'master' of github.com:aamaricci/SciFortran
  • Loading branch information
aamaricci committed Sep 3, 2024
2 parents b5aaff6 + 90e7d68 commit c7e0b27
Show file tree
Hide file tree
Showing 14 changed files with 3,479 additions and 23 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/MacOS_Scheduled.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
name: Scheduled CI SciFortran workflow for MacOS

on:
schedule:
# min - hour - day of month - month - day of week
- cron: '0 3 * * *' #Everyday at 3:00 A.M.
push:
branches:
- master

defaults:
run:
shell: bash -l {0}

jobs:
test-QcmP:
runs-on: macos-11
runs-on: macos-latest
strategy:
fail-fast: false

Expand All @@ -33,7 +33,7 @@ jobs:

# Build SciFortran
- name: Cloning SciFortran
run: git clone https://github.com/aamaricci/SciFortran.git scifor
run: git clone https://github.com/QcmPlab/SciFortran.git scifor
- name: Install SciFortran
run: bin/ci_setup_scifor.sh

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ManualWorkflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

# Build SciFortran
- name: Cloning SciFortran
run: git clone https://github.com/aamaricci/SciFortran.git scifor
run: git clone https://github.com/QcmPlab/SciFortran.git scifor
- name: Install SciFortran
run: bin/ci_setup_scifor.sh

Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/Ubuntu_Scheduled.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
name: Scheduled CI SciFortran workflow for Ubuntu

on:
schedule:
# min - hour - day of month - month - day of week
- cron: '0 3 * * *' #Everyday at 3:00 A.M.
push:
branches:
- master

defaults:
run:
shell: bash -l {0}

jobs:
test-QcmP:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
fail-fast: false

Expand All @@ -33,7 +33,7 @@ jobs:

# Build SciFortran
- name: Cloning SciFortran
run: git clone https://github.com/aamaricci/SciFortran.git scifor
run: git clone https://github.com/QcmPlab/SciFortran.git scifor
- name: Install SciFortran
run: bin/ci_setup_scifor.sh

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
##################################################
# SCIFOR PROJECT
##################################################
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.0)
PROJECT(scifor Fortran)

MESSAGE(STATUS "OS: ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SciFortran

[![Ubuntu](https://img.shields.io/github/actions/workflow/status/QcmPlab/SciFortran/Ubuntu_Scheduled.yml?label=Ubuntu&logo=ubuntu&style=flat-square)](https://github.com/aamaricci/SciFortran/actions/workflows/Scheduled.yml)
[![MacOS](https://img.shields.io/github/actions/workflow/status/QcmPlab/SciFortran/MacOS_Scheduled.yml?label=macOS&logo=apple&style=flat-square)](https://github.com/aamaricci/SciFortran/actions/workflows/Scheduled.yml)
[![api docs](https://img.shields.io/static/v1?label=API&message=documentation&color=734f96&logo=read-the-docs&logoColor=white&style=flat-square)](https://aamaricci.github.io/SciFortran)
[![Ubuntu](https://img.shields.io/github/actions/workflow/status/QcmPlab/SciFortran/Ubuntu_Scheduled.yml?label=Ubuntu&logo=ubuntu&style=flat-square)](https://github.com/QcmPlab/SciFortran/actions/workflows/Scheduled.yml)
[![MacOS](https://img.shields.io/github/actions/workflow/status/QcmPlab/SciFortran/MacOS_Scheduled.yml?label=macOS&logo=apple&style=flat-square)](https://github.com/QcmPlab/SciFortran/actions/workflows/Scheduled.yml)
[![api docs](https://img.shields.io/static/v1?label=API&message=documentation&color=734f96&logo=read-the-docs&logoColor=white&style=flat-square)](https://qcmplab.github.io/SciFortran)

This is a unitary collection of fortran modules and procedures for scientific calculations. The library aims to provide a simple and generic environment for any scientific or mathematic computations. The project is largely inspired by *SciPy* for Python and tries to closely follow its guidelines and naming convention.

Expand Down Expand Up @@ -120,7 +120,7 @@ The repository is configured for source-based, automated, API docs generation vi
```
ford docs.config
```
at the root directory of the project. Alternatively you can examine the [official docs](https://aamaricci.github.io/SciFortran) for the latest commit on master, as generated by our continuous deployment workflow.
at the root directory of the project. Alternatively you can examine the [official docs](https://qcmplab.github.io/SciFortran) for the latest commit on master, as generated by our continuous deployment workflow.

## KNOWN PROBLEMS

Expand All @@ -134,13 +134,13 @@ Some have reported issues concerning the wrong setup for the library `pkg-config

### CONTACT

If you encounter bugs or difficulties, please [file an issue](https://github.com/aamaricci/SciFortran/issues/new/choose). For any other communication, please reach out to:
If you encounter bugs or difficulties, please [file an issue](https://github.com/QcmPlab/SciFortran/issues/new/choose). For any other communication, please reach out to:
adriano DOT amaricci @ gmail DOT com

--

***LICENSE***
Copyright (C) Adriano Amaricci, Samuele Giuli, Gabriele Bellomia, Lorenzo Crippa, Giacomo Mazza
Copyright (C) Adriano Amaricci, Lorenzo Crippa, Gabriele Bellomia, Giacomo Mazza, Samuele Giuli, Massimo Capone

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License (LGPL) as published by
Expand Down
4 changes: 2 additions & 2 deletions cmake/FortranCompilerConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES GNU) # this is gfortran
SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch")
ENDIF()
SET(CMAKE_Fortran_FLAGS_TESTING "-O2 -funroll-loops")
SET(CMAKE_Fortran_FLAGS_DEBUG "-O0 -p -g -Wsurprising -Waliasing -fwhole-file -fcheck=all -fbacktrace -fbounds-check -ffree-line-length-none -fPIC -w -fallow-argument-mismatch")
SET(CMAKE_Fortran_FLAGS_DDEBUG "-O0 -p -g -fbacktrace -fwhole-file -fcheck=all -fbounds-check -fsanitize=address -fdebug-aux-vars -Wall -Waliasing -Wsurprising -Wampersand -Warray-bounds -Wc-binding-type -Wcharacter-truncation -Wconversion -Wdo-subscript -Wfunction-elimination -Wimplicit-interface -Wimplicit-procedure -Wintrinsic-shadow -Wintrinsics-std -Wno-align-commons -Wno-overwrite-recursive -Wno-tabs -Wreal-q-constant -Wunderflow -Wunused-parameter -Wrealloc-lhs -Wrealloc-lhs-all -Wfrontend-loop-interchange -Wtarget-lifetime")
SET(CMAKE_Fortran_FLAGS_DEBUG "-O0 -p -g -Wsurprising -Waliasing -fwhole-file -fcheck=all -fbacktrace -fbounds-check -ffree-line-length-none -fPIC -w -Wno-argument-mismatch -ffpe-trap=zero,overflow,underflow")
SET(CMAKE_Fortran_FLAGS_AGGRESSIVE "-O0 -p -g -fbacktrace -fwhole-file -fcheck=all -fbounds-check -fsanitize=address -fdebug-aux-vars -Wall -Waliasing -Wsurprising -Wampersand -Warray-bounds -Wc-binding-type -Wcharacter-truncation -Wconversion -Wdo-subscript -Wfunction-elimination -Wimplicit-interface -Wimplicit-procedure -Wintrinsic-shadow -Wintrinsics-std -Wno-align-commons -Wno-overwrite-recursive -Wno-tabs -Wreal-q-constant -Wunderflow -Wunused-parameter -Wrealloc-lhs -Wrealloc-lhs-all -Wfrontend-loop-interchange -Wtarget-lifetime")
SET(CMAKE_Fortran_FLAGS_RELEASE "-O3 -funroll-loops")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES Intel)
SET(CMAKE_Fortran_MODDIR_FLAG "-module ") #remember the ending white space here
Expand Down
6 changes: 3 additions & 3 deletions docs.config
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ exclude_dir: ./src/arpack
fpp_extensions: f90
macro: _MPI
_SCALAPACK
project_github: https://github.com/aamaricci/SciFortran
project_github: https://github.com/QcmPlab/SciFortran
summary: A library of fortran modules and routines for scientific calculations (*in a way* just like scipy for python)
author: QcmP Lab members
author_description:
author_pic: https://github.com/QcmPlab/LOGO/releases/download/v1.0/QcmPlab-dark.png
email: adriano.amaricci@gmail.com
github: https://github.com/aamaricci
github: https://github.com/QcmPlab
display: public
protected
source: true
Expand All @@ -31,4 +31,4 @@ warn: false

-------------

{!README.md!}
{!README.md!}
9 changes: 9 additions & 0 deletions src/SF_SPARSE/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# SF_SPARSE library
file(GLOB SF_SPARSE_LOCAL_SRC
SF_SPARSE_COMMON.f90
SF_SPARSE_ARRAY_CSR.f90
SF_SPARSE_ARRAY_CSC.f90
SF_SPARSE.f90
)
SET(SF_SPARSE_src ${SF_SPARSE_LOCAL_SRC})
ADD_LIBRARY(SF_SPARSELIB OBJECT ${SF_SPARSE_src})
21 changes: 21 additions & 0 deletions src/SF_SPARSE/SF_SPARSE.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MODULE SF_SPARSE
USE SF_LINALG, only: deye,zeye
USE SF_SPARSE_ARRAY_CSR
USE SF_SPARSE_ARRAY_CSC
private

public :: sparse_dmatrix_csr, sparse_zmatrix_csr
public :: sparse_dmatrix_csc, sparse_zmatrix_csc
public :: assignment(=)
public :: operator(+)
public :: operator(-)
public :: operator(*)
public :: operator(/)
public :: operator(.x.)
public :: kron
public :: shape
public :: transpose
public :: hconjg
public :: matmul

END MODULE SF_SPARSE
Loading

0 comments on commit c7e0b27

Please sign in to comment.