diff --git a/src/CPFEM.f90 b/src/CPFEM.f90 index a1e562c24..3c9632787 100644 --- a/src/CPFEM.f90 +++ b/src/CPFEM.f90 @@ -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 diff --git a/src/CPFEM2.f90 b/src/CPFEM2.f90 index 38229d050..465521fb6 100644 --- a/src/CPFEM2.f90 +++ b/src/CPFEM2.f90 @@ -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 diff --git a/src/FEsolving.f90 b/src/FEsolving.f90 index be567decc..c188e66e2 100644 --- a/src/FEsolving.f90 +++ b/src/FEsolving.f90 @@ -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 diff --git a/src/IO.f90 b/src/IO.f90 index 86ff5fe57..d3bed09df 100644 --- a/src/IO.f90 +++ b/src/IO.f90 @@ -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) diff --git a/src/config.f90 b/src/config.f90 index f86057b25..6bc9e9c0b 100644 --- a/src/config.f90 +++ b/src/config.f90 @@ -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)) diff --git a/src/damage_local.f90 b/src/damage_local.f90 index ab8b1644a..1ec42f863 100644 --- a/src/damage_local.f90 +++ b/src/damage_local.f90 @@ -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 diff --git a/src/damage_none.f90 b/src/damage_none.f90 index ffe6cd9a1..aa2995ef5 100644 --- a/src/damage_none.f90 +++ b/src/damage_none.f90 @@ -26,8 +26,7 @@ subroutine damage_none_init() damageState, & DAMAGE_NONE_LABEL, & DAMAGE_NONE_ID - - implicit none + integer :: & homog, & NofMyHomog diff --git a/src/damage_nonlocal.f90 b/src/damage_nonlocal.f90 index dc1036b67..9398b328a 100644 --- a/src/damage_nonlocal.f90 +++ b/src/damage_nonlocal.f90 @@ -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 diff --git a/src/element.f90 b/src/element.f90 index bbce2154a..c250d3923 100644 --- a/src/element.f90 +++ b/src/element.f90 @@ -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 diff --git a/src/homogenization.f90 b/src/homogenization.f90 index fe15364b8..c7a99318c 100644 --- a/src/homogenization.f90 +++ b/src/homogenization.f90 @@ -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 diff --git a/src/homogenization_mech_RGC.f90 b/src/homogenization_mech_RGC.f90 index 27a52432e..d3feac1eb 100644 --- a/src/homogenization_mech_RGC.f90 +++ b/src/homogenization_mech_RGC.f90 @@ -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 diff --git a/src/homogenization_mech_isostrain.f90 b/src/homogenization_mech_isostrain.f90 index 39ed3a8c6..7dd7bad7d 100644 --- a/src/homogenization_mech_isostrain.f90 +++ b/src/homogenization_mech_isostrain.f90 @@ -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 diff --git a/src/homogenization_mech_none.f90 b/src/homogenization_mech_none.f90 index 8300acce6..e7a5a12e6 100644 --- a/src/homogenization_mech_none.f90 +++ b/src/homogenization_mech_none.f90 @@ -21,7 +21,6 @@ module subroutine mech_none_init use config, only: & config_homogenization - implicit none integer :: & Ninstance, & h, & diff --git a/src/kinematics_cleavage_opening.f90 b/src/kinematics_cleavage_opening.f90 index 2ce058c19..349551d4d 100644 --- a/src/kinematics_cleavage_opening.f90 +++ b/src/kinematics_cleavage_opening.f90 @@ -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 diff --git a/src/kinematics_thermal_expansion.f90 b/src/kinematics_thermal_expansion.f90 index c6e29e346..86932ea69 100644 --- a/src/kinematics_thermal_expansion.f90 +++ b/src/kinematics_thermal_expansion.f90 @@ -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 diff --git a/src/mesh_abaqus.f90 b/src/mesh_abaqus.f90 index 5168d4d4b..0404ee4ae 100644 --- a/src/mesh_abaqus.f90 +++ b/src/mesh_abaqus.f90 @@ -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 diff --git a/src/mesh_base.f90 b/src/mesh_base.f90 index fae228bc0..2ee9905dd 100644 --- a/src/mesh_base.f90 +++ b/src/mesh_base.f90 @@ -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 diff --git a/src/mesh_marc.f90 b/src/mesh_marc.f90 index 7338c88f3..f1a3ff768 100644 --- a/src/mesh_marc.f90 +++ b/src/mesh_marc.f90 @@ -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 diff --git a/src/numerics.f90 b/src/numerics.f90 index f7c603c60..30ece7520 100644 --- a/src/numerics.f90 +++ b/src/numerics.f90 @@ -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