diff --git a/code/CPFEM.f90 b/code/CPFEM.f90 index 12bd36306..d27709e65 100644 --- a/code/CPFEM.f90 +++ b/code/CPFEM.f90 @@ -125,6 +125,9 @@ subroutine CPFEM_init IO_timeStamp, & IO_error use numerics, only: & +#ifdef FEM + worldrank, & +#endif DAMASK_NumThreadsInt use debug, only: & debug_level, & @@ -157,10 +160,16 @@ subroutine CPFEM_init implicit none integer(pInt) :: k,l,m,ph,homog +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- CPFEM init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif #if defined(Marc4DAMASK) || defined(Abaqus) ! initialize stress and jacobian to zero diff --git a/code/FEsolving.f90 b/code/FEsolving.f90 index eb6b2a467..0a164a3ed 100644 --- a/code/FEsolving.f90 +++ b/code/FEsolving.f90 @@ -75,6 +75,10 @@ subroutine FE_init IO_warning, & IO_timeStamp use DAMASK_interface +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none #ifndef Spectral @@ -89,10 +93,16 @@ subroutine FE_init #endif #endif +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- FEsolving init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif modelName = getSolverJobName() #ifdef Spectral diff --git a/code/IO.f90 b/code/IO.f90 index 836309030..7a9c2bc0c 100644 --- a/code/IO.f90 +++ b/code/IO.f90 @@ -102,11 +102,23 @@ contains !-------------------------------------------------------------------------------------------------- subroutine IO_init use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) +#ifdef FEM +#include + PetscInt :: worldrank + PetscErrorCode :: ierr +#endif +#ifdef FEM + call MPI_Comm_rank(PETSC_COMM_WORLD,worldrank,ierr);CHKERRQ(ierr) + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- IO init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif #ifdef HDF call HDF5_createJobFile diff --git a/code/constitutive.f90 b/code/constitutive.f90 index 294d61ae8..f3e95aa02 100644 --- a/code/constitutive.f90 +++ b/code/constitutive.f90 @@ -60,6 +60,9 @@ subroutine constitutive_init debug_constitutive, & debug_levelBasic use numerics, only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator use IO, only: & IO_error, & @@ -181,10 +184,16 @@ subroutine constitutive_init if (any(phase_thermal == LOCAL_THERMAL_adiabatic_ID)) call thermal_adiabatic_init(FILEUNIT) close(FILEUNIT) +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif !-------------------------------------------------------------------------------------------------- ! write description file for constitutive phase output diff --git a/code/constitutive_dislokmc.f90 b/code/constitutive_dislokmc.f90 index 85264a61e..3c60578b3 100644 --- a/code/constitutive_dislokmc.f90 +++ b/code/constitutive_dislokmc.f90 @@ -202,6 +202,9 @@ subroutine constitutive_dislokmc_init(fileUnit) MATERIAL_partPhase use lattice use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -221,10 +224,16 @@ subroutine constitutive_dislokmc_init(fileUnit) line = '' real(pReal), dimension(:), allocatable :: tempPerSlip, tempPerTwin +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_DISLOKMC_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_plasticity == PLASTICITY_DISLOKMC_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/constitutive_dislotwin.f90 b/code/constitutive_dislotwin.f90 index 6d3b7f57f..b6dbfd065 100644 --- a/code/constitutive_dislotwin.f90 +++ b/code/constitutive_dislotwin.f90 @@ -216,6 +216,9 @@ subroutine constitutive_dislotwin_init(fileUnit) MATERIAL_partPhase use lattice use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -235,10 +238,16 @@ subroutine constitutive_dislotwin_init(fileUnit) line = '' real(pReal), dimension(:), allocatable :: tempPerSlip, tempPerTwin, tempPerTrans +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_DISLOTWIN_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_plasticity == PLASTICITY_DISLOTWIN_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/constitutive_j2.f90 b/code/constitutive_j2.f90 index 1f71410c3..81e77aabc 100644 --- a/code/constitutive_j2.f90 +++ b/code/constitutive_j2.f90 @@ -94,6 +94,9 @@ subroutine constitutive_j2_init(fileUnit) debug_constitutive, & debug_levelBasic use numerics, only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator use math, only: & math_Mandel3333to66, & @@ -152,10 +155,16 @@ subroutine constitutive_j2_init(fileUnit) integer(HID_T) :: ID,ID2,ID4 #endif +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_J2_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_plasticity == PLASTICITY_J2_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/constitutive_none.f90 b/code/constitutive_none.f90 index 9a9527077..d94a9dfc5 100644 --- a/code/constitutive_none.f90 +++ b/code/constitutive_none.f90 @@ -36,6 +36,9 @@ subroutine constitutive_none_init(fileUnit) use IO, only: & IO_timeStamp use numerics, only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator use material, only: & phase_plasticity, & @@ -56,10 +59,16 @@ subroutine constitutive_none_init(fileUnit) sizeState, & sizeDotState +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_NONE_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_plasticity == PLASTICITY_none_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/constitutive_nonlocal.f90 b/code/constitutive_nonlocal.f90 index 982925168..cc638db5f 100644 --- a/code/constitutive_nonlocal.f90 +++ b/code/constitutive_nonlocal.f90 @@ -300,6 +300,9 @@ use material, only: homogenization_maxNgrains, & material_phase use lattice use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator @@ -337,10 +340,16 @@ integer(pInt) :: phase, & integer(pInt) :: NofMyPhase +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_NONLOCAL_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstances = int(count(phase_plasticity == PLASTICITY_NONLOCAL_ID),pInt) if (maxNinstances == 0) return ! we don't have to do anything if there's no instance for this constitutive law diff --git a/code/constitutive_phenopowerlaw.f90 b/code/constitutive_phenopowerlaw.f90 index d93810800..c7bd7e4c7 100644 --- a/code/constitutive_phenopowerlaw.f90 +++ b/code/constitutive_phenopowerlaw.f90 @@ -138,6 +138,9 @@ subroutine constitutive_phenopowerlaw_init(fileUnit) MATERIAL_partPhase use lattice use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -158,10 +161,16 @@ subroutine constitutive_phenopowerlaw_init(fileUnit) integer(pInt) :: NofMyPhase real(pReal), dimension(:), allocatable :: tempPerSlip +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_PHENOPOWERLAW_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/constitutive_titanmod.f90 b/code/constitutive_titanmod.f90 index 099267918..44813c9ed 100644 --- a/code/constitutive_titanmod.f90 +++ b/code/constitutive_titanmod.f90 @@ -219,6 +219,9 @@ subroutine constitutive_titanmod_init(fileUnit) MATERIAL_partPhase use lattice use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -243,10 +246,16 @@ subroutine constitutive_titanmod_init(fileUnit) tag = '', & line = '' +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_TITANMOD_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_plasticity == PLASTICITY_TITANMOD_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/crystallite.f90 b/code/crystallite.f90 index 3cbcaa40a..c2079687b 100644 --- a/code/crystallite.f90 +++ b/code/crystallite.f90 @@ -141,6 +141,9 @@ subroutine crystallite_init(temperature) debug_crystallite, & debug_levelBasic use numerics, only: & +#ifdef FEM + worldrank, & +#endif usePingPong use math, only: & math_I3, & @@ -202,10 +205,16 @@ subroutine crystallite_init(temperature) tag = '', & line= '' +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- crystallite init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif gMax = homogenization_maxNgrains iMax = mesh_maxNips diff --git a/code/damage_brittle.f90 b/code/damage_brittle.f90 index 79616cd43..3a1545c71 100644 --- a/code/damage_brittle.f90 +++ b/code/damage_brittle.f90 @@ -88,6 +88,9 @@ subroutine damage_brittle_init(fileUnit) damageState, & MATERIAL_partPhase use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -101,10 +104,17 @@ subroutine damage_brittle_init(fileUnit) character(len=65536) :: & tag = '', & line = '' + +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- damage_'//LOCAL_DAMAGE_BRITTLE_label//' init -+>>>' write(6,'(a)') ' $Id: damage_brittle.f90 3210 2014-06-17 15:24:44Z MPIE\m.diehl $' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_damage == LOCAL_DAMAGE_BRITTLE_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/damage_ductile.f90 b/code/damage_ductile.f90 index 621c7d5c1..26e0739eb 100755 --- a/code/damage_ductile.f90 +++ b/code/damage_ductile.f90 @@ -88,6 +88,9 @@ subroutine damage_ductile_init(fileUnit) damageState, & MATERIAL_partPhase use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -101,10 +104,17 @@ subroutine damage_ductile_init(fileUnit) character(len=65536) :: & tag = '', & line = '' + +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- damage_'//LOCAL_DAMAGE_DUCTILE_LABEL//' init -+>>>' write(6,'(a)') ' $Id: damage_ductile.f90 3210 2014-06-17 15:24:44Z MPIE\m.diehl $' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_damage == LOCAL_DAMAGE_DUCTILE_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/damage_none.f90 b/code/damage_none.f90 index edf3ae24e..069eb7543 100644 --- a/code/damage_none.f90 +++ b/code/damage_none.f90 @@ -36,6 +36,9 @@ subroutine damage_none_init(fileUnit) use IO, only: & IO_timeStamp use numerics, only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator use material, only: & phase_damage, & @@ -55,10 +58,18 @@ subroutine damage_none_init(fileUnit) NofMyPhase, & sizeState, & sizeDotState + +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- damage_'//LOCAL_DAMAGE_NONE_label//' init -+>>>' write(6,'(a)') ' $Id: damage_none.f90 3148 2014-05-27 14:46:03Z MPIE\m.diehl $' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif + maxNinstance = int(count(phase_damage == LOCAL_DAMAGE_NONE_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/debug.f90 b/code/debug.f90 index b1b74b5c2..a941d7a7a 100644 --- a/code/debug.f90 +++ b/code/debug.f90 @@ -102,6 +102,9 @@ contains subroutine debug_init use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) use numerics, only: & +#ifdef FEM + worldrank, & +#endif nStress, & nState, & nCryst, & @@ -129,10 +132,16 @@ subroutine debug_init character(len=65536) :: tag character(len=65536) :: line +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- debug init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif if (allocated(debug_StressLoopDistribution)) & deallocate(debug_StressLoopDistribution) diff --git a/code/homogenization.f90 b/code/homogenization.f90 index 5c2aac79c..5548c1a90 100644 --- a/code/homogenization.f90 +++ b/code/homogenization.f90 @@ -123,6 +123,10 @@ subroutine homogenization_init() use homogenization_isostrain use homogenization_RGC use IO +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none integer(pInt), parameter :: FILEUNIT = 200_pInt @@ -308,10 +312,17 @@ subroutine homogenization_init() + 1 + constitutive_maxSizePostResults) ! constitutive size & constitutive results allocate(materialpoint_results(materialpoint_sizeResults,mesh_maxNips,mesh_NcpElems)) +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- homogenization init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif + if (iand(debug_level(debug_homogenization), debug_levelBasic) /= 0_pInt) then #ifdef TODO write(6,'(a32,1x,7(i8,1x))') 'homogenization_state0: ', shape(homogenization_state0) diff --git a/code/homogenization_RGC.f90 b/code/homogenization_RGC.f90 index 3b3a666ba..c3c871112 100644 --- a/code/homogenization_RGC.f90 +++ b/code/homogenization_RGC.f90 @@ -98,6 +98,10 @@ subroutine homogenization_RGC_init(fileUnit) FE_geomtype use IO use material +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none integer(pInt), intent(in) :: fileUnit !< file pointer to material configuration @@ -114,10 +118,16 @@ subroutine homogenization_RGC_init(fileUnit) tag = '', & line = '' +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- homogenization_'//HOMOGENIZATION_RGC_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(homogenization_type == HOMOGENIZATION_RGC_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/homogenization_isostrain.f90 b/code/homogenization_isostrain.f90 index 0ecb26bee..443e4d65d 100644 --- a/code/homogenization_isostrain.f90 +++ b/code/homogenization_isostrain.f90 @@ -60,6 +60,10 @@ subroutine homogenization_isostrain_init(fileUnit) debug_levelBasic use IO use material +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none integer(pInt), intent(in) :: fileUnit @@ -77,10 +81,16 @@ subroutine homogenization_isostrain_init(fileUnit) tag = '', & line = '' +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- homogenization_'//HOMOGENIZATION_ISOSTRAIN_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = count(homogenization_type == HOMOGENIZATION_ISOSTRAIN_ID) if (maxNinstance == 0) return diff --git a/code/homogenization_none.f90 b/code/homogenization_none.f90 index 1c07a9bdc..fc906dcb1 100644 --- a/code/homogenization_none.f90 +++ b/code/homogenization_none.f90 @@ -27,16 +27,26 @@ subroutine homogenization_none_init() use IO, only: & IO_timeStamp use material +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none integer(pInt) :: & homog, & NofMyHomog +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- homogenization_'//HOMOGENIZATION_NONE_label//' init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif initializeInstances: do homog = 1_pInt, material_Nhomogenization diff --git a/code/lattice.f90 b/code/lattice.f90 index f705cf707..0210911b0 100644 --- a/code/lattice.f90 +++ b/code/lattice.f90 @@ -915,6 +915,10 @@ subroutine lattice_init debug_level, & debug_lattice, & debug_levelBasic +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none integer(pInt), parameter :: FILEUNIT = 200_pInt @@ -931,10 +935,16 @@ subroutine lattice_init aM, & !< lattice paramater a for bcc martensite cM !< lattice parameter c for bcc martensite +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- lattice init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif !-------------------------------------------------------------------------------------------------- ! consistency checks diff --git a/code/material.f90 b/code/material.f90 index b4ed6b712..778b64e2b 100644 --- a/code/material.f90 +++ b/code/material.f90 @@ -263,6 +263,10 @@ subroutine material_init mesh_element, & FE_Nips, & FE_geomtype +#ifdef FEM + use numerics, only: & + worldrank +#endif implicit none integer(pInt), parameter :: FILEUNIT = 200_pInt @@ -280,10 +284,16 @@ subroutine material_init myDebug = debug_level(debug_material) +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- material init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif if (.not. IO_open_jobFile_stat(FILEUNIT,material_localFileExt)) & ! no local material configuration present... call IO_open_file(FILEUNIT,material_configFile) ! ...open material.config file diff --git a/code/math.f90 b/code/math.f90 index c92423cfb..9e7e76c80 100644 --- a/code/math.f90 +++ b/code/math.f90 @@ -210,7 +210,11 @@ subroutine math_init use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) use prec, only: tol_math_check - use numerics, only: fixedSeed + use numerics, only: & +#ifdef FEM + worldrank, & +#endif + fixedSeed use IO, only: IO_error, IO_timeStamp implicit none @@ -224,10 +228,16 @@ subroutine math_init ! comment the first random_seed call out, set randSize to 1, and use ifort character(len=64) :: error_msg +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- math init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif call random_seed(size=randSize) if (allocated(randInit)) deallocate(randInit) @@ -246,12 +256,18 @@ subroutine math_init call random_number(randTest(i)) enddo +#ifdef FEM + if (worldrank == 0) then +#endif write(6,*) 'size of random seed: ', randSize do i =1, randSize write(6,*) 'value of random seed: ', i, randInit(i) enddo write(6,'(a,4(/,26x,f17.14))') ' start of random sequence: ', randTest write(6,*) '' +#ifdef FEM + endif +#endif call random_seed(put = randInit) diff --git a/code/numerics.f90 b/code/numerics.f90 index 97ed950e4..37003ce83 100644 --- a/code/numerics.f90 +++ b/code/numerics.f90 @@ -201,10 +201,18 @@ subroutine numerics_init line !$ character(len=6) DAMASK_NumThreadsString ! environment variable DAMASK_NUM_THREADS +#ifdef FEM + call MPI_Comm_rank(PETSC_COMM_WORLD,worldrank,ierr);CHKERRQ(ierr) + call MPI_Comm_size(PETSC_COMM_WORLD,worldsize,ierr);CHKERRQ(ierr) + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- numerics init -+>>>' write(6,'(a)') ' $Id$' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif !$ call GET_ENVIRONMENT_VARIABLE(NAME='DAMASK_NUM_THREADS',VALUE=DAMASK_NumThreadsString,STATUS=gotDAMASK_NUM_THREADS) ! get environment variable DAMASK_NUM_THREADS... !$ if(gotDAMASK_NUM_THREADS /= 0) then ! could not get number of threads, set it to 1 @@ -216,16 +224,17 @@ subroutine numerics_init !$ endif !$ call omp_set_num_threads(DAMASK_NumThreadsInt) ! set number of threads for parallel execution -#ifdef FEM - call MPI_Comm_rank(PETSC_COMM_WORLD,worldrank,ierr);CHKERRQ(ierr) - call MPI_Comm_size(PETSC_COMM_WORLD,worldsize,ierr);CHKERRQ(ierr) -#endif - !-------------------------------------------------------------------------------------------------- ! try to open the config file fileExists: if(IO_open_file_stat(FILEUNIT,numerics_configFile)) then +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(a,/)') ' using values from config file' flush(6) +#ifdef FEM + endif +#endif !-------------------------------------------------------------------------------------------------- ! read variables from config file and overwrite default parameters if keyword is present @@ -425,8 +434,14 @@ subroutine numerics_init close(FILEUNIT) else fileExists +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(a,/)') ' using standard values' flush(6) +#ifdef FEM + endif +#endif endif fileExists #ifdef Spectral @@ -447,6 +462,9 @@ subroutine numerics_init numerics_timeSyncing = numerics_timeSyncing .and. all(numerics_integrator==2_pInt) ! timeSyncing only allowed for explicit Euler integrator +#ifdef FEM + if (worldrank == 0) then +#endif !-------------------------------------------------------------------------------------------------- ! writing parameters to output write(6,'(a24,1x,es8.1)') ' relevantStrain: ',relevantStrain @@ -547,6 +565,9 @@ subroutine numerics_init write(6,'(a24,1x,es8.1)') ' residualStiffness: ',residualStiffness write(6,'(a24,1x,a)') ' PETSc_optionsFEM: ',trim(petsc_optionsFEM) #endif +#ifdef FEM + endif +#endif !-------------------------------------------------------------------------------------------------- ! sanity checks diff --git a/code/prec.f90 b/code/prec.f90 index 558179397..2da5d5814 100644 --- a/code/prec.f90 +++ b/code/prec.f90 @@ -96,9 +96,18 @@ subroutine prec_init use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) implicit none +#ifdef FEM +#include + PetscInt :: worldrank + PetscErrorCode :: ierr +#endif external :: & quit +#ifdef FEM + call MPI_Comm_rank(PETSC_COMM_WORLD,worldrank,ierr);CHKERRQ(ierr) + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- prec init -+>>>' write(6,'(a)') ' $Id$' #include "compilation_info.f90" @@ -107,6 +116,9 @@ subroutine prec_init write(6,'(a,i3)') ' Bytes for pLongInt: ',pLongInt write(6,'(a,e10.3)') ' NaN: ', DAMASK_NaN write(6,'(a,l3,/)') ' NaN /= NaN: ',DAMASK_NaN/=DAMASK_NaN +#ifdef FEM + endif +#endif if (DAMASK_NaN == DAMASK_NaN) call quit(9000) diff --git a/code/thermal_adiabatic.f90 b/code/thermal_adiabatic.f90 index 1124d6285..5ade6b08b 100644 --- a/code/thermal_adiabatic.f90 +++ b/code/thermal_adiabatic.f90 @@ -85,6 +85,9 @@ subroutine thermal_adiabatic_init(fileUnit) thermalState, & MATERIAL_partPhase use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -99,10 +102,16 @@ subroutine thermal_adiabatic_init(fileUnit) tag = '', & line = '' +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- thermal_'//LOCAL_THERMAL_ADIABATIC_label//' init -+>>>' write(6,'(a)') ' $Id: thermal_adiabatic.f90 3210 2014-06-17 15:24:44Z MPIE\m.diehl $' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_thermal == LOCAL_THERMAL_adiabatic_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/thermal_heatGen.f90 b/code/thermal_heatGen.f90 index 522ac020c..eebd71f43 100644 --- a/code/thermal_heatGen.f90 +++ b/code/thermal_heatGen.f90 @@ -85,6 +85,9 @@ subroutine thermal_heatGen_init(fileUnit) thermalState, & MATERIAL_partPhase use numerics,only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator implicit none @@ -99,10 +102,16 @@ subroutine thermal_heatGen_init(fileUnit) tag = '', & line = '' +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- thermal_'//LOCAL_THERMAL_HEATGEN_label//' init -+>>>' write(6,'(a)') ' $Id: thermal_heatGen.f90 3210 2014-06-17 15:24:44Z MPIE\m.diehl $' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_thermal == LOCAL_THERMAL_HEATGEN_ID),pInt) if (maxNinstance == 0_pInt) return diff --git a/code/thermal_isothermal.f90 b/code/thermal_isothermal.f90 index 54936e292..297ed5164 100644 --- a/code/thermal_isothermal.f90 +++ b/code/thermal_isothermal.f90 @@ -36,6 +36,9 @@ subroutine thermal_isothermal_init(fileUnit) use IO, only: & IO_timeStamp use numerics, only: & +#ifdef FEM + worldrank, & +#endif numerics_integrator use material, only: & phase_thermal, & @@ -56,10 +59,16 @@ subroutine thermal_isothermal_init(fileUnit) sizeState, & sizeDotState +#ifdef FEM + if (worldrank == 0) then +#endif write(6,'(/,a)') ' <<<+- thermal_'//LOCAL_THERMAL_ISOTHERMAL_label//' init -+>>>' write(6,'(a)') ' $Id: thermal_isothermal.f90 3148 2014-05-27 14:46:03Z MPIE\m.diehl $' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" +#ifdef FEM + endif +#endif maxNinstance = int(count(phase_thermal == LOCAL_THERMAL_ISOTHERMAL_ID),pInt) if (maxNinstance == 0_pInt) return