From c8929b47d31f85a0d6be46a36d7404d7d3a4f063 Mon Sep 17 00:00:00 2001
From: Pratheek Shanthraj
Date: Thu, 9 Oct 2014 20:23:06 +0000
Subject: [PATCH] only output from the root processor for parallel runs
---
code/CPFEM.f90 | 9 +++++++++
code/FEsolving.f90 | 10 ++++++++++
code/IO.f90 | 12 +++++++++++
code/constitutive.f90 | 9 +++++++++
code/constitutive_dislokmc.f90 | 9 +++++++++
code/constitutive_dislotwin.f90 | 9 +++++++++
code/constitutive_j2.f90 | 9 +++++++++
code/constitutive_none.f90 | 9 +++++++++
code/constitutive_nonlocal.f90 | 9 +++++++++
code/constitutive_phenopowerlaw.f90 | 9 +++++++++
code/constitutive_titanmod.f90 | 9 +++++++++
code/crystallite.f90 | 9 +++++++++
code/damage_brittle.f90 | 10 ++++++++++
code/damage_ductile.f90 | 10 ++++++++++
code/damage_none.f90 | 11 ++++++++++
code/debug.f90 | 9 +++++++++
code/homogenization.f90 | 11 ++++++++++
code/homogenization_RGC.f90 | 10 ++++++++++
code/homogenization_isostrain.f90 | 10 ++++++++++
code/homogenization_none.f90 | 10 ++++++++++
code/lattice.f90 | 10 ++++++++++
code/material.f90 | 10 ++++++++++
code/math.f90 | 18 ++++++++++++++++-
code/numerics.f90 | 31 ++++++++++++++++++++++++-----
code/prec.f90 | 12 +++++++++++
code/thermal_adiabatic.f90 | 9 +++++++++
code/thermal_heatGen.f90 | 9 +++++++++
code/thermal_isothermal.f90 | 9 +++++++++
28 files changed, 295 insertions(+), 6 deletions(-)
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