[skip sc] enforce interfaces (quick fix: declare as external)

This commit is contained in:
Martin Diehl 2022-06-21 22:46:54 +02:00
parent 5881d010b9
commit b8c3d75700
45 changed files with 79 additions and 63 deletions

View File

@ -18,7 +18,7 @@ module CLI
use parallelization use parallelization
use system_routines use system_routines
implicit none implicit none(type,external)
private private
integer, public, protected :: & integer, public, protected :: &
CLI_restartInc = 0 !< Increment at which calculation starts CLI_restartInc = 0 !< Increment at which calculation starts

View File

@ -18,7 +18,7 @@ module HDF5_utilities
use prec use prec
use parallelization use parallelization
implicit none implicit none(type,external)
private private
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------

View File

@ -12,7 +12,7 @@ module IO
use prec use prec
implicit none implicit none(type,external)
private private
character(len=*), parameter, public :: & character(len=*), parameter, public :: &

View File

@ -8,7 +8,7 @@ module LAPACK_interface
pure subroutine dgeev(jobvl,jobvr,n,a,lda,wr,wi,vl,ldvl,vr,ldvr,work,lwork,info) pure subroutine dgeev(jobvl,jobvr,n,a,lda,wr,wi,vl,ldvl,vr,ldvr,work,lwork,info)
use prec use prec
implicit none implicit none(type,external)
character, intent(in) :: jobvl,jobvr character, intent(in) :: jobvl,jobvr
integer, intent(in) :: n,lda,ldvl,ldvr,lwork integer, intent(in) :: n,lda,ldvl,ldvr,lwork
@ -22,7 +22,7 @@ module LAPACK_interface
pure subroutine dgesv(n,nrhs,a,lda,ipiv,b,ldb,info) pure subroutine dgesv(n,nrhs,a,lda,ipiv,b,ldb,info)
use prec use prec
implicit none implicit none(type,external)
integer, intent(in) :: n,nrhs,lda,ldb integer, intent(in) :: n,nrhs,lda,ldb
real(pReal), intent(inout), dimension(lda,n) :: a real(pReal), intent(inout), dimension(lda,n) :: a
@ -33,7 +33,7 @@ module LAPACK_interface
pure subroutine dgetrf(m,n,a,lda,ipiv,info) pure subroutine dgetrf(m,n,a,lda,ipiv,info)
use prec use prec
implicit none implicit none(type,external)
integer, intent(in) :: m,n,lda integer, intent(in) :: m,n,lda
real(pReal), intent(inout), dimension(lda,n) :: a real(pReal), intent(inout), dimension(lda,n) :: a
@ -43,7 +43,7 @@ module LAPACK_interface
pure subroutine dgetri(n,a,lda,ipiv,work,lwork,info) pure subroutine dgetri(n,a,lda,ipiv,work,lwork,info)
use prec use prec
implicit none implicit none(type,external)
integer, intent(in) :: n,lda,lwork integer, intent(in) :: n,lda,lwork
real(pReal), intent(inout), dimension(lda,n) :: a real(pReal), intent(inout), dimension(lda,n) :: a
@ -54,7 +54,7 @@ module LAPACK_interface
pure subroutine dsyev(jobz,uplo,n,a,lda,w,work,lwork,info) pure subroutine dsyev(jobz,uplo,n,a,lda,w,work,lwork,info)
use prec use prec
implicit none implicit none(type,external)
character, intent(in) :: jobz,uplo character, intent(in) :: jobz,uplo
integer, intent(in) :: n,lda,lwork integer, intent(in) :: n,lda,lwork

View File

@ -25,7 +25,7 @@ module DAMASK_interface
use ifport, only: & use ifport, only: &
CHDIR CHDIR
implicit none implicit none(type,external)
private private
logical, protected, public :: symmetricSolver logical, protected, public :: symmetricSolver
@ -210,7 +210,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
use materialpoint_Marc use materialpoint_Marc
use OMP_LIB use OMP_LIB
implicit none implicit none(type,external)
integer, intent(in) :: & ! according to MSC.Marc 2012 Manual D integer, intent(in) :: & ! according to MSC.Marc 2012 Manual D
ngens, & !< size of stress-strain law ngens, & !< size of stress-strain law
nn, & !< integration point number nn, & !< integration point number
@ -382,7 +382,7 @@ subroutine flux(f,ts,n,time)
use homogenization use homogenization
use discretization_Marc use discretization_Marc
implicit none implicit none(type,external)
real(pReal), dimension(6), intent(in) :: & real(pReal), dimension(6), intent(in) :: &
ts ts
integer, dimension(10), intent(in) :: & integer, dimension(10), intent(in) :: &
@ -409,7 +409,7 @@ subroutine uedinc(inc,incsub)
use materialpoint_Marc use materialpoint_Marc
use discretization_Marc use discretization_Marc
implicit none implicit none(type,external)
integer, intent(in) :: inc, incsub integer, intent(in) :: inc, incsub
integer :: n, nqncomp, nqdatatype integer :: n, nqncomp, nqdatatype
integer, save :: inc_written integer, save :: inc_written

View File

@ -17,7 +17,7 @@ module discretization_Marc
use geometry_plastic_nonlocal use geometry_plastic_nonlocal
use results use results
implicit none implicit none(type,external)
private private
real(pReal), public, protected :: & real(pReal), public, protected :: &

View File

@ -5,7 +5,7 @@
module element module element
use IO use IO
implicit none implicit none(type,external)
private private
!--------------------------------------------------------------------------------------------------- !---------------------------------------------------------------------------------------------------

View File

@ -23,7 +23,7 @@ module materialpoint_Marc
use discretization use discretization
use discretization_Marc use discretization_Marc
implicit none implicit none(type,external)
private private
real(pReal), dimension (:,:,:), allocatable, private :: & real(pReal), dimension (:,:,:), allocatable, private :: &

View File

@ -12,7 +12,7 @@ module YAML_parse
use system_routines use system_routines
#endif #endif
implicit none implicit none(type,external)
private private
public :: & public :: &
@ -24,7 +24,7 @@ module YAML_parse
subroutine to_flow_C(flow,length_flow,mixed) bind(C) subroutine to_flow_C(flow,length_flow,mixed) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR, C_PTR use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR, C_PTR
implicit none implicit none(type,external)
type(C_PTR), intent(out) :: flow type(C_PTR), intent(out) :: flow
integer(C_INT), intent(out) :: length_flow integer(C_INT), intent(out) :: length_flow

View File

@ -11,7 +11,7 @@ module YAML_types
use IO use IO
use prec use prec
implicit none implicit none(type,external)
private private
type, abstract, public :: tNode type, abstract, public :: tNode

View File

@ -9,7 +9,7 @@ module config
use results use results
use parallelization use parallelization
implicit none implicit none(type,external)
private private
class(tNode), pointer, public :: & class(tNode), pointer, public :: &

View File

@ -5,7 +5,7 @@
module constants module constants
use prec use prec
implicit none implicit none(type,external)
public public
real(pReal), parameter :: & real(pReal), parameter :: &

View File

@ -7,7 +7,7 @@ module discretization
use prec use prec
use results use results
implicit none implicit none(type,external)
private private
integer, public, protected :: & integer, public, protected :: &

View File

@ -9,7 +9,7 @@ module geometry_plastic_nonlocal
use prec use prec
use results use results
implicit none implicit none(type,external)
public public
integer, protected :: & integer, protected :: &

View File

@ -30,7 +30,7 @@ program DAMASK_grid
use grid_thermal_spectral use grid_thermal_spectral
use results use results
implicit none implicit none(type,external)
type :: tLoadCase type :: tLoadCase
type(tRotation) :: rot !< rotation of BC type(tRotation) :: rot !< rotation of BC

View File

@ -5,7 +5,7 @@
module FFTW3 module FFTW3
use, intrinsic :: ISO_C_binding use, intrinsic :: ISO_C_binding
implicit none implicit none(type,external)
public public
include 'fftw3-mpi.f03' include 'fftw3-mpi.f03'

View File

@ -8,7 +8,7 @@ module VTI
use base64 use base64
use IO use IO
implicit none implicit none(type,external)
private private
public :: & public :: &

View File

@ -7,7 +7,7 @@ module base64
use prec use prec
use IO use IO
implicit none implicit none(type,external)
private private
character(len=*), parameter :: & character(len=*), parameter :: &

View File

@ -23,7 +23,7 @@ module discretization_grid
use discretization use discretization
use geometry_plastic_nonlocal use geometry_plastic_nonlocal
implicit none implicit none(type,external)
private private
integer, dimension(3), public, protected :: & integer, dimension(3), public, protected :: &

View File

@ -22,7 +22,7 @@ module grid_damage_spectral
use YAML_types use YAML_types
use config use config
implicit none implicit none(type,external)
private private
type :: tNumerics type :: tNumerics

View File

@ -27,7 +27,7 @@ module grid_mechanical_FEM
use discretization use discretization
use discretization_grid use discretization_grid
implicit none implicit none(type,external)
private private
type(tSolutionParams) :: params type(tSolutionParams) :: params

View File

@ -26,7 +26,7 @@ module grid_mechanical_spectral_basic
use homogenization use homogenization
use discretization_grid use discretization_grid
implicit none implicit none(type,external)
private private
type(tSolutionParams) :: params type(tSolutionParams) :: params

View File

@ -26,7 +26,7 @@ module grid_mechanical_spectral_polarisation
use homogenization use homogenization
use discretization_grid use discretization_grid
implicit none implicit none(type,external)
private private
type(tSolutionParams) :: params type(tSolutionParams) :: params

View File

@ -25,7 +25,7 @@ module grid_thermal_spectral
use YAML_types use YAML_types
use config use config
implicit none implicit none(type,external)
private private
type :: tNumerics type :: tNumerics

View File

@ -22,7 +22,7 @@ module spectral_utilities
use discretization use discretization
use homogenization use homogenization
implicit none implicit none(type,external)
private private
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------

View File

@ -5,7 +5,7 @@
module zlib module zlib
use prec use prec
implicit none implicit none(type,external)
private private
public :: & public :: &
@ -15,7 +15,7 @@ module zlib
subroutine inflate_C(s_deflated,s_inflated,deflated,inflated) bind(C) subroutine inflate_C(s_deflated,s_inflated,deflated,inflated) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_SIGNED_CHAR, C_INT64_T use, intrinsic :: ISO_C_Binding, only: C_SIGNED_CHAR, C_INT64_T
implicit none implicit none(type,external)
integer(C_INT64_T), intent(in) :: s_deflated,s_inflated integer(C_INT64_T), intent(in) :: s_deflated,s_inflated
integer(C_SIGNED_CHAR), dimension(s_deflated), intent(in) :: deflated integer(C_SIGNED_CHAR), dimension(s_deflated), intent(in) :: deflated

View File

@ -18,7 +18,7 @@ module homogenization
use results use results
use lattice use lattice
implicit none implicit none(type,external)
private private
type :: tState type :: tState

View File

@ -13,7 +13,7 @@ module lattice
use math use math
use rotations use rotations
implicit none implicit none(type,external)
private private
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------

View File

@ -14,7 +14,7 @@ module material
use discretization use discretization
use YAML_types use YAML_types
implicit none implicit none(type,external)
private private
type, public :: tRotationContainer type, public :: tRotationContainer

View File

@ -31,7 +31,7 @@ module materialpoint
use discretization_grid use discretization_grid
#endif #endif
implicit none implicit none(type,external)
public public
contains contains

View File

@ -12,7 +12,7 @@ module math
use YAML_types use YAML_types
use LAPACK_interface use LAPACK_interface
implicit none implicit none(type,external)
public public
#if __INTEL_COMPILER >= 1900 #if __INTEL_COMPILER >= 1900
! do not make use of associated entities available to other modules ! do not make use of associated entities available to other modules

View File

@ -20,7 +20,7 @@ program DAMASK_mesh
use FEM_Utilities use FEM_Utilities
use mesh_mechanical_FEM use mesh_mechanical_FEM
implicit none implicit none(type,external)
type :: tLoadCase type :: tLoadCase
real(pReal) :: time = 0.0_pReal !< length of increment real(pReal) :: time = 0.0_pReal !< length of increment

View File

@ -5,7 +5,7 @@
module FEM_quadrature module FEM_quadrature
use prec use prec
implicit none implicit none(type,external)
private private
integer, parameter :: & integer, parameter :: &

View File

@ -21,7 +21,7 @@ module FEM_utilities
use homogenization use homogenization
use FEM_quadrature use FEM_quadrature
implicit none implicit none(type,external)
private private
logical, public :: cutBack = .false. !< cut back of BVP solver in case convergence is not achieved or a material point is terminally ill logical, public :: cutBack = .false. !< cut back of BVP solver in case convergence is not achieved or a material point is terminally ill
@ -65,6 +65,11 @@ module FEM_utilities
type(tComponentBC), allocatable, dimension(:) :: componentBC type(tComponentBC), allocatable, dimension(:) :: componentBC
end type tFieldBC end type tFieldBC
external :: &
PetscSectionGetFieldComponents, &
PetscSectionGetFieldDof, &
PetscSectionGetFieldOffset
public :: & public :: &
FEM_utilities_init, & FEM_utilities_init, &
utilities_constitutiveResponse, & utilities_constitutiveResponse, &

View File

@ -25,7 +25,7 @@ module discretization_mesh
use YAML_types use YAML_types
use prec use prec
implicit none implicit none(type,external)
private private
integer, public, protected :: & integer, public, protected :: &
@ -52,6 +52,8 @@ module discretization_mesh
real(pReal), dimension(:,:,:), allocatable :: & real(pReal), dimension(:,:,:), allocatable :: &
mesh_ipCoordinates !< IP x,y,z coordinates (after deformation!) mesh_ipCoordinates !< IP x,y,z coordinates (after deformation!)
external :: &
DMView ! ToDo: write interface
public :: & public :: &
discretization_mesh_init, & discretization_mesh_init, &
mesh_FEM_build_ipVolumes, & mesh_FEM_build_ipVolumes, &

View File

@ -26,7 +26,7 @@ module mesh_mechanical_FEM
use homogenization use homogenization
use math use math
implicit none implicit none(type,external)
private private
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
@ -67,6 +67,15 @@ module mesh_mechanical_FEM
logical :: ForwardData logical :: ForwardData
real(pReal), parameter :: eps = 1.0e-18_pReal real(pReal), parameter :: eps = 1.0e-18_pReal
external :: &
PetscSectionGetNumFields, &
PetscFESetQuadrature, &
PetscFEGetDimension, &
PetscFEDestroy, &
PetscSectionGetDof, &
PetscFEGetDualSpace, &
PetscDualSpaceGetFunctional
public :: & public :: &
FEM_mechanical_init, & FEM_mechanical_init, &
FEM_mechanical_solution, & FEM_mechanical_solution, &

View File

@ -18,7 +18,7 @@ module parallelization
use prec use prec
implicit none implicit none(type,external)
private private
#ifndef PETSC #ifndef PETSC

View File

@ -19,7 +19,7 @@ module phase
use HDF5 use HDF5
use HDF5_utilities use HDF5_utilities
implicit none implicit none(type,external)
private private
type :: tState type :: tState

View File

@ -8,7 +8,7 @@ module polynomials
use YAML_parse use YAML_parse
use YAML_types use YAML_types
implicit none implicit none(type,external)
private private
type, public :: tPolynomial type, public :: tPolynomial

View File

@ -15,7 +15,7 @@ module prec
use PETScSys use PETScSys
#endif #endif
implicit none implicit none(type,external)
public public
! https://stevelionel.com/drfortran/2017/03/27/doctor-fortran-in-it-takes-all-kinds ! https://stevelionel.com/drfortran/2017/03/27/doctor-fortran-in-it-takes-all-kinds

View File

@ -12,7 +12,7 @@ subroutine quit(stop_id)
#endif #endif
use HDF5 use HDF5
implicit none implicit none(type,external)
integer, intent(in) :: stop_id integer, intent(in) :: stop_id
integer, dimension(8) :: dateAndTime integer, dimension(8) :: dateAndTime
integer :: err_HDF5 integer :: err_HDF5

View File

@ -21,7 +21,7 @@ module results
use DAMASK_interface use DAMASK_interface
#endif #endif
implicit none implicit none(type,external)
private private
integer(HID_T) :: resultsFile integer(HID_T) :: resultsFile

View File

@ -50,7 +50,7 @@ module rotations
use IO use IO
use math use math
implicit none implicit none(type,external)
private private
real(pReal), parameter :: P = -1.0_pReal !< parameter for orientation conversion. real(pReal), parameter :: P = -1.0_pReal !< parameter for orientation conversion.
@ -796,7 +796,7 @@ end function conjugateQuaternion
subroutine selfTest() subroutine selfTest()
type(tRotation) :: R type(tRotation) :: R
real(pReal), dimension(4) :: qu, ax real(pReal), dimension(4) :: qu
real(pReal), dimension(3) :: x, eu, v3 real(pReal), dimension(3) :: x, eu, v3
real(pReal), dimension(3,3) :: om, t33 real(pReal), dimension(3,3) :: om, t33
real(pReal), dimension(3,3,3,3) :: t3333 real(pReal), dimension(3,3,3,3) :: t3333

View File

@ -6,7 +6,7 @@ module signals
use prec use prec
use system_routines use system_routines
implicit none implicit none(type,external)
private private
logical, volatile, public, protected :: & logical, volatile, public, protected :: &

View File

@ -7,7 +7,7 @@ module system_routines
use prec use prec
implicit none implicit none(type,external)
private private
public :: & public :: &
@ -27,7 +27,7 @@ module system_routines
function setCWD_C(cwd) bind(C) function setCWD_C(cwd) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR
implicit none implicit none(type,external)
integer(C_INT) :: setCWD_C integer(C_INT) :: setCWD_C
character(kind=C_CHAR), dimension(*), intent(in) :: cwd character(kind=C_CHAR), dimension(*), intent(in) :: cwd
@ -36,7 +36,7 @@ module system_routines
subroutine getCWD_C(cwd, stat) bind(C) subroutine getCWD_C(cwd, stat) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR
use prec use prec
implicit none implicit none(type,external)
character(kind=C_CHAR), dimension(pPathLen+1), intent(out) :: cwd ! NULL-terminated array character(kind=C_CHAR), dimension(pPathLen+1), intent(out) :: cwd ! NULL-terminated array
integer(C_INT), intent(out) :: stat integer(C_INT), intent(out) :: stat
@ -45,7 +45,7 @@ module system_routines
subroutine getHostName_C(hostname, stat) bind(C) subroutine getHostName_C(hostname, stat) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR
use prec use prec
implicit none implicit none(type,external)
character(kind=C_CHAR), dimension(pStringLen+1), intent(out) :: hostname ! NULL-terminated array character(kind=C_CHAR), dimension(pStringLen+1), intent(out) :: hostname ! NULL-terminated array
integer(C_INT), intent(out) :: stat integer(C_INT), intent(out) :: stat
@ -54,7 +54,7 @@ module system_routines
subroutine getUserName_C(username, stat) bind(C) subroutine getUserName_C(username, stat) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR use, intrinsic :: ISO_C_Binding, only: C_INT, C_CHAR
use prec use prec
implicit none implicit none(type,external)
character(kind=C_CHAR), dimension(pStringLen+1), intent(out) :: username ! NULL-terminated array character(kind=C_CHAR), dimension(pStringLen+1), intent(out) :: username ! NULL-terminated array
integer(C_INT), intent(out) :: stat integer(C_INT), intent(out) :: stat
@ -62,28 +62,28 @@ module system_routines
subroutine signalint_C(handler) bind(C) subroutine signalint_C(handler) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_FUNPTR use, intrinsic :: ISO_C_Binding, only: C_FUNPTR
implicit none implicit none(type,external)
type(C_FUNPTR), intent(in), value :: handler type(C_FUNPTR), intent(in), value :: handler
end subroutine signalint_C end subroutine signalint_C
subroutine signalusr1_C(handler) bind(C) subroutine signalusr1_C(handler) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_FUNPTR use, intrinsic :: ISO_C_Binding, only: C_FUNPTR
implicit none implicit none(type,external)
type(C_FUNPTR), intent(in), value :: handler type(C_FUNPTR), intent(in), value :: handler
end subroutine signalusr1_C end subroutine signalusr1_C
subroutine signalusr2_C(handler) bind(C) subroutine signalusr2_C(handler) bind(C)
use, intrinsic :: ISO_C_Binding, only: C_FUNPTR use, intrinsic :: ISO_C_Binding, only: C_FUNPTR
implicit none implicit none(type,external)
type(C_FUNPTR), intent(in), value :: handler type(C_FUNPTR), intent(in), value :: handler
end subroutine signalusr2_C end subroutine signalusr2_C
subroutine free_C(ptr) bind(C,name='free') subroutine free_C(ptr) bind(C,name='free')
use, intrinsic :: ISO_C_Binding, only: C_PTR use, intrinsic :: ISO_C_Binding, only: C_PTR
implicit none implicit none(type,external)
type(C_PTR), value :: ptr type(C_PTR), value :: ptr
end subroutine free_C end subroutine free_C