one implicit none is enough

This commit is contained in:
Martin Diehl 2019-05-14 23:12:32 +02:00
parent 51e19048f7
commit 346c7c4a7f
19 changed files with 95 additions and 224 deletions

View File

@ -4,9 +4,7 @@
!> @brief CPFEM engine
!--------------------------------------------------------------------------------------------------
module CPFEM
use prec, only: &
pReal, &
pInt
use prec
implicit none
private
@ -57,8 +55,6 @@ contains
!> @brief call (thread safe) all module initializations
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_initAll(el,ip)
use prec, only: &
prec_init
use numerics, only: &
numerics_init
use debug, only: &
@ -91,7 +87,6 @@ subroutine CPFEM_initAll(el,ip)
IO_init
use DAMASK_interface
implicit none
integer(pInt), intent(in) :: el, & !< FE el number
ip !< FE integration point number
@ -155,7 +150,6 @@ subroutine CPFEM_init
crystallite_Li0, &
crystallite_S0
implicit none
integer :: k,l,m,ph,homog
write(6,'(/,a)') ' <<<+- CPFEM init -+>>>'
@ -325,7 +319,6 @@ subroutine CPFEM_general(mode, parallelExecution, ffn, ffn1, temperature_inp, dt
IO_warning
use DAMASK_interface
implicit none
integer(pInt), intent(in) :: elFE, & !< FE element number
ip !< integration point number
real(pReal), intent(in) :: dt !< time increment
@ -639,8 +632,6 @@ end subroutine CPFEM_general
!> @brief triggers writing of the results
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_results(inc,time)
use prec, only: &
pInt
#ifdef DAMASK_HDF5
use results
use HDF5_utilities
@ -650,7 +641,6 @@ subroutine CPFEM_results(inc,time)
use crystallite, only: &
crystallite_results
implicit none
integer(pInt), intent(in) :: inc
real(pReal), intent(in) :: time

View File

@ -12,6 +12,7 @@ module CPFEM2
CPFEM_age, &
CPFEM_initAll, &
CPFEM_results
contains
@ -20,7 +21,6 @@ contains
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_initAll()
use prec, only: &
pInt, &
prec_init
use numerics, only: &
numerics_init
@ -57,8 +57,6 @@ subroutine CPFEM_initAll()
FEM_Zoo_init
#endif
implicit none
call DAMASK_interface_init ! Spectral and FEM interface to commandline
call prec_init
call IO_init
@ -87,8 +85,6 @@ end subroutine CPFEM_initAll
!> @brief allocate the arrays defined in module CPFEM and initialize them
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_init
use prec, only: &
pInt, pReal
use IO, only: &
IO_error
use numerics, only: &
@ -124,8 +120,8 @@ subroutine CPFEM_init
use DAMASK_interface, only: &
getSolverJobName
implicit none
integer(pInt) :: ph,homog
integer :: ph,homog
character(len=1024) :: rankStr, PlasticItem, HomogItem
integer(HID_T) :: fileHandle, groupPlasticID, groupHomogID
@ -134,7 +130,7 @@ subroutine CPFEM_init
! *** restore the last converged values of each essential variable from the binary file
if (restartRead) then
if (iand(debug_level(debug_CPFEM), debug_levelExtensive) /= 0_pInt) then
if (iand(debug_level(debug_CPFEM), debug_levelExtensive) /= 0) then
write(6,'(a)') '<< CPFEM >> restored state variables of last converged step from hdf5 file'
flush(6)
endif
@ -152,14 +148,14 @@ subroutine CPFEM_init
call HDF5_read(fileHandle,crystallite_S0, 'convergedS')
groupPlasticID = HDF5_openGroup(fileHandle,'PlasticPhases')
do ph = 1_pInt,size(phase_plasticity)
do ph = 1,size(phase_plasticity)
write(PlasticItem,*) ph,'_'
call HDF5_read(groupPlasticID,plasticState(ph)%state0,trim(PlasticItem)//'convergedStateConst')
enddo
call HDF5_closeGroup(groupPlasticID)
groupHomogID = HDF5_openGroup(fileHandle,'HomogStates')
do homog = 1_pInt, material_Nhomogenization
do homog = 1, material_Nhomogenization
write(HomogItem,*) homog,'_'
call HDF5_read(groupHomogID,homogState(homog)%state0, trim(HomogItem)//'convergedStateHomog')
enddo
@ -178,8 +174,7 @@ end subroutine CPFEM_init
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_age()
use prec, only: &
pReal, &
pInt
pReal
use numerics, only: &
worldrank
use debug, only: &
@ -223,13 +218,12 @@ subroutine CPFEM_age()
use hdf5
use DAMASK_interface, only: &
getSolverJobName
implicit none
integer(pInt) :: i, ph, homog, mySource
integer :: i, ph, homog, mySource
character(len=32) :: rankStr, PlasticItem, HomogItem
integer(HID_T) :: fileHandle, groupPlastic, groupHomog
if (iand(debug_level(debug_CPFEM), debug_levelBasic) /= 0_pInt) &
if (iand(debug_level(debug_CPFEM), debug_levelBasic) /= 0) &
write(6,'(a)') '<< CPFEM >> aging states'
crystallite_F0 = crystallite_partionedF
@ -246,14 +240,14 @@ subroutine CPFEM_age()
do mySource = 1,phase_Nsources(i)
sourceState(i)%p(mySource)%state0 = sourceState(i)%p(mySource)%state
enddo; enddo
do homog = 1_pInt, material_Nhomogenization
do homog = 1, material_Nhomogenization
homogState (homog)%state0 = homogState (homog)%state
thermalState (homog)%state0 = thermalState (homog)%state
damageState (homog)%state0 = damageState (homog)%state
enddo
if (restartWrite) then
if (iand(debug_level(debug_CPFEM), debug_levelBasic) /= 0_pInt) &
if (iand(debug_level(debug_CPFEM), debug_levelBasic) /= 0) &
write(6,'(a)') '<< CPFEM >> writing restart variables of last converged step to hdf5 file'
write(rankStr,'(a1,i0)')'_',worldrank
@ -268,14 +262,14 @@ subroutine CPFEM_age()
call HDF5_write(fileHandle,crystallite_S0, 'convergedS')
groupPlastic = HDF5_addGroup(fileHandle,'PlasticPhases')
do ph = 1_pInt,size(phase_plasticity)
do ph = 1,size(phase_plasticity)
write(PlasticItem,*) ph,'_'
call HDF5_write(groupPlastic,plasticState(ph)%state0,trim(PlasticItem)//'convergedStateConst')
enddo
call HDF5_closeGroup(groupPlastic)
groupHomog = HDF5_addGroup(fileHandle,'HomogStates')
do homog = 1_pInt, material_Nhomogenization
do homog = 1, material_Nhomogenization
write(HomogItem,*) homog,'_'
call HDF5_write(groupHomog,homogState(homog)%state0,trim(HomogItem)//'convergedStateHomog')
enddo
@ -285,7 +279,7 @@ subroutine CPFEM_age()
restartWrite = .false.
endif
if (iand(debug_level(debug_CPFEM), debug_levelBasic) /= 0_pInt) &
if (iand(debug_level(debug_CPFEM), debug_levelBasic) /= 0) &
write(6,'(a)') '<< CPFEM >> done aging states'
end subroutine CPFEM_age
@ -295,8 +289,6 @@ end subroutine CPFEM_age
!> @brief triggers writing of the results
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_results(inc,time)
use prec, only: &
pInt
use results
use HDF5_utilities
use homogenization, only: &
@ -305,9 +297,8 @@ subroutine CPFEM_results(inc,time)
constitutive_results
use crystallite, only: &
crystallite_results
implicit none
integer(pInt), intent(in) :: inc
integer, intent(in) :: inc
real(pReal), intent(in) :: time
call results_openJobFile

View File

@ -5,10 +5,8 @@
!> @todo Descriptions for public variables needed
!--------------------------------------------------------------------------------------------------
module FEsolving
use prec, only: &
pInt, &
pReal
use prec
implicit none
private
integer, public :: &
@ -59,7 +57,6 @@ subroutine FE_init
IO_warning
use DAMASK_interface
implicit none
#if defined(Marc4DAMASK) || defined(Abaqus)
integer, parameter :: &
FILEUNIT = 222

View File

@ -8,7 +8,7 @@
module IO
use prec
use DAMASK_interface
implicit none
private
character(len=5), parameter, public :: &
@ -63,8 +63,6 @@ contains
!--------------------------------------------------------------------------------------------------
subroutine IO_init
implicit none
write(6,'(/,a)') ' <<<+- IO init -+>>>'
end subroutine IO_init
@ -75,7 +73,6 @@ end subroutine IO_init
!--------------------------------------------------------------------------------------------------
function IO_read(fileUnit) result(line)
implicit none
integer, intent(in) :: fileUnit !< file unit
character(len=pStringLen) :: line
@ -91,7 +88,6 @@ function IO_read(fileUnit) result(line)
!--------------------------------------------------------------------------------------------------
function IO_read_ASCII(fileName) result(fileContent)
implicit none
character(len=*), intent(in) :: fileName
character(len=pStringLen), dimension(:), allocatable :: fileContent !< file content, separated per lines
@ -160,7 +156,6 @@ end function IO_read_ASCII
!--------------------------------------------------------------------------------------------------
subroutine IO_open_file(fileUnit,path)
implicit none
integer, intent(in) :: fileUnit !< file unit
character(len=*), intent(in) :: path !< relative path from working directory
@ -178,7 +173,6 @@ end subroutine IO_open_file
!--------------------------------------------------------------------------------------------------
integer function IO_open_jobFile_binary(extension,mode)
implicit none
character(len=*), intent(in) :: extension
character, intent(in), optional :: mode
@ -197,7 +191,6 @@ end function IO_open_jobFile_binary
!--------------------------------------------------------------------------------------------------
integer function IO_open_binary(fileName,mode)
implicit none
character(len=*), intent(in) :: fileName
character, intent(in), optional :: mode
@ -231,7 +224,6 @@ end function IO_open_binary
!--------------------------------------------------------------------------------------------------
subroutine IO_open_inputFile(fileUnit,modelName)
implicit none
integer, intent(in) :: fileUnit !< file unit
character(len=*), intent(in) :: modelName !< model name, in case of restart not solver job name
@ -264,7 +256,6 @@ subroutine IO_open_inputFile(fileUnit,modelName)
!--------------------------------------------------------------------------------------------------
recursive function abaqus_assembleInputFile(unit1,unit2) result(createSuccess)
implicit none
integer, intent(in) :: unit1, &
unit2
@ -323,7 +314,6 @@ end subroutine IO_open_inputFile
!--------------------------------------------------------------------------------------------------
subroutine IO_open_logFile(fileUnit)
implicit none
integer, intent(in) :: fileUnit !< file unit
integer :: myStat
@ -343,7 +333,6 @@ end subroutine IO_open_logFile
!--------------------------------------------------------------------------------------------------
subroutine IO_write_jobFile(fileUnit,ext)
implicit none
integer, intent(in) :: fileUnit !< file unit
character(len=*), intent(in) :: ext !< extension of file
@ -362,7 +351,6 @@ end subroutine IO_write_jobFile
!--------------------------------------------------------------------------------------------------
logical pure function IO_isBlank(string)
implicit none
character(len=*), intent(in) :: string !< string to check for content
character(len=*), parameter :: blankChar = achar(32)//achar(9)//achar(10)//achar(13) ! whitespaces
@ -382,7 +370,6 @@ end function IO_isBlank
!--------------------------------------------------------------------------------------------------
pure function IO_getTag(string,openChar,closeChar)
implicit none
character(len=*), intent(in) :: string !< string to check for tag
character(len=len_trim(string)) :: IO_getTag
@ -417,7 +404,6 @@ end function IO_getTag
!--------------------------------------------------------------------------------------------------
pure function IO_stringPos(string)
implicit none
integer, dimension(:), allocatable :: IO_stringPos
character(len=*), intent(in) :: string !< string in which chunk positions are searched for
@ -447,7 +433,6 @@ end function IO_stringPos
!--------------------------------------------------------------------------------------------------
function IO_stringValue(string,chunkPos,myChunk,silent)
implicit none
integer, dimension(:), intent(in) :: chunkPos !< positions of start and end of each tag/chunk in given string
integer, intent(in) :: myChunk !< position number of desired chunk
character(len=*), intent(in) :: string !< raw input with known start and end of each chunk
@ -479,7 +464,6 @@ end function IO_stringValue
!--------------------------------------------------------------------------------------------------
real(pReal) function IO_floatValue (string,chunkPos,myChunk)
implicit none
integer, dimension(:), intent(in) :: chunkPos !< positions of start and end of each tag/chunk in given string
integer, intent(in) :: myChunk !< position number of desired chunk
character(len=*), intent(in) :: string !< raw input with known start and end of each chunk
@ -504,7 +488,6 @@ end function IO_floatValue
!--------------------------------------------------------------------------------------------------
integer function IO_intValue(string,chunkPos,myChunk)
implicit none
character(len=*), intent(in) :: string !< raw input with known start and end of each chunk
integer, intent(in) :: myChunk !< position number of desired chunk
integer, dimension(:), intent(in) :: chunkPos !< positions of start and end of each tag/chunk in given string
@ -529,7 +512,6 @@ end function IO_intValue
!--------------------------------------------------------------------------------------------------
real(pReal) function IO_fixedNoEFloatValue (string,ends,myChunk)
implicit none
character(len=*), intent(in) :: string !< raw input with known ends of each chunk
integer, intent(in) :: myChunk !< position number of desired chunk
integer, dimension(:), intent(in) :: ends !< positions of end of each tag/chunk in given string
@ -562,7 +544,6 @@ end function IO_fixedNoEFloatValue
!--------------------------------------------------------------------------------------------------
integer function IO_fixedIntValue(string,ends,myChunk)
implicit none
character(len=*), intent(in) :: string !< raw input with known ends of each chunk
integer, intent(in) :: myChunk !< position number of desired chunk
integer, dimension(:), intent(in) :: ends !< positions of end of each tag/chunk in given string
@ -581,7 +562,6 @@ end function IO_fixedIntValue
!--------------------------------------------------------------------------------------------------
pure function IO_lc(string)
implicit none
character(len=*), intent(in) :: string !< string to convert
character(len=len(string)) :: IO_lc
@ -604,7 +584,6 @@ end function IO_lc
!--------------------------------------------------------------------------------------------------
pure function IO_intOut(intToPrint)
implicit none
integer, intent(in) :: intToPrint
character(len=41) :: IO_intOut
integer :: N_digits
@ -625,7 +604,6 @@ end function IO_intOut
!--------------------------------------------------------------------------------------------------
subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
implicit none
integer, intent(in) :: error_ID
integer, optional, intent(in) :: el,ip,g,instance
character(len=*), optional, intent(in) :: ext_msg
@ -891,7 +869,6 @@ end subroutine IO_error
!--------------------------------------------------------------------------------------------------
subroutine IO_warning(warning_ID,el,ip,g,ext_msg)
implicit none
integer, intent(in) :: warning_ID
integer, optional, intent(in) :: el,ip,g
character(len=*), optional, intent(in) :: ext_msg
@ -981,7 +958,6 @@ end subroutine IO_warning
!--------------------------------------------------------------------------------------------------
character(len=300) pure function IO_extractValue(pair,key)
implicit none
character(len=*), intent(in) :: pair, & !< key=value pair
key !< key to be expected
@ -1002,7 +978,6 @@ end function IO_extractValue
!--------------------------------------------------------------------------------------------------
integer function IO_countDataLines(fileUnit)
implicit none
integer, intent(in) :: fileUnit !< file handle
@ -1035,7 +1010,6 @@ end function IO_countDataLines
!--------------------------------------------------------------------------------------------------
integer function IO_countNumericalDataLines(fileUnit)
implicit none
integer, intent(in) :: fileUnit !< file handle
@ -1066,7 +1040,6 @@ end function IO_countNumericalDataLines
!--------------------------------------------------------------------------------------------------
subroutine IO_skipChunks(fileUnit,N)
implicit none
integer, intent(in) :: fileUnit, & !< file handle
N !< minimum number of chunks to skip
@ -1091,7 +1064,6 @@ end subroutine IO_skipChunks
!--------------------------------------------------------------------------------------------------
integer function IO_countContinuousIntValues(fileUnit)
implicit none
integer, intent(in) :: fileUnit
#ifdef Abaqus
@ -1149,7 +1121,6 @@ end function IO_countContinuousIntValues
!--------------------------------------------------------------------------------------------------
function IO_continuousIntValues(fileUnit,maxN,lookupName,lookupMap,lookupMaxN)
implicit none
integer, intent(in) :: maxN
integer, dimension(1+maxN) :: IO_continuousIntValues
@ -1258,7 +1229,6 @@ function IO_continuousIntValues(fileUnit,maxN,lookupName,lookupMap,lookupMaxN)
!--------------------------------------------------------------------------------------------------
integer function IO_verifyIntValue (string,validChars,myName)
implicit none
character(len=*), intent(in) :: string, & !< string for conversion to int value. Must not contain spaces!
validChars, & !< valid characters in string
myName !< name of caller function (for debugging)
@ -1286,7 +1256,6 @@ end function IO_verifyIntValue
!--------------------------------------------------------------------------------------------------
real(pReal) function IO_verifyFloatValue (string,validChars,myName)
implicit none
character(len=*), intent(in) :: string, & !< string for conversion to int value. Must not contain spaces!
validChars, & !< valid characters in string
myName !< name of caller function (for debugging)

View File

@ -6,13 +6,11 @@
!! parts 'homogenization', 'crystallite', 'phase', 'texture', and 'microstucture'
!--------------------------------------------------------------------------------------------------
module config
use prec, only: &
pReal
use list, only: &
tPartitionedStringList
use prec
use list
implicit none
private
type(tPartitionedStringList), public, protected, allocatable, dimension(:) :: &
config_phase, &
config_microstructure, &
@ -47,8 +45,6 @@ contains
!> @brief reads material.config and stores its content per part
!--------------------------------------------------------------------------------------------------
subroutine config_init
use prec, only: &
pStringLen
use DAMASK_interface, only: &
getSolverJobName
use IO, only: &
@ -61,7 +57,6 @@ subroutine config_init
debug_material, &
debug_levelBasic
implicit none
integer :: myDebug,i
character(len=pStringLen) :: &
@ -149,7 +144,6 @@ recursive function read_materialConfig(fileName,cnt) result(fileContent)
use IO, only: &
IO_warning
implicit none
character(len=*), intent(in) :: fileName
integer, intent(in), optional :: cnt !< recursion counter
character(len=pStringLen), dimension(:), allocatable :: fileContent !< file content, separated per lines
@ -231,12 +225,10 @@ end function read_materialConfig
!--------------------------------------------------------------------------------------------------
subroutine parse_materialConfig(sectionNames,part,line, &
fileContent)
use prec, only: &
pStringLen
use IO, only: &
IO_intOut
implicit none
character(len=64), allocatable, dimension(:), intent(out) :: sectionNames
type(tPartitionedStringList), allocatable, dimension(:), intent(inout) :: part
character(len=pStringLen), intent(inout) :: line
@ -288,7 +280,7 @@ end subroutine parse_materialConfig
!--------------------------------------------------------------------------------------------------
subroutine parse_debugAndNumericsConfig(config_list, &
fileContent)
implicit none
type(tPartitionedStringList), intent(out) :: config_list
character(len=pStringLen), dimension(:), intent(in) :: fileContent
integer :: i
@ -309,7 +301,6 @@ subroutine config_deallocate(what)
use IO, only: &
IO_error
implicit none
character(len=*), intent(in) :: what
select case(trim(what))

View File

@ -3,9 +3,7 @@
!> @brief material subroutine for locally evolving damage field
!--------------------------------------------------------------------------------------------------
module damage_local
use prec, only: &
pReal, &
pInt
use prec
implicit none
private
@ -62,7 +60,6 @@ subroutine damage_local_init
use config, only: &
config_homogenization
implicit none
integer :: maxNinstance,homog,instance,o,i
integer :: sizeState
@ -147,7 +144,6 @@ function damage_local_updateState(subdt, ip, el)
mappingHomogenization, &
damageState
implicit none
integer, intent(in) :: &
ip, & !< integration point number
el !< element number
@ -201,7 +197,6 @@ subroutine damage_local_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip, el
use source_damage_anisoDuctile, only: &
source_damage_anisoductile_getRateAndItsTangent
implicit none
integer, intent(in) :: &
ip, & !< integration point number
el !< element number
@ -259,7 +254,6 @@ function damage_local_postResults(ip,el)
damageMapping, &
damage
implicit none
integer, intent(in) :: &
ip, & !< integration point
el !< element

View File

@ -26,8 +26,7 @@ subroutine damage_none_init()
damageState, &
DAMAGE_NONE_LABEL, &
DAMAGE_NONE_ID
implicit none
integer :: &
homog, &
NofMyHomog

View File

@ -60,7 +60,6 @@ subroutine damage_nonlocal_init
use config, only: &
config_homogenization
implicit none
integer :: maxNinstance,homog,instance,o,i
integer :: sizeState
@ -152,7 +151,6 @@ subroutine damage_nonlocal_getSourceAndItsTangent(phiDot, dPhiDot_dPhi, phi, ip,
use source_damage_anisoDuctile, only: &
source_damage_anisoductile_getRateAndItsTangent
implicit none
integer, intent(in) :: &
ip, & !< integration point number
el !< element number
@ -215,7 +213,6 @@ function damage_nonlocal_getDiffusion33(ip,el)
use crystallite, only: &
crystallite_push33ToRef
implicit none
integer, intent(in) :: &
ip, & !< integration point number
el !< element number
@ -249,7 +246,6 @@ real(pReal) function damage_nonlocal_getMobility(ip,el)
material_phase, &
homogenization_Ngrains
implicit none
integer, intent(in) :: &
ip, & !< integration point number
el !< element number
@ -276,7 +272,6 @@ subroutine damage_nonlocal_putNonLocalDamage(phi,ip,el)
damageMapping, &
damage
implicit none
integer, intent(in) :: &
ip, & !< integration point number
el !< element number
@ -302,7 +297,6 @@ function damage_nonlocal_postResults(ip,el)
damageMapping, &
damage
implicit none
integer, intent(in) :: &
ip, & !< integration point
el !< element

View File

@ -3,8 +3,7 @@
!> @author Christoph Koords, Max-Planck-Institut für Eisenforschung GmbH
!--------------------------------------------------------------------------------------------------
module element
use prec, only: &
pReal
use prec
implicit none
private
@ -802,7 +801,6 @@ module element
use IO, only: &
IO_error
implicit none
class(tElement) :: self
integer, intent(in) :: elemType
self%elemType = elemType

View File

@ -5,8 +5,7 @@
!> @brief homogenization manager, organizing deformation partitioning and stress homogenization
!--------------------------------------------------------------------------------------------------
module homogenization
use prec, only: &
pReal
use prec
use material
!--------------------------------------------------------------------------------------------------
@ -113,7 +112,6 @@ subroutine homogenization_init
use numerics, only: &
worldrank
implicit none
integer, parameter :: FILEUNIT = 200
integer :: e,i,p
integer, dimension(:,:), pointer :: thisSize
@ -351,7 +349,6 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
debug_i
#endif
implicit none
real(pReal), intent(in) :: dt !< time increment
logical, intent(in) :: updateJaco !< initiating Jacobian update
integer :: &
@ -651,7 +648,6 @@ subroutine materialpoint_postResults
crystallite_sizePostResults, &
crystallite_postResults
implicit none
integer :: &
thePos, &
theSize, &
@ -707,7 +703,6 @@ subroutine partitionDeformation(ip,el)
use homogenization_mech_RGC, only: &
homogenization_RGC_partitionDeformation
implicit none
integer, intent(in) :: &
ip, & !< integration point
el !< element number
@ -752,7 +747,6 @@ function updateState(ip,el)
use damage_local, only: &
damage_local_updateState
implicit none
integer, intent(in) :: &
ip, & !< integration point
el !< element number
@ -805,7 +799,6 @@ subroutine averageStressAndItsTangent(ip,el)
use homogenization_mech_RGC, only: &
homogenization_RGC_averageStressAndItsTangent
implicit none
integer, intent(in) :: &
ip, & !< integration point
el !< element number
@ -853,7 +846,6 @@ function postResults(ip,el)
use damage_nonlocal, only: &
damage_nonlocal_postResults
implicit none
integer, intent(in) :: &
ip, & !< integration point
el !< element number

View File

@ -7,8 +7,7 @@
!> Nconstituents is defined as p x q x r (cluster)
!--------------------------------------------------------------------------------------------------
module homogenization_mech_RGC
use prec, only: &
pReal
use prec
use material
implicit none
@ -109,7 +108,6 @@ subroutine homogenization_RGC_init()
use config, only: &
config_homogenization
implicit none
integer :: &
Ninstance, &
h, i, &
@ -251,7 +249,6 @@ subroutine homogenization_RGC_partitionDeformation(F,avgF,instance,of)
debug_levelExtensive
#endif
implicit none
real(pReal), dimension (:,:,:), intent(out) :: F !< partioned F per grain
real(pReal), dimension (:,:), intent(in) :: avgF !< averaged F
@ -302,8 +299,6 @@ end subroutine homogenization_RGC_partitionDeformation
! "happy" with result
!--------------------------------------------------------------------------------------------------
function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
use prec, only: &
dEq0
#ifdef DEBUG
use debug, only: &
debug_level, &
@ -323,8 +318,6 @@ function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
viscModus_RGC, &
refRelaxRate_RGC
implicit none
real(pReal), dimension(:,:,:), intent(in) :: &
P,& !< array of P
F,& !< array of F
@ -747,8 +740,7 @@ function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
math_civita
use numerics, only: &
xSmoo_RGC
implicit none
real(pReal), dimension (:,:,:), intent(out) :: rPen !< stress-like penalty
real(pReal), dimension (:,:), intent(out) :: nMis !< total amount of mismatch
@ -868,7 +860,6 @@ function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
volDiscrMod_RGC,&
volDiscrPow_RGC
implicit none
real(pReal), dimension (:,:,:), intent(out) :: vPen ! stress-like penalty due to volume
real(pReal), intent(out) :: vDiscrep ! total volume discrepancy
@ -919,7 +910,6 @@ function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
use math, only: &
math_invert33
implicit none
real(pReal), dimension(3) :: surfaceCorrection
real(pReal), dimension(3,3), intent(in) :: avgF !< average F
@ -953,7 +943,6 @@ function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
use constitutive, only: &
constitutive_homogenizedC
implicit none
real(pReal), dimension(2) :: equivalentModuli
integer, intent(in) :: &
@ -989,7 +978,6 @@ function homogenization_RGC_updateState(P,F,F0,avgF,dt,dPdF,ip,el)
!--------------------------------------------------------------------------------------------------
subroutine grainDeformation(F, avgF, instance, of)
implicit none
real(pReal), dimension(:,:,:), intent(out) :: F !< partioned F per grain
real(pReal), dimension(:,:), intent(in) :: avgF !< averaged F
@ -1032,7 +1020,6 @@ end function homogenization_RGC_updateState
!--------------------------------------------------------------------------------------------------
subroutine homogenization_RGC_averageStressAndItsTangent(avgP,dAvgPdAvgF,P,dPdF,instance)
implicit none
real(pReal), dimension (3,3), intent(out) :: avgP !< average stress at material point
real(pReal), dimension (3,3,3,3), intent(out) :: dAvgPdAvgF !< average stiffness at material point
@ -1051,7 +1038,6 @@ end subroutine homogenization_RGC_averageStressAndItsTangent
!--------------------------------------------------------------------------------------------------
pure function homogenization_RGC_postResults(instance,of) result(postResults)
implicit none
integer, intent(in) :: &
instance, &
of
@ -1148,7 +1134,6 @@ end subroutine mech_RGC_results
!--------------------------------------------------------------------------------------------------
pure function relaxationVector(intFace,instance,of)
implicit none
real(pReal), dimension (3) :: relaxationVector
integer, intent(in) :: instance,of
@ -1176,7 +1161,6 @@ end function relaxationVector
!--------------------------------------------------------------------------------------------------
pure function interfaceNormal(intFace,instance,of)
implicit none
real(pReal), dimension(3) :: interfaceNormal
integer, dimension(4), intent(in) :: intFace !< interface ID in 4D array (normal and position)
@ -1202,7 +1186,6 @@ end function interfaceNormal
!--------------------------------------------------------------------------------------------------
pure function getInterface(iFace,iGrain3)
implicit none
integer, dimension(4) :: getInterface
integer, dimension(3), intent(in) :: iGrain3 !< grain ID in 3D array
@ -1227,7 +1210,6 @@ end function getInterface
!--------------------------------------------------------------------------------------------------
pure function grain1to3(grain1,nGDim)
implicit none
integer, dimension(3) :: grain1to3
integer, intent(in) :: grain1 !< grain ID in 1D array
@ -1245,7 +1227,6 @@ end function grain1to3
!--------------------------------------------------------------------------------------------------
integer pure function grain3to1(grain3,nGDim)
implicit none
integer, dimension(3), intent(in) :: grain3 !< grain ID in 3D array (pos.x,pos.y,pos.z)
integer, dimension(3), intent(in) :: nGDim
@ -1261,7 +1242,6 @@ end function grain3to1
!--------------------------------------------------------------------------------------------------
integer pure function interface4to1(iFace4D, nGDim)
implicit none
integer, dimension(4), intent(in) :: iFace4D !< interface ID in 4D array (n.dir,pos.x,pos.y,pos.z)
integer, dimension(3), intent(in) :: nGDim
@ -1308,7 +1288,6 @@ end function interface4to1
!--------------------------------------------------------------------------------------------------
pure function interface1to4(iFace1D, nGDim)
implicit none
integer, dimension(4) :: interface1to4
integer, intent(in) :: iFace1D !< interface ID in 1D array

View File

@ -38,8 +38,7 @@ module subroutine mech_isostrain_init
IO_error
use config, only: &
config_homogenization
implicit none
integer :: &
Ninstance, &
h, &
@ -91,7 +90,6 @@ end subroutine mech_isostrain_init
!--------------------------------------------------------------------------------------------------
module subroutine mech_isostrain_partitionDeformation(F,avgF)
implicit none
real(pReal), dimension (:,:,:), intent(out) :: F !< partitioned deformation gradient
real(pReal), dimension (3,3), intent(in) :: avgF !< average deformation gradient at material point
@ -105,8 +103,7 @@ end subroutine mech_isostrain_partitionDeformation
!> @brief derive average stress and stiffness from constituent quantities
!--------------------------------------------------------------------------------------------------
module subroutine mech_isostrain_averageStressAndItsTangent(avgP,dAvgPdAvgF,P,dPdF,instance)
implicit none
real(pReal), dimension (3,3), intent(out) :: avgP !< average stress at material point
real(pReal), dimension (3,3,3,3), intent(out) :: dAvgPdAvgF !< average stiffness at material point

View File

@ -21,7 +21,6 @@ module subroutine mech_none_init
use config, only: &
config_homogenization
implicit none
integer :: &
Ninstance, &
h, &

View File

@ -68,7 +68,6 @@ subroutine kinematics_cleavage_opening_init()
lattice_maxNcleavageFamily, &
lattice_NcleavageSystem
implicit none
integer, allocatable, dimension(:) :: tempInt
real(pReal), allocatable, dimension(:) :: tempFloat
@ -140,7 +139,6 @@ subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar, S, ipc, i
lattice_maxNcleavageFamily, &
lattice_NcleavageSystem
implicit none
integer, intent(in) :: &
ipc, & !< grain number
ip, & !< integration point number

View File

@ -4,9 +4,7 @@
!> @details to be done
!--------------------------------------------------------------------------------------------------
module kinematics_thermal_expansion
use prec, only: &
pReal, &
pInt
use prec
implicit none
private
@ -42,7 +40,6 @@ subroutine kinematics_thermal_expansion_init()
use config, only: &
config_phase
implicit none
integer(pInt) :: &
Ninstance, &
p, i
@ -87,7 +84,6 @@ pure function kinematics_thermal_expansion_initialStrain(homog,phase,offset)
lattice_thermalExpansion33, &
lattice_referenceTemperature
implicit none
integer(pInt), intent(in) :: &
phase, &
homog, offset
@ -120,7 +116,6 @@ subroutine kinematics_thermal_expansion_LiAndItsTangent(Li, dLi_dTstar, ipc, ip,
lattice_thermalExpansion33, &
lattice_referenceTemperature
implicit none
integer(pInt), intent(in) :: &
ipc, & !< grain number
ip, & !< integration point number

View File

@ -6,7 +6,7 @@
!> @brief Sets up the mesh for the solvers MSC.Marc, Abaqus and the spectral solver
!--------------------------------------------------------------------------------------------------
module mesh
use prec, only: pReal, pInt
use prec
use mesh_base
implicit none
@ -405,7 +405,7 @@ contains
subroutine tMesh_abaqus_init(self,elemType,nodes)
implicit none
class(tMesh_abaqus) :: self
real(pReal), dimension(:,:), intent(in) :: nodes
integer, intent(in) :: elemType
@ -438,7 +438,7 @@ subroutine mesh_init(ip,el)
calcMode, & FEsolving_execElem, &
FEsolving_execIP
implicit none
integer, parameter :: FILEUNIT = 222
integer, intent(in), optional :: el, ip
integer :: j
@ -530,7 +530,7 @@ logical function hasNoPart(fileUnit)
IO_stringValue, &
IO_lc
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -571,7 +571,7 @@ subroutine mesh_abaqus_count_nodesAndElements(fileUnit)
IO_countDataLines, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -631,7 +631,7 @@ subroutine mesh_abaqus_count_elementSets(fileUnit)
IO_stringPos, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -673,7 +673,7 @@ subroutine mesh_abaqus_count_materials(fileUnit)
IO_stringPos, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -718,7 +718,7 @@ subroutine mesh_abaqus_map_elementSets(fileUnit)
IO_continuousIntValues, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -770,7 +770,7 @@ subroutine mesh_abaqus_map_materials(fileUnit)
IO_extractValue, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -835,7 +835,7 @@ subroutine mesh_abaqus_count_cpElements(fileUnit)
IO_error, &
IO_extractValue
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -890,7 +890,7 @@ subroutine mesh_abaqus_map_elements(fileUnit)
IO_extractValue, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -955,7 +955,7 @@ subroutine mesh_abaqus_map_nodes(fileUnit)
IO_intValue, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -1019,7 +1019,7 @@ subroutine mesh_abaqus_build_nodes(fileUnit)
IO_countDataLines, &
IO_intValue
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -1084,7 +1084,7 @@ subroutine mesh_abaqus_count_cpSizes(fileUnit)
IO_countDataLines, &
IO_intValue
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -1143,7 +1143,7 @@ subroutine mesh_abaqus_build_elements(fileUnit)
IO_countDataLines, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -1260,7 +1260,7 @@ use IO, only: &
IO_stringValue, &
IO_stringPos
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -1303,7 +1303,7 @@ end subroutine mesh_get_damaskOptions
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_cellconnectivity
implicit none
integer, dimension(:), allocatable :: &
matchingNode2cellnode
integer, dimension(:,:), allocatable :: &
@ -1371,7 +1371,7 @@ end subroutine mesh_build_cellconnectivity
!--------------------------------------------------------------------------------------------------
function mesh_build_cellnodes(nodes,Ncellnodes)
implicit none
integer, intent(in) :: Ncellnodes !< requested number of cellnodes
real(pReal), dimension(3,mesh_Nnodes), intent(in) :: nodes
real(pReal), dimension(3,Ncellnodes) :: mesh_build_cellnodes
@ -1414,7 +1414,7 @@ subroutine mesh_build_ipVolumes
math_volTetrahedron, &
math_areaTriangle
implicit none
integer :: e,t,g,c,i,m,f,n
real(pReal), dimension(FE_maxNcellnodesPerCellface,FE_maxNcellfaces) :: subvolume
@ -1483,7 +1483,7 @@ end subroutine mesh_build_ipVolumes
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_ipCoordinates
implicit none
integer :: e,t,g,c,i,n
real(pReal), dimension(3) :: myCoords
@ -1513,7 +1513,7 @@ end subroutine mesh_build_ipCoordinates
!--------------------------------------------------------------------------------------------------
pure function mesh_cellCenterCoordinates(ip,el)
implicit none
integer, intent(in) :: el, & !< element number
ip !< integration point number
real(pReal), dimension(3) :: mesh_cellCenterCoordinates !< x,y,z coordinates of the cell center of the requested IP cell
@ -1542,7 +1542,7 @@ subroutine mesh_build_ipAreas
use math, only: &
math_cross
implicit none
integer :: e,t,g,c,i,f,n,m
real(pReal), dimension (3,FE_maxNcellnodesPerCellface) :: nodePos, normals
real(pReal), dimension(3) :: normal
@ -1614,7 +1614,7 @@ end subroutine mesh_build_ipAreas
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_nodeTwins
implicit none
integer dir, & ! direction of periodicity
node, &
minimumNode, &
@ -1685,7 +1685,7 @@ end subroutine mesh_build_nodeTwins
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_sharedElems
implicit none
integer(pint) e, & ! element index
g, & ! element type
node, & ! CP node index
@ -1750,7 +1750,7 @@ subroutine mesh_build_ipNeighborhood
use math, only: &
math_mul3x3
implicit none
integer :: myElem, & ! my CP element index
myIP, &
myType, & ! my element type
@ -1915,7 +1915,7 @@ subroutine mesh_build_ipNeighborhood
!--------------------------------------------------------------------------------------------------
subroutine mesh_faceMatch(elem, face ,matchingElem, matchingFace)
implicit none
integer, intent(out) :: matchingElem, & ! matching CP element ID
matchingFace ! matching face ID
integer, intent(in) :: face, & ! face ID
@ -2005,7 +2005,7 @@ end subroutine mesh_build_ipNeighborhood
integer function FE_mapElemtype(what)
use IO, only: IO_lc, IO_error
implicit none
character(len=*), intent(in) :: what
select case (IO_lc(what))
@ -2049,7 +2049,7 @@ end function FE_mapElemtype
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_FEdata
implicit none
integer :: me
allocate(FE_nodesAtIP(FE_maxmaxNnodesAtIP,FE_maxNips,FE_Ngeomtypes), source=0)
allocate(FE_ipNeighbor(FE_maxNipNeighbors,FE_maxNips,FE_Ngeomtypes), source=0)
@ -2769,7 +2769,6 @@ integer function mesh_FEasCP(what,myID)
use IO, only: &
IO_lc
implicit none
character(len=*), intent(in) :: what
integer, intent(in) :: myID

View File

@ -9,12 +9,8 @@
module mesh_base
use, intrinsic :: iso_c_binding
use prec, only: &
pStringLen, &
pReal, &
pInt
use element, only: &
tElement
use prec
use element
use future
implicit none
@ -54,7 +50,6 @@ module mesh_base
contains
subroutine tMesh_base_init(self,meshType,elemType,nodes)
implicit none
class(tMesh) :: self
character(len=*), intent(in) :: meshType
integer(pInt), intent(in) :: elemType
@ -74,8 +69,7 @@ end subroutine tMesh_base_init
subroutine tMesh_base_setNelems(self,Nelems)
implicit none
class(tMesh) :: self
integer(pInt), intent(in) :: Nelems

View File

@ -6,7 +6,7 @@
!> @brief Sets up the mesh for the solver MSC.Marc
!--------------------------------------------------------------------------------------------------
module mesh
use prec, only: pReal, pInt
use prec
use mesh_base
implicit none
@ -265,7 +265,7 @@ contains
subroutine tMesh_marc_init(self,elemType,nodes)
implicit none
class(tMesh_marc) :: self
real(pReal), dimension(:,:), intent(in) :: nodes
integer, intent(in) :: elemType
@ -299,7 +299,7 @@ subroutine mesh_init(ip,el)
FEsolving_execElem, &
FEsolving_execIP
implicit none
integer, intent(in) :: el, ip
integer, parameter :: FILEUNIT = 222
@ -420,7 +420,7 @@ integer function mesh_marc_get_fileFormat(fileUnit)
IO_stringValue, &
IO_stringPos
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -451,7 +451,7 @@ subroutine mesh_marc_get_tableStyles(initialcond, hypoelastic,fileUnit)
IO_stringValue, &
IO_stringPos
implicit none
integer, intent(out) :: initialcond, hypoelastic
integer, intent(in) :: fileUnit
@ -486,7 +486,7 @@ function mesh_marc_get_matNumber(fileUnit,tableStyle)
IO_stringValue, &
IO_stringPos
implicit none
integer, intent(in) :: fileUnit, tableStyle
integer, dimension(:), allocatable :: mesh_marc_get_matNumber
@ -534,7 +534,7 @@ subroutine mesh_marc_count_nodesAndElements(nNodes, nElems, fileUnit)
IO_stringPos, &
IO_IntValue
implicit none
integer, intent(in) :: fileUnit
integer, intent(out) :: nNodes, nElems
@ -572,7 +572,7 @@ subroutine mesh_marc_count_nodesAndElements(nNodes, nElems, fileUnit)
IO_stringPos, &
IO_countContinuousIntValues
implicit none
integer, intent(in) :: fileUnit
integer, intent(out) :: nElemSets, maxNelemInSet
@ -607,7 +607,7 @@ subroutine mesh_marc_map_elementSets(nameElemSet,mapElemSet,fileUnit)
IO_stringPos, &
IO_continuousIntValues
implicit none
integer, intent(in) :: fileUnit
character(len=64), dimension(:), intent(out) :: &
nameElemSet
@ -647,7 +647,7 @@ subroutine mesh_marc_map_elements(tableStyle,nameElemSet,mapElemSet,nElems,fileU
IO_stringPos, &
IO_continuousIntValues
implicit none
integer, intent(in) :: fileUnit,tableStyle,nElems
character(len=64), intent(in), dimension(:) :: nameElemSet
integer, dimension(:,:), intent(in) :: &
@ -717,7 +717,7 @@ subroutine mesh_marc_map_nodes(nNodes,fileUnit)
IO_stringPos, &
IO_fixedIntValue
implicit none
integer, intent(in) :: fileUnit, nNodes
integer, allocatable, dimension(:) :: chunkPos
@ -760,7 +760,7 @@ subroutine mesh_marc_build_nodes(fileUnit)
IO_fixedIntValue, &
IO_fixedNoEFloatValue
implicit none
integer, intent(in) :: fileUnit
integer, dimension(5), parameter :: node_ends = int([0,10,30,50,70],pInt)
@ -807,7 +807,7 @@ integer function mesh_marc_count_cpSizes(fileUnit)
IO_skipChunks
use element
implicit none
integer, intent(in) :: fileUnit
type(tElement) :: tempEl
@ -857,7 +857,7 @@ subroutine mesh_marc_build_elements(fileUnit)
IO_continuousIntValues, &
IO_error
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -955,7 +955,7 @@ use IO, only: &
IO_stringValue, &
IO_stringPos
implicit none
integer, intent(in) :: fileUnit
integer, allocatable, dimension(:) :: chunkPos
@ -997,7 +997,7 @@ end subroutine mesh_get_damaskOptions
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_cellconnectivity
implicit none
integer, dimension(:), allocatable :: &
matchingNode2cellnode
integer, dimension(:,:), allocatable :: &
@ -1063,7 +1063,7 @@ end subroutine mesh_build_cellconnectivity
!--------------------------------------------------------------------------------------------------
function mesh_build_cellnodes(nodes,Ncellnodes)
implicit none
integer, intent(in) :: Ncellnodes !< requested number of cellnodes
real(pReal), dimension(3,mesh_Nnodes), intent(in) :: nodes
real(pReal), dimension(3,Ncellnodes) :: mesh_build_cellnodes
@ -1105,7 +1105,7 @@ subroutine mesh_build_ipVolumes
math_volTetrahedron, &
math_areaTriangle
implicit none
integer :: e,t,g,c,i,m,f,n
real(pReal), dimension(FE_maxNcellnodesPerCellface,FE_maxNcellfaces) :: subvolume
@ -1174,7 +1174,7 @@ end subroutine mesh_build_ipVolumes
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_ipCoordinates
implicit none
integer :: e,t,g,c,i,n
real(pReal), dimension(3) :: myCoords
@ -1204,7 +1204,7 @@ end subroutine mesh_build_ipCoordinates
!--------------------------------------------------------------------------------------------------
pure function mesh_cellCenterCoordinates(ip,el)
implicit none
integer, intent(in) :: el, & !< element number
ip !< integration point number
real(pReal), dimension(3) :: mesh_cellCenterCoordinates !< x,y,z coordinates of the cell center of the requested IP cell
@ -1232,7 +1232,7 @@ subroutine mesh_build_ipAreas
use math, only: &
math_cross
implicit none
integer :: e,t,g,c,i,f,n,m
real(pReal), dimension (3,FE_maxNcellnodesPerCellface) :: nodePos, normals
real(pReal), dimension(3) :: normal
@ -1304,7 +1304,7 @@ end subroutine mesh_build_ipAreas
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_nodeTwins
implicit none
integer dir, & ! direction of periodicity
node, &
minimumNode, &
@ -1375,7 +1375,7 @@ end subroutine mesh_build_nodeTwins
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_sharedElems
implicit none
integer(pint) e, & ! element index
g, & ! element type
node, & ! CP node index
@ -1440,7 +1440,7 @@ subroutine mesh_build_ipNeighborhood
use math, only: &
math_mul3x3
implicit none
integer :: myElem, & ! my CP element index
myIP, &
myType, & ! my element type
@ -1606,7 +1606,7 @@ subroutine mesh_build_ipNeighborhood
!--------------------------------------------------------------------------------------------------
subroutine mesh_faceMatch(elem, face ,matchingElem, matchingFace)
implicit none
integer, intent(out) :: matchingElem, & ! matching CP element ID
matchingFace ! matching face ID
integer, intent(in) :: face, & ! face ID
@ -1696,7 +1696,7 @@ end subroutine mesh_build_ipNeighborhood
integer function FE_mapElemtype(what)
use IO, only: IO_lc, IO_error
implicit none
character(len=*), intent(in) :: what
select case (IO_lc(what))
@ -1742,7 +1742,7 @@ end function FE_mapElemtype
!--------------------------------------------------------------------------------------------------
subroutine mesh_build_FEdata
implicit none
integer :: me
allocate(FE_cellface(FE_maxNcellnodesPerCellface,FE_maxNcellfaces,FE_Ncelltypes), source=0)
@ -1798,7 +1798,7 @@ integer function mesh_FEasCP(what,myID)
use IO, only: &
IO_lc
implicit none
character(len=*), intent(in) :: what
integer, intent(in) :: myID

View File

@ -4,9 +4,7 @@
!> @brief Managing of parameters related to numerics
!--------------------------------------------------------------------------------------------------
module numerics
use prec, only: &
pInt, &
pReal
use prec
implicit none
private
@ -131,8 +129,6 @@ contains
! a sanity check
!--------------------------------------------------------------------------------------------------
subroutine numerics_init
use prec, only: &
pStringLen
use IO, only: &
IO_read_ASCII, &
IO_error, &
@ -148,7 +144,6 @@ subroutine numerics_init
use petscsys
#endif
!$ use OMP_LIB, only: omp_set_num_threads
implicit none
!$ integer :: gotDAMASK_NUM_THREADS = 1
integer :: i,j, ierr ! no pInt
integer(pInt), allocatable, dimension(:) :: chunkPos