From fdf8833c36623fb39053ba1fd2290811068b0c8e Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 2 Jun 2018 13:31:21 +0200 Subject: [PATCH 1/5] debug output not needed any more --- .../Polycrystal/20grains16x16x16.geom | 259 +----------------- .../SpectralMethod/Polycrystal/tensionX.load | 3 +- src/material.f90 | 1 - 3 files changed, 3 insertions(+), 260 deletions(-) diff --git a/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom b/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom index 23fe46f8e..46926dc1f 100644 --- a/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom +++ b/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom @@ -1,262 +1,7 @@ 5 header -grid a 16 b 16 c 16 +grid a 2 b 2 c 5 size x 1.000000 y 1.000000 z 1.000000 origin x 0.000000 y 0.000000 z 0.000000 microstructures 20 homogenization 1 - 2 2 2 4 4 4 4 1 1 15 15 15 15 15 19 19 -19 4 4 4 4 4 1 1 1 15 15 15 15 15 15 19 - 8 8 4 4 4 1 1 1 1 15 15 15 15 15 15 3 -13 8 4 4 1 1 1 1 9 15 15 15 3 3 3 3 -13 13 13 13 1 1 1 9 9 9 3 3 3 3 3 3 -13 13 13 13 13 1 1 9 9 3 3 3 3 3 3 3 -13 13 13 13 13 13 9 9 9 3 3 3 3 3 3 10 -10 13 13 13 13 13 9 9 9 3 3 3 3 3 10 10 -10 10 13 13 13 13 17 17 3 3 3 3 10 10 10 10 -10 10 10 13 2 17 17 17 17 7 7 7 7 10 10 10 -10 10 2 2 2 2 17 17 17 7 7 7 7 7 10 10 -10 2 2 2 2 2 17 17 17 7 7 7 7 7 7 10 - 2 2 2 2 2 2 2 17 17 7 7 7 7 7 7 7 - 2 2 2 2 2 2 2 17 17 7 7 7 7 7 7 7 - 2 2 2 2 2 2 2 4 17 7 7 7 7 7 7 19 - 2 2 2 2 2 4 4 4 1 15 15 15 7 19 19 19 - 8 8 8 8 4 4 4 1 9 15 15 15 15 15 19 19 - 8 8 8 8 4 4 1 1 9 9 15 15 15 15 15 8 - 8 8 8 8 8 1 1 9 9 9 9 15 15 15 3 8 - 8 8 8 8 8 1 9 9 9 9 9 3 3 3 3 13 -13 13 13 13 8 1 9 9 9 9 9 3 3 3 3 13 -13 13 13 13 13 9 9 9 9 9 9 3 3 3 3 13 -13 13 13 13 13 13 9 9 9 9 3 3 3 3 3 13 -13 13 13 13 13 13 9 9 9 9 3 3 3 3 10 10 -10 13 13 13 13 13 17 17 9 9 3 7 7 10 10 10 -10 10 13 13 13 17 17 17 17 17 7 7 7 7 10 10 -10 10 2 2 17 17 17 17 17 17 7 7 7 7 7 10 -10 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 2 2 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 2 2 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 2 2 4 4 17 15 15 7 7 7 7 19 - 8 8 8 8 8 8 8 9 9 9 9 15 15 15 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 15 15 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 3 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 3 3 8 -13 13 13 8 8 9 9 9 9 9 9 9 3 3 13 13 -13 13 13 13 13 9 9 9 9 9 9 9 3 3 13 13 -13 13 13 13 13 13 9 9 9 9 9 9 3 3 13 13 -13 13 13 13 13 13 9 9 9 9 9 3 3 3 13 13 -13 13 13 13 13 17 17 17 17 9 9 7 7 10 10 13 -13 13 13 13 17 17 17 17 17 17 7 7 7 7 10 10 -10 13 13 17 17 17 17 17 17 17 7 7 7 7 7 10 -10 2 2 2 17 17 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 17 17 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 - 2 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 - 8 8 8 8 8 8 17 17 17 17 7 7 7 7 7 8 - 8 8 8 8 8 8 8 9 9 9 9 9 9 7 8 8 - 8 8 8 8 8 8 8 9 9 9 9 9 9 9 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 -13 13 8 8 8 8 9 9 9 9 9 9 9 9 13 13 -13 13 13 13 13 9 9 9 9 9 9 9 9 3 13 13 -13 13 13 13 13 13 9 9 9 9 9 9 9 13 13 13 -13 13 13 13 13 13 9 9 9 9 9 9 9 13 13 13 -13 13 13 13 13 17 17 17 17 9 9 12 12 12 13 13 -13 13 13 13 17 17 17 17 17 17 17 7 7 7 7 13 -13 13 13 17 17 17 17 17 17 17 17 7 7 7 7 7 - 7 13 17 17 17 17 17 17 17 17 17 7 7 7 7 7 - 7 2 2 17 17 17 17 17 17 17 17 7 7 7 7 7 - 2 2 2 17 17 17 17 17 17 17 17 7 7 7 7 7 - 8 8 8 8 17 17 17 17 17 17 17 7 7 7 7 7 - 8 8 8 8 8 8 17 17 17 17 17 7 7 7 7 8 - 8 8 8 8 8 8 8 9 9 9 9 9 9 8 8 8 - 8 8 8 8 8 8 8 9 9 9 9 9 9 9 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 -13 8 8 8 8 8 9 9 9 9 9 9 9 9 13 13 -13 13 13 13 13 9 9 9 9 9 9 9 9 9 13 13 -13 13 13 13 13 13 9 9 9 9 9 9 9 13 13 13 -13 13 13 13 13 13 20 9 9 9 9 9 12 12 13 13 -13 13 13 13 13 17 17 17 17 17 12 12 12 12 12 13 -13 13 13 13 17 17 17 17 17 17 12 12 12 12 12 12 -13 13 13 17 17 17 17 17 17 17 17 12 12 12 12 12 -12 13 17 17 17 17 17 17 17 17 17 12 12 12 12 12 -12 2 17 17 17 17 17 17 17 17 17 12 12 12 12 12 -12 8 17 17 17 17 17 17 17 17 17 12 12 12 12 12 - 8 8 8 8 17 17 17 17 17 17 17 12 12 12 12 8 - 8 8 8 8 8 8 17 17 17 17 17 9 12 12 8 8 - 8 8 8 8 8 8 8 9 9 9 14 6 6 6 8 8 - 8 8 8 8 8 8 8 9 9 9 9 14 6 6 8 8 - 8 8 8 8 8 8 8 9 9 9 9 9 14 11 8 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 8 - 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 11 -13 13 13 13 8 20 20 9 9 9 9 9 9 11 11 13 -13 13 13 13 13 20 20 20 9 9 9 9 12 11 11 13 -13 13 13 13 13 20 20 20 20 9 9 12 12 12 12 13 -13 13 13 13 13 17 17 17 17 17 12 12 12 12 12 12 -13 13 13 13 17 17 17 17 17 17 12 12 12 12 12 12 -12 13 13 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 8 17 17 17 17 17 17 17 17 17 12 12 12 12 12 - 8 8 8 8 17 17 17 17 17 17 17 12 12 12 12 12 - 8 8 8 8 8 8 17 17 17 17 6 6 6 6 12 8 - 8 8 8 8 8 8 18 18 18 14 6 6 6 6 6 8 - 8 8 8 8 8 8 18 18 14 14 14 14 6 6 6 8 - 8 8 8 8 8 8 18 14 14 14 14 14 14 11 11 8 - 8 8 8 8 8 8 20 20 14 14 14 14 14 11 11 11 -11 8 8 8 8 20 20 20 20 14 14 14 14 11 11 11 -11 13 13 8 20 20 20 20 20 20 14 14 11 11 11 11 -11 13 13 13 20 20 20 20 20 20 20 14 11 11 11 11 -11 13 13 13 20 20 20 20 20 20 20 12 12 12 11 11 -13 13 13 13 20 20 20 20 20 20 12 12 12 12 12 12 -12 13 13 13 17 17 17 17 17 12 12 12 12 12 12 12 -12 12 13 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 - 8 8 8 8 17 17 17 17 17 17 6 12 12 12 12 12 - 8 8 8 8 8 18 18 18 18 6 6 6 6 6 6 8 - 8 8 8 8 18 18 18 18 18 14 6 6 6 6 6 6 - 8 8 8 8 18 18 18 18 14 14 14 6 6 6 6 11 -11 8 8 8 8 18 18 18 14 14 14 14 14 6 11 11 -11 8 8 8 8 20 20 14 14 14 14 14 14 11 11 11 -11 11 8 8 20 20 20 20 14 14 14 14 14 11 11 11 -11 11 11 20 20 20 20 20 20 14 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 20 20 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 20 20 20 12 12 11 11 11 -11 11 13 20 20 20 20 20 20 20 12 12 12 12 12 12 -12 12 13 20 20 20 20 20 20 12 12 12 12 12 12 12 -12 12 12 17 17 17 17 17 17 12 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 12 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 12 12 12 12 12 12 12 -12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 -12 8 8 8 18 18 18 18 18 6 6 6 6 6 12 12 - 8 8 8 8 18 18 18 18 18 6 6 6 6 6 6 6 - 6 8 8 18 18 18 18 18 18 6 6 6 6 6 6 6 -11 8 8 18 18 18 18 18 18 14 14 6 6 6 6 6 -11 11 8 18 18 18 18 18 14 14 14 14 6 6 11 11 -11 11 11 18 18 18 18 14 14 14 14 14 14 11 11 11 -11 11 11 20 20 20 20 20 14 14 14 14 14 11 11 11 -11 11 11 20 20 20 20 20 20 14 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 20 20 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 20 20 5 12 11 11 11 11 -11 11 11 20 20 20 20 20 20 5 5 12 12 12 12 11 -12 11 11 20 20 20 20 20 5 5 12 12 12 12 12 12 -12 12 12 20 20 20 20 5 5 5 12 12 12 12 12 12 -12 12 12 17 17 17 17 17 5 12 12 12 12 12 12 12 -12 12 12 17 17 17 17 17 17 12 12 12 12 12 12 12 -12 19 19 18 18 18 18 18 18 6 6 12 12 12 12 12 -19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 - 6 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 -19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 -11 11 18 18 18 18 18 18 18 14 6 6 6 6 6 6 -11 11 18 18 18 18 18 18 14 14 14 14 6 6 11 11 -11 11 11 18 18 18 18 18 14 14 14 14 14 11 11 11 -11 11 11 20 20 20 20 20 14 14 14 14 14 11 11 11 -11 11 11 20 20 20 20 20 20 14 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 20 5 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 5 5 5 5 11 11 11 11 -11 11 11 20 20 20 20 5 5 5 5 5 12 12 11 11 -11 11 11 20 20 20 5 5 5 5 5 12 12 12 12 12 -12 12 12 20 20 5 5 5 5 5 5 12 12 12 12 12 -12 12 19 2 5 5 5 5 5 5 12 12 12 12 12 12 -19 19 19 2 18 18 5 5 5 5 12 12 12 12 12 12 -19 19 19 18 18 18 18 18 18 6 6 6 6 6 19 19 -19 19 19 18 18 18 18 18 18 6 6 6 6 6 6 19 -19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 -19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 19 -19 19 18 18 18 18 18 18 18 16 6 6 6 6 6 6 -11 11 18 18 18 18 18 18 18 14 14 6 6 6 6 11 -11 11 11 18 18 18 18 18 14 14 14 14 14 11 11 11 -11 11 11 18 18 18 18 14 14 14 14 14 14 11 11 11 -11 11 11 20 20 20 20 20 14 14 14 14 11 11 11 11 -11 11 11 20 20 20 20 20 5 5 5 5 11 11 11 11 -11 11 11 20 20 20 20 5 5 5 5 5 11 11 11 11 -11 11 11 20 20 20 5 5 5 5 5 5 5 11 11 11 -11 11 11 20 20 5 5 5 5 5 5 5 12 12 12 11 -12 10 2 2 5 5 5 5 5 5 5 5 12 12 12 12 -19 19 2 2 2 5 5 5 5 5 5 12 12 12 12 19 -19 19 2 2 2 5 5 5 5 5 5 12 12 19 19 19 -19 19 19 2 18 18 18 18 18 6 6 6 6 19 19 19 -19 19 19 18 18 18 18 18 18 6 6 6 6 6 19 19 -19 19 19 18 18 18 18 18 18 6 6 6 6 6 6 19 -19 19 4 4 18 18 18 18 18 16 6 6 6 6 19 19 -19 19 4 4 18 18 18 18 18 16 16 6 6 6 6 19 -11 4 4 4 18 18 18 18 16 16 16 16 6 6 6 11 -11 11 4 4 1 18 18 18 16 16 16 16 16 11 11 11 -11 11 11 1 1 1 18 18 16 16 16 16 16 11 11 11 -11 11 11 1 20 20 20 5 5 14 14 14 11 11 11 11 -11 11 11 20 20 20 5 5 5 5 5 5 11 11 11 11 -11 11 11 20 20 5 5 5 5 5 5 5 5 11 11 11 -11 11 11 20 5 5 5 5 5 5 5 5 5 11 11 11 -10 10 10 2 5 5 5 5 5 5 5 5 5 10 10 10 -10 10 2 2 5 5 5 5 5 5 5 5 5 10 10 10 -19 19 2 2 2 5 5 5 5 5 5 5 19 19 19 19 -19 19 2 2 2 2 5 5 5 5 5 6 19 19 19 19 -19 19 2 2 2 2 18 18 18 6 6 6 19 19 19 19 -19 19 2 2 2 18 18 18 18 6 6 6 6 19 19 19 -19 19 19 4 18 18 18 18 18 6 6 6 6 6 19 19 -19 19 4 4 4 4 18 18 16 16 16 6 6 19 19 19 -19 19 4 4 4 4 1 18 16 16 16 16 6 6 19 19 -19 4 4 4 4 1 1 1 16 16 16 16 15 15 6 19 -11 4 4 4 1 1 1 1 16 16 16 16 15 15 11 11 -11 11 4 1 1 1 1 1 16 16 16 16 15 3 11 11 -11 11 11 1 1 1 1 5 16 16 16 3 3 3 11 11 -11 11 11 1 1 5 5 5 5 5 5 3 3 3 11 11 -10 10 10 20 5 5 5 5 5 5 5 5 3 3 10 10 -10 10 10 10 5 5 5 5 5 5 5 5 5 10 10 10 -10 10 10 2 5 5 5 5 5 5 5 5 10 10 10 10 -10 10 2 2 2 5 5 5 5 5 5 5 10 10 10 10 -19 2 2 2 2 2 5 5 5 5 5 5 7 19 19 19 -19 2 2 2 2 2 2 5 5 5 5 7 19 19 19 19 -19 19 2 2 2 2 2 18 18 6 6 19 19 19 19 19 -19 19 2 2 2 4 18 18 18 6 6 6 19 19 19 19 -19 19 2 4 4 4 18 18 18 16 6 6 6 19 19 19 -19 19 4 4 4 4 4 1 16 16 15 15 15 19 19 19 -19 4 4 4 4 4 1 1 16 16 15 15 15 15 19 19 -19 4 4 4 4 1 1 1 16 16 15 15 15 15 15 19 - 4 4 4 4 1 1 1 1 16 16 15 15 15 15 15 3 -11 4 4 1 1 1 1 1 16 16 15 15 3 3 3 3 -11 11 1 1 1 1 1 1 16 3 3 3 3 3 3 3 -10 10 10 1 1 1 5 5 5 5 3 3 3 3 3 10 -10 10 10 10 5 5 5 5 5 5 5 3 3 3 10 10 -10 10 10 10 5 5 5 5 5 5 5 5 10 10 10 10 -10 10 10 2 2 5 5 5 5 5 5 5 10 10 10 10 -10 10 2 2 2 2 5 5 5 5 5 7 7 10 10 10 -10 2 2 2 2 2 2 5 5 5 7 7 7 7 10 10 -19 2 2 2 2 2 2 5 5 5 7 7 7 19 19 19 -19 2 2 2 2 2 2 2 5 7 7 7 19 19 19 19 -19 2 2 2 2 2 4 4 16 16 6 19 19 19 19 19 -19 19 2 2 4 4 4 4 16 16 15 15 19 19 19 19 -19 2 4 4 4 4 4 1 1 15 15 15 15 19 19 19 -19 4 4 4 4 4 1 1 1 15 15 15 15 15 19 19 -19 4 4 4 4 1 1 1 1 15 15 15 15 15 15 19 - 4 4 4 4 1 1 1 1 1 15 15 15 15 15 3 3 - 3 4 4 1 1 1 1 1 1 15 15 3 3 3 3 3 -10 10 1 1 1 1 1 1 3 3 3 3 3 3 3 3 -10 10 10 1 1 1 1 5 3 3 3 3 3 3 3 10 -10 10 10 10 1 5 5 5 5 3 3 3 3 3 10 10 -10 10 10 10 2 5 5 5 5 5 3 3 10 10 10 10 -10 10 10 2 2 2 5 5 5 5 5 7 10 10 10 10 -10 10 2 2 2 2 5 5 5 5 7 7 7 10 10 10 -10 2 2 2 2 2 2 5 5 7 7 7 7 7 10 10 - 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 19 -19 2 2 2 2 2 2 2 7 7 7 7 7 19 19 19 -19 2 2 2 2 2 4 4 4 15 15 7 19 19 19 19 -19 2 2 2 4 4 4 4 1 15 15 15 19 19 19 19 -19 2 2 4 4 4 4 1 1 15 15 15 15 19 19 19 -19 4 4 4 4 4 1 1 1 15 15 15 15 15 19 19 -19 4 4 4 4 1 1 1 1 15 15 15 15 15 15 19 - 3 4 4 4 1 1 1 1 1 15 15 15 15 3 3 3 -13 13 4 1 1 1 1 1 1 15 3 3 3 3 3 3 -13 13 13 1 1 1 1 1 3 3 3 3 3 3 3 3 -10 13 13 13 1 1 1 1 3 3 3 3 3 3 3 10 -10 10 13 13 13 1 5 5 3 3 3 3 3 3 10 10 -10 10 10 13 13 13 5 5 5 3 3 3 10 10 10 10 -10 10 10 2 2 2 5 5 5 7 7 7 7 10 10 10 -10 10 2 2 2 2 2 5 5 7 7 7 7 7 10 10 -10 2 2 2 2 2 2 17 7 7 7 7 7 7 7 10 - 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 7 - 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 19 - 2 2 2 2 2 2 2 4 4 15 7 7 7 19 19 19 -19 2 2 2 2 4 4 4 1 15 15 15 19 19 19 19 +1 to 20 diff --git a/examples/SpectralMethod/Polycrystal/tensionX.load b/examples/SpectralMethod/Polycrystal/tensionX.load index b0af80ea8..4e625e996 100644 --- a/examples/SpectralMethod/Polycrystal/tensionX.load +++ b/examples/SpectralMethod/Polycrystal/tensionX.load @@ -1,2 +1 @@ -fdot 1.0e-3 0 0 0 * 0 0 0 * stress * * * * 0 * * * 0 time 10 incs 40 freq 4 -fdot 1.0e-3 0 0 0 * 0 0 0 * stress * * * * 0 * * * 0 time 60 incs 60 +fdot 1.0e-3 0 0 0 * 0 0 0 * stress * * * * 0 * * * 0 time 0.001 incs 1 diff --git a/src/material.f90 b/src/material.f90 index 22b9d0677..cc7dcbf05 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -833,7 +833,6 @@ character(len=65536) function material_parseMicrostructure(fileUnit) do m=1_pInt, material_Nmicrostructure call microstructureConfig(m)%getRaws('(constituent)',str,chunkPoss) do constituent = 1_pInt, size(str) - print*, trim(str(constituent)) do i = 2_pInt,6_pInt,2_pInt tag = IO_lc(IO_stringValue(str(constituent),chunkPoss(:,constituent),i)) From b412aded7554d1d624716c1de29b20ccd87ce85c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 2 Jun 2018 14:15:34 +0200 Subject: [PATCH 2/5] fix for previous commit, should not be changed at all --- .../Polycrystal/20grains16x16x16.geom | 259 +++++++++++++++++- .../SpectralMethod/Polycrystal/tensionX.load | 3 +- 2 files changed, 259 insertions(+), 3 deletions(-) diff --git a/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom b/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom index 46926dc1f..23fe46f8e 100644 --- a/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom +++ b/examples/SpectralMethod/Polycrystal/20grains16x16x16.geom @@ -1,7 +1,262 @@ 5 header -grid a 2 b 2 c 5 +grid a 16 b 16 c 16 size x 1.000000 y 1.000000 z 1.000000 origin x 0.000000 y 0.000000 z 0.000000 microstructures 20 homogenization 1 -1 to 20 + 2 2 2 4 4 4 4 1 1 15 15 15 15 15 19 19 +19 4 4 4 4 4 1 1 1 15 15 15 15 15 15 19 + 8 8 4 4 4 1 1 1 1 15 15 15 15 15 15 3 +13 8 4 4 1 1 1 1 9 15 15 15 3 3 3 3 +13 13 13 13 1 1 1 9 9 9 3 3 3 3 3 3 +13 13 13 13 13 1 1 9 9 3 3 3 3 3 3 3 +13 13 13 13 13 13 9 9 9 3 3 3 3 3 3 10 +10 13 13 13 13 13 9 9 9 3 3 3 3 3 10 10 +10 10 13 13 13 13 17 17 3 3 3 3 10 10 10 10 +10 10 10 13 2 17 17 17 17 7 7 7 7 10 10 10 +10 10 2 2 2 2 17 17 17 7 7 7 7 7 10 10 +10 2 2 2 2 2 17 17 17 7 7 7 7 7 7 10 + 2 2 2 2 2 2 2 17 17 7 7 7 7 7 7 7 + 2 2 2 2 2 2 2 17 17 7 7 7 7 7 7 7 + 2 2 2 2 2 2 2 4 17 7 7 7 7 7 7 19 + 2 2 2 2 2 4 4 4 1 15 15 15 7 19 19 19 + 8 8 8 8 4 4 4 1 9 15 15 15 15 15 19 19 + 8 8 8 8 4 4 1 1 9 9 15 15 15 15 15 8 + 8 8 8 8 8 1 1 9 9 9 9 15 15 15 3 8 + 8 8 8 8 8 1 9 9 9 9 9 3 3 3 3 13 +13 13 13 13 8 1 9 9 9 9 9 3 3 3 3 13 +13 13 13 13 13 9 9 9 9 9 9 3 3 3 3 13 +13 13 13 13 13 13 9 9 9 9 3 3 3 3 3 13 +13 13 13 13 13 13 9 9 9 9 3 3 3 3 10 10 +10 13 13 13 13 13 17 17 9 9 3 7 7 10 10 10 +10 10 13 13 13 17 17 17 17 17 7 7 7 7 10 10 +10 10 2 2 17 17 17 17 17 17 7 7 7 7 7 10 +10 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 2 2 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 2 2 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 2 2 4 4 17 15 15 7 7 7 7 19 + 8 8 8 8 8 8 8 9 9 9 9 15 15 15 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 15 15 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 3 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 3 3 8 +13 13 13 8 8 9 9 9 9 9 9 9 3 3 13 13 +13 13 13 13 13 9 9 9 9 9 9 9 3 3 13 13 +13 13 13 13 13 13 9 9 9 9 9 9 3 3 13 13 +13 13 13 13 13 13 9 9 9 9 9 3 3 3 13 13 +13 13 13 13 13 17 17 17 17 9 9 7 7 10 10 13 +13 13 13 13 17 17 17 17 17 17 7 7 7 7 10 10 +10 13 13 17 17 17 17 17 17 17 7 7 7 7 7 10 +10 2 2 2 17 17 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 17 17 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 + 2 2 2 2 2 17 17 17 17 17 7 7 7 7 7 7 + 8 8 8 8 8 8 17 17 17 17 7 7 7 7 7 8 + 8 8 8 8 8 8 8 9 9 9 9 9 9 7 8 8 + 8 8 8 8 8 8 8 9 9 9 9 9 9 9 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 +13 13 8 8 8 8 9 9 9 9 9 9 9 9 13 13 +13 13 13 13 13 9 9 9 9 9 9 9 9 3 13 13 +13 13 13 13 13 13 9 9 9 9 9 9 9 13 13 13 +13 13 13 13 13 13 9 9 9 9 9 9 9 13 13 13 +13 13 13 13 13 17 17 17 17 9 9 12 12 12 13 13 +13 13 13 13 17 17 17 17 17 17 17 7 7 7 7 13 +13 13 13 17 17 17 17 17 17 17 17 7 7 7 7 7 + 7 13 17 17 17 17 17 17 17 17 17 7 7 7 7 7 + 7 2 2 17 17 17 17 17 17 17 17 7 7 7 7 7 + 2 2 2 17 17 17 17 17 17 17 17 7 7 7 7 7 + 8 8 8 8 17 17 17 17 17 17 17 7 7 7 7 7 + 8 8 8 8 8 8 17 17 17 17 17 7 7 7 7 8 + 8 8 8 8 8 8 8 9 9 9 9 9 9 8 8 8 + 8 8 8 8 8 8 8 9 9 9 9 9 9 9 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 9 8 8 +13 8 8 8 8 8 9 9 9 9 9 9 9 9 13 13 +13 13 13 13 13 9 9 9 9 9 9 9 9 9 13 13 +13 13 13 13 13 13 9 9 9 9 9 9 9 13 13 13 +13 13 13 13 13 13 20 9 9 9 9 9 12 12 13 13 +13 13 13 13 13 17 17 17 17 17 12 12 12 12 12 13 +13 13 13 13 17 17 17 17 17 17 12 12 12 12 12 12 +13 13 13 17 17 17 17 17 17 17 17 12 12 12 12 12 +12 13 17 17 17 17 17 17 17 17 17 12 12 12 12 12 +12 2 17 17 17 17 17 17 17 17 17 12 12 12 12 12 +12 8 17 17 17 17 17 17 17 17 17 12 12 12 12 12 + 8 8 8 8 17 17 17 17 17 17 17 12 12 12 12 8 + 8 8 8 8 8 8 17 17 17 17 17 9 12 12 8 8 + 8 8 8 8 8 8 8 9 9 9 14 6 6 6 8 8 + 8 8 8 8 8 8 8 9 9 9 9 14 6 6 8 8 + 8 8 8 8 8 8 8 9 9 9 9 9 14 11 8 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 8 + 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 11 +13 13 13 13 8 20 20 9 9 9 9 9 9 11 11 13 +13 13 13 13 13 20 20 20 9 9 9 9 12 11 11 13 +13 13 13 13 13 20 20 20 20 9 9 12 12 12 12 13 +13 13 13 13 13 17 17 17 17 17 12 12 12 12 12 12 +13 13 13 13 17 17 17 17 17 17 12 12 12 12 12 12 +12 13 13 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 8 17 17 17 17 17 17 17 17 17 12 12 12 12 12 + 8 8 8 8 17 17 17 17 17 17 17 12 12 12 12 12 + 8 8 8 8 8 8 17 17 17 17 6 6 6 6 12 8 + 8 8 8 8 8 8 18 18 18 14 6 6 6 6 6 8 + 8 8 8 8 8 8 18 18 14 14 14 14 6 6 6 8 + 8 8 8 8 8 8 18 14 14 14 14 14 14 11 11 8 + 8 8 8 8 8 8 20 20 14 14 14 14 14 11 11 11 +11 8 8 8 8 20 20 20 20 14 14 14 14 11 11 11 +11 13 13 8 20 20 20 20 20 20 14 14 11 11 11 11 +11 13 13 13 20 20 20 20 20 20 20 14 11 11 11 11 +11 13 13 13 20 20 20 20 20 20 20 12 12 12 11 11 +13 13 13 13 20 20 20 20 20 20 12 12 12 12 12 12 +12 13 13 13 17 17 17 17 17 12 12 12 12 12 12 12 +12 12 13 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 + 8 8 8 8 17 17 17 17 17 17 6 12 12 12 12 12 + 8 8 8 8 8 18 18 18 18 6 6 6 6 6 6 8 + 8 8 8 8 18 18 18 18 18 14 6 6 6 6 6 6 + 8 8 8 8 18 18 18 18 14 14 14 6 6 6 6 11 +11 8 8 8 8 18 18 18 14 14 14 14 14 6 11 11 +11 8 8 8 8 20 20 14 14 14 14 14 14 11 11 11 +11 11 8 8 20 20 20 20 14 14 14 14 14 11 11 11 +11 11 11 20 20 20 20 20 20 14 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 20 20 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 20 20 20 12 12 11 11 11 +11 11 13 20 20 20 20 20 20 20 12 12 12 12 12 12 +12 12 13 20 20 20 20 20 20 12 12 12 12 12 12 12 +12 12 12 17 17 17 17 17 17 12 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 12 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 12 12 12 12 12 12 12 +12 12 17 17 17 17 17 17 17 17 12 12 12 12 12 12 +12 8 8 8 18 18 18 18 18 6 6 6 6 6 12 12 + 8 8 8 8 18 18 18 18 18 6 6 6 6 6 6 6 + 6 8 8 18 18 18 18 18 18 6 6 6 6 6 6 6 +11 8 8 18 18 18 18 18 18 14 14 6 6 6 6 6 +11 11 8 18 18 18 18 18 14 14 14 14 6 6 11 11 +11 11 11 18 18 18 18 14 14 14 14 14 14 11 11 11 +11 11 11 20 20 20 20 20 14 14 14 14 14 11 11 11 +11 11 11 20 20 20 20 20 20 14 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 20 20 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 20 20 5 12 11 11 11 11 +11 11 11 20 20 20 20 20 20 5 5 12 12 12 12 11 +12 11 11 20 20 20 20 20 5 5 12 12 12 12 12 12 +12 12 12 20 20 20 20 5 5 5 12 12 12 12 12 12 +12 12 12 17 17 17 17 17 5 12 12 12 12 12 12 12 +12 12 12 17 17 17 17 17 17 12 12 12 12 12 12 12 +12 19 19 18 18 18 18 18 18 6 6 12 12 12 12 12 +19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 + 6 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 +19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 +11 11 18 18 18 18 18 18 18 14 6 6 6 6 6 6 +11 11 18 18 18 18 18 18 14 14 14 14 6 6 11 11 +11 11 11 18 18 18 18 18 14 14 14 14 14 11 11 11 +11 11 11 20 20 20 20 20 14 14 14 14 14 11 11 11 +11 11 11 20 20 20 20 20 20 14 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 20 5 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 5 5 5 5 11 11 11 11 +11 11 11 20 20 20 20 5 5 5 5 5 12 12 11 11 +11 11 11 20 20 20 5 5 5 5 5 12 12 12 12 12 +12 12 12 20 20 5 5 5 5 5 5 12 12 12 12 12 +12 12 19 2 5 5 5 5 5 5 12 12 12 12 12 12 +19 19 19 2 18 18 5 5 5 5 12 12 12 12 12 12 +19 19 19 18 18 18 18 18 18 6 6 6 6 6 19 19 +19 19 19 18 18 18 18 18 18 6 6 6 6 6 6 19 +19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 6 +19 19 18 18 18 18 18 18 18 6 6 6 6 6 6 19 +19 19 18 18 18 18 18 18 18 16 6 6 6 6 6 6 +11 11 18 18 18 18 18 18 18 14 14 6 6 6 6 11 +11 11 11 18 18 18 18 18 14 14 14 14 14 11 11 11 +11 11 11 18 18 18 18 14 14 14 14 14 14 11 11 11 +11 11 11 20 20 20 20 20 14 14 14 14 11 11 11 11 +11 11 11 20 20 20 20 20 5 5 5 5 11 11 11 11 +11 11 11 20 20 20 20 5 5 5 5 5 11 11 11 11 +11 11 11 20 20 20 5 5 5 5 5 5 5 11 11 11 +11 11 11 20 20 5 5 5 5 5 5 5 12 12 12 11 +12 10 2 2 5 5 5 5 5 5 5 5 12 12 12 12 +19 19 2 2 2 5 5 5 5 5 5 12 12 12 12 19 +19 19 2 2 2 5 5 5 5 5 5 12 12 19 19 19 +19 19 19 2 18 18 18 18 18 6 6 6 6 19 19 19 +19 19 19 18 18 18 18 18 18 6 6 6 6 6 19 19 +19 19 19 18 18 18 18 18 18 6 6 6 6 6 6 19 +19 19 4 4 18 18 18 18 18 16 6 6 6 6 19 19 +19 19 4 4 18 18 18 18 18 16 16 6 6 6 6 19 +11 4 4 4 18 18 18 18 16 16 16 16 6 6 6 11 +11 11 4 4 1 18 18 18 16 16 16 16 16 11 11 11 +11 11 11 1 1 1 18 18 16 16 16 16 16 11 11 11 +11 11 11 1 20 20 20 5 5 14 14 14 11 11 11 11 +11 11 11 20 20 20 5 5 5 5 5 5 11 11 11 11 +11 11 11 20 20 5 5 5 5 5 5 5 5 11 11 11 +11 11 11 20 5 5 5 5 5 5 5 5 5 11 11 11 +10 10 10 2 5 5 5 5 5 5 5 5 5 10 10 10 +10 10 2 2 5 5 5 5 5 5 5 5 5 10 10 10 +19 19 2 2 2 5 5 5 5 5 5 5 19 19 19 19 +19 19 2 2 2 2 5 5 5 5 5 6 19 19 19 19 +19 19 2 2 2 2 18 18 18 6 6 6 19 19 19 19 +19 19 2 2 2 18 18 18 18 6 6 6 6 19 19 19 +19 19 19 4 18 18 18 18 18 6 6 6 6 6 19 19 +19 19 4 4 4 4 18 18 16 16 16 6 6 19 19 19 +19 19 4 4 4 4 1 18 16 16 16 16 6 6 19 19 +19 4 4 4 4 1 1 1 16 16 16 16 15 15 6 19 +11 4 4 4 1 1 1 1 16 16 16 16 15 15 11 11 +11 11 4 1 1 1 1 1 16 16 16 16 15 3 11 11 +11 11 11 1 1 1 1 5 16 16 16 3 3 3 11 11 +11 11 11 1 1 5 5 5 5 5 5 3 3 3 11 11 +10 10 10 20 5 5 5 5 5 5 5 5 3 3 10 10 +10 10 10 10 5 5 5 5 5 5 5 5 5 10 10 10 +10 10 10 2 5 5 5 5 5 5 5 5 10 10 10 10 +10 10 2 2 2 5 5 5 5 5 5 5 10 10 10 10 +19 2 2 2 2 2 5 5 5 5 5 5 7 19 19 19 +19 2 2 2 2 2 2 5 5 5 5 7 19 19 19 19 +19 19 2 2 2 2 2 18 18 6 6 19 19 19 19 19 +19 19 2 2 2 4 18 18 18 6 6 6 19 19 19 19 +19 19 2 4 4 4 18 18 18 16 6 6 6 19 19 19 +19 19 4 4 4 4 4 1 16 16 15 15 15 19 19 19 +19 4 4 4 4 4 1 1 16 16 15 15 15 15 19 19 +19 4 4 4 4 1 1 1 16 16 15 15 15 15 15 19 + 4 4 4 4 1 1 1 1 16 16 15 15 15 15 15 3 +11 4 4 1 1 1 1 1 16 16 15 15 3 3 3 3 +11 11 1 1 1 1 1 1 16 3 3 3 3 3 3 3 +10 10 10 1 1 1 5 5 5 5 3 3 3 3 3 10 +10 10 10 10 5 5 5 5 5 5 5 3 3 3 10 10 +10 10 10 10 5 5 5 5 5 5 5 5 10 10 10 10 +10 10 10 2 2 5 5 5 5 5 5 5 10 10 10 10 +10 10 2 2 2 2 5 5 5 5 5 7 7 10 10 10 +10 2 2 2 2 2 2 5 5 5 7 7 7 7 10 10 +19 2 2 2 2 2 2 5 5 5 7 7 7 19 19 19 +19 2 2 2 2 2 2 2 5 7 7 7 19 19 19 19 +19 2 2 2 2 2 4 4 16 16 6 19 19 19 19 19 +19 19 2 2 4 4 4 4 16 16 15 15 19 19 19 19 +19 2 4 4 4 4 4 1 1 15 15 15 15 19 19 19 +19 4 4 4 4 4 1 1 1 15 15 15 15 15 19 19 +19 4 4 4 4 1 1 1 1 15 15 15 15 15 15 19 + 4 4 4 4 1 1 1 1 1 15 15 15 15 15 3 3 + 3 4 4 1 1 1 1 1 1 15 15 3 3 3 3 3 +10 10 1 1 1 1 1 1 3 3 3 3 3 3 3 3 +10 10 10 1 1 1 1 5 3 3 3 3 3 3 3 10 +10 10 10 10 1 5 5 5 5 3 3 3 3 3 10 10 +10 10 10 10 2 5 5 5 5 5 3 3 10 10 10 10 +10 10 10 2 2 2 5 5 5 5 5 7 10 10 10 10 +10 10 2 2 2 2 5 5 5 5 7 7 7 10 10 10 +10 2 2 2 2 2 2 5 5 7 7 7 7 7 10 10 + 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 19 +19 2 2 2 2 2 2 2 7 7 7 7 7 19 19 19 +19 2 2 2 2 2 4 4 4 15 15 7 19 19 19 19 +19 2 2 2 4 4 4 4 1 15 15 15 19 19 19 19 +19 2 2 4 4 4 4 1 1 15 15 15 15 19 19 19 +19 4 4 4 4 4 1 1 1 15 15 15 15 15 19 19 +19 4 4 4 4 1 1 1 1 15 15 15 15 15 15 19 + 3 4 4 4 1 1 1 1 1 15 15 15 15 3 3 3 +13 13 4 1 1 1 1 1 1 15 3 3 3 3 3 3 +13 13 13 1 1 1 1 1 3 3 3 3 3 3 3 3 +10 13 13 13 1 1 1 1 3 3 3 3 3 3 3 10 +10 10 13 13 13 1 5 5 3 3 3 3 3 3 10 10 +10 10 10 13 13 13 5 5 5 3 3 3 10 10 10 10 +10 10 10 2 2 2 5 5 5 7 7 7 7 10 10 10 +10 10 2 2 2 2 2 5 5 7 7 7 7 7 10 10 +10 2 2 2 2 2 2 17 7 7 7 7 7 7 7 10 + 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 7 + 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 19 + 2 2 2 2 2 2 2 4 4 15 7 7 7 19 19 19 +19 2 2 2 2 4 4 4 1 15 15 15 19 19 19 19 diff --git a/examples/SpectralMethod/Polycrystal/tensionX.load b/examples/SpectralMethod/Polycrystal/tensionX.load index 4e625e996..b0af80ea8 100644 --- a/examples/SpectralMethod/Polycrystal/tensionX.load +++ b/examples/SpectralMethod/Polycrystal/tensionX.load @@ -1 +1,2 @@ -fdot 1.0e-3 0 0 0 * 0 0 0 * stress * * * * 0 * * * 0 time 0.001 incs 1 +fdot 1.0e-3 0 0 0 * 0 0 0 * stress * * * * 0 * * * 0 time 10 incs 40 freq 4 +fdot 1.0e-3 0 0 0 * 0 0 0 * stress * * * * 0 * * * 0 time 60 incs 60 From c2d30aec4322baa0ca58b2103ca202749b3a7300 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 2 Jun 2018 19:24:53 +0200 Subject: [PATCH 3/5] gfortran has issues with zero-sized string arrays: --- src/list.f90 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/list.f90 b/src/list.f90 index e4ff83f1d..973e21dc2 100644 --- a/src/list.f90 +++ b/src/list.f90 @@ -405,7 +405,6 @@ end function getFloatArray type(tPartitionedStringList), pointer :: tmp integer(pInt) :: i - allocate(getStrings(0)) tmp => this%next do @@ -413,7 +412,12 @@ end function getFloatArray if (trim(IO_stringValue(tmp%string%val,tmp%string%pos,1))==trim(key)) then if (tmp%string%pos(1) < 2) print*, "NOT WORKKING" str = IO_StringValue(tmp%string%val,tmp%string%pos,2) - getStrings = [getStrings,str] + + GfortranBug86033: if (.not. allocated(getStrings)) then + allocate(getStrings(1),source=str) + else GfortranBug86033 + getStrings = [getStrings,str] + endif GfortranBug86033 endif tmp => tmp%next end do From 4fd2338d357b184cea8d5c70dc7550208b2994f5 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 2 Jun 2018 19:27:03 +0200 Subject: [PATCH 4/5] added parsing of homogenization and workaround for gfortran --- src/material.f90 | 317 ++++++++++++++++++++++++++--------------------- 1 file changed, 173 insertions(+), 144 deletions(-) diff --git a/src/material.f90 b/src/material.f90 index cc7dcbf05..54085b7ca 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -173,6 +173,7 @@ module material integer(kind(HOMOGENIZATION_undefined_ID)), dimension(:), allocatable, public, protected :: & homogenization_type !< type of each homogenization +!ToDo: should be private character(len=64), dimension(:), allocatable, public, protected :: & phase_name, & !< name of each phase @@ -308,6 +309,7 @@ module material type(tPartitionedStringList), public,protected, allocatable, dimension(:) :: & phaseConfig, & microstructureConfig, & + homogenizationConfig, & crystalliteConfig public :: & @@ -439,14 +441,17 @@ subroutine material_init() line = material_parseCrystallite(FILEUNIT) if (iand(myDebug,debug_levelBasic) /= 0_pInt) write(6,'(a)') ' Crystallite parsed'; flush(6) + case (trim(material_partHomogenization)) + line = material_parseHomogenization(FILEUNIT) + if (iand(myDebug,debug_levelBasic) /= 0_pInt) write(6,'(a)') ' Homogenization parsed'; flush(6) + case default line = IO_read(fileUnit) + end select enddo - call material_parseHomogenization(FILEUNIT,material_partHomogenization) - if (iand(myDebug,debug_levelBasic) /= 0_pInt) write(6,'(a)') ' Homogenization parsed'; flush(6) call material_parseTexture(FILEUNIT,material_partTexture) if (iand(myDebug,debug_levelBasic) /= 0_pInt) write(6,'(a)') ' Texture parsed'; flush(6) close(FILEUNIT) @@ -559,14 +564,14 @@ subroutine material_init() allocate(vacancyConcRate (myHomog)%p(1), source=0.0_pReal) allocate(hydrogenConcRate(myHomog)%p(1), source=0.0_pReal) enddo - + end subroutine material_init !-------------------------------------------------------------------------------------------------- !> @brief parses the homogenization part in the material configuration file !-------------------------------------------------------------------------------------------------- -subroutine material_parseHomogenization(fileUnit,myPart) +character(len=65536) function material_parseHomogenization(fileUnit) use IO, only: & IO_read, & IO_globalTagInPart, & @@ -585,174 +590,183 @@ subroutine material_parseHomogenization(fileUnit,myPart) mesh_element implicit none - character(len=*), intent(in) :: myPart integer(pInt), intent(in) :: fileUnit integer(pInt), allocatable, dimension(:) :: chunkPos - integer(pInt) :: Nsections, section, s, p - character(len=65536) :: & - tag, line + integer(pInt) :: Nsections, h + character(len=65536) :: line, tag,devNull + character(len=64) :: tag2 logical :: echo + + allocate(homogenizationConfig(0)) - echo = IO_globalTagInPart(fileUnit,myPart,'/echo/') - Nsections = IO_countSections(fileUnit,myPart) - material_Nhomogenization = Nsections - if (Nsections < 1_pInt) call IO_error(160_pInt,ext_msg=myPart) - - allocate(homogenization_name(Nsections)); homogenization_name = '' - allocate(homogenization_type(Nsections), source=HOMOGENIZATION_undefined_ID) - allocate(thermal_type(Nsections), source=THERMAL_isothermal_ID) - allocate(damage_type (Nsections), source=DAMAGE_none_ID) - allocate(vacancyflux_type(Nsections), source=VACANCYFLUX_isoconc_ID) - allocate(porosity_type (Nsections), source=POROSITY_none_ID) - allocate(hydrogenflux_type(Nsections), source=HYDROGENFLUX_isoconc_ID) - allocate(homogenization_typeInstance(Nsections), source=0_pInt) - allocate(thermal_typeInstance(Nsections), source=0_pInt) - allocate(damage_typeInstance(Nsections), source=0_pInt) - allocate(vacancyflux_typeInstance(Nsections), source=0_pInt) - allocate(porosity_typeInstance(Nsections), source=0_pInt) - allocate(hydrogenflux_typeInstance(Nsections), source=0_pInt) - allocate(homogenization_Ngrains(Nsections), source=0_pInt) - allocate(homogenization_Noutput(Nsections), source=0_pInt) - allocate(homogenization_active(Nsections), source=.false.) !!!!!!!!!!!!!!! - allocate(thermal_initialT(Nsections), source=300.0_pReal) - allocate(damage_initialPhi(Nsections), source=1.0_pReal) - allocate(vacancyflux_initialCv(Nsections), source=0.0_pReal) - allocate(porosity_initialPhi(Nsections), source=1.0_pReal) - allocate(hydrogenflux_initialCh(Nsections), source=0.0_pReal) - - forall (s = 1_pInt:Nsections) homogenization_active(s) = any(mesh_element(3,:) == s) ! current homogenization used in model? Homogenization view, maximum operations depend on maximum number of homog schemes - homogenization_Noutput = IO_countTagInPart(fileUnit,myPart,'(output)',Nsections) - - rewind(fileUnit) - line = '' ! to have it initialized - section = 0_pInt ! - " - - do while (trim(line) /= IO_EOF .and. IO_lc(IO_getTag(line,'<','>')) /= myPart) ! wind forward to - line = IO_read(fileUnit) - enddo - if (echo) write(6,'(/,1x,a)') trim(line) ! echo part header - + h = 0_pInt do while (trim(line) /= IO_EOF) ! read through sections of material part line = IO_read(fileUnit) if (IO_isBlank(line)) cycle ! skip empty lines - if (IO_getTag(line,'<','>') /= '') then ! stop at next part - line = IO_read(fileUnit, .true.) ! reset IO_read + foundNextPart: if (IO_getTag(line,'<','>') /= '') then + devNull = IO_read(fileUnit, .true.) ! reset IO_read exit - endif - if (echo) write(6,'(2x,a)') trim(line) ! echo back read lines - if (IO_getTag(line,'[',']') /= '') then ! next section - section = section + 1_pInt - homogenization_name(section) = IO_getTag(line,'[',']') - endif - if (section > 0_pInt) then + endif foundNextPart + nextSection: if (IO_getTag(line,'[',']') /= '') then + h = h + 1_pInt + homogenizationConfig = [homogenizationConfig, emptyList] + tag2 = IO_getTag(line,'[',']') + GfortranBug86033: if (.not. allocated(homogenization_name)) then + allocate(homogenization_name(1),source=tag2) + else GfortranBug86033 + homogenization_name = [homogenization_name,tag2] + endif GfortranBug86033 + endif nextSection + chunkPos = IO_stringPos(line) + tag = IO_lc(IO_stringValue(trim(line),chunkPos,1_pInt)) ! extract key + inSection: if (h > 0_pInt) then chunkPos = IO_stringPos(line) - tag = IO_lc(IO_stringValue(line,chunkPos,1_pInt)) ! extract key - select case(tag) - case ('type','mech','mechanical') - select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) + call homogenizationConfig(h)%add(IO_lc(trim(line)),chunkPos) + else inSection + echo = (trim(tag) == '/echo/') + endif inSection + enddo + + material_Nhomogenization = size(homogenizationConfig) + if (material_Nhomogenization < 1_pInt) call IO_error(160_pInt,ext_msg=material_partHomogenization) + + allocate(homogenization_type(material_Nhomogenization), source=HOMOGENIZATION_undefined_ID) + allocate(thermal_type(material_Nhomogenization), source=THERMAL_isothermal_ID) + allocate(damage_type (material_Nhomogenization), source=DAMAGE_none_ID) + allocate(vacancyflux_type(material_Nhomogenization), source=VACANCYFLUX_isoconc_ID) + allocate(porosity_type (material_Nhomogenization), source=POROSITY_none_ID) + allocate(hydrogenflux_type(material_Nhomogenization), source=HYDROGENFLUX_isoconc_ID) + allocate(homogenization_typeInstance(material_Nhomogenization), source=0_pInt) + allocate(thermal_typeInstance(material_Nhomogenization), source=0_pInt) + allocate(damage_typeInstance(material_Nhomogenization), source=0_pInt) + allocate(vacancyflux_typeInstance(material_Nhomogenization), source=0_pInt) + allocate(porosity_typeInstance(material_Nhomogenization), source=0_pInt) + allocate(hydrogenflux_typeInstance(material_Nhomogenization), source=0_pInt) + allocate(homogenization_Ngrains(material_Nhomogenization), source=0_pInt) + allocate(homogenization_Noutput(material_Nhomogenization), source=0_pInt) + allocate(homogenization_active(material_Nhomogenization), source=.false.) !!!!!!!!!!!!!!! + allocate(thermal_initialT(material_Nhomogenization), source=300.0_pReal) + allocate(damage_initialPhi(material_Nhomogenization), source=1.0_pReal) + allocate(vacancyflux_initialCv(material_Nhomogenization), source=0.0_pReal) + allocate(porosity_initialPhi(material_Nhomogenization), source=1.0_pReal) + allocate(hydrogenflux_initialCh(material_Nhomogenization), source=0.0_pReal) + + forall (h = 1_pInt:material_Nhomogenization) homogenization_active(h) = any(mesh_element(3,:) == h) + + + ! homogenization_Noutput = IO_countTagInPart(fileUnit,myPart,'(output)',Nsections) + + do h=1_pInt, material_Nhomogenization + tag = homogenizationConfig(h)%getString('mech') + + select case (trim(tag)) case(HOMOGENIZATION_NONE_label) - homogenization_type(section) = HOMOGENIZATION_NONE_ID - homogenization_Ngrains(section) = 1_pInt + homogenization_type(h) = HOMOGENIZATION_NONE_ID + homogenization_Ngrains(h) = 1_pInt case(HOMOGENIZATION_ISOSTRAIN_label) - homogenization_type(section) = HOMOGENIZATION_ISOSTRAIN_ID + homogenization_type(h) = HOMOGENIZATION_ISOSTRAIN_ID + homogenization_Ngrains(h) = homogenizationConfig(h)%getInt('nconstituents') case(HOMOGENIZATION_RGC_label) - homogenization_type(section) = HOMOGENIZATION_RGC_ID + homogenization_type(h) = HOMOGENIZATION_RGC_ID + homogenization_Ngrains(h) = homogenizationConfig(h)%getInt('nconstituents') case default - call IO_error(500_pInt,ext_msg=trim(IO_stringValue(line,chunkPos,2_pInt))) + call IO_error(500_pInt,ext_msg=trim(tag)) end select - homogenization_typeInstance(section) = & - count(homogenization_type==homogenization_type(section)) ! count instances - case ('thermal') - select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) + homogenization_typeInstance(h) = & + count(homogenization_type==homogenization_type(h)) ! count instances + if (homogenizationConfig(h)%keyExists('thermal')) then + tag = homogenizationConfig(h)%getString('thermal') + + select case (trim(tag)) case(THERMAL_isothermal_label) - thermal_type(section) = THERMAL_isothermal_ID + thermal_type(h) = THERMAL_isothermal_ID case(THERMAL_adiabatic_label) - thermal_type(section) = THERMAL_adiabatic_ID + thermal_type(h) = THERMAL_adiabatic_ID case(THERMAL_conduction_label) - thermal_type(section) = THERMAL_conduction_ID + thermal_type(h) = THERMAL_conduction_ID case default - call IO_error(500_pInt,ext_msg=trim(IO_stringValue(line,chunkPos,2_pInt))) + call IO_error(500_pInt,ext_msg=trim(tag)) end select - case ('damage') - select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) - case(DAMAGE_NONE_label) - damage_type(section) = DAMAGE_none_ID - case(DAMAGE_LOCAL_label) - damage_type(section) = DAMAGE_local_ID - case(DAMAGE_NONLOCAL_label) - damage_type(section) = DAMAGE_nonlocal_ID + tag = homogenizationConfig(h)%getString('damage') + select case (trim(tag)) +! case(DAMAGE_NONE_label) +! damage_type(section) = DAMAGE_none_ID +! case(DAMAGE_LOCAL_label) +! damage_type(section) = DAMAGE_local_ID +! case(DAMAGE_NONLOCAL_label) +! damage_type(section) = DAMAGE_nonlocal_ID case default - call IO_error(500_pInt,ext_msg=trim(IO_stringValue(line,chunkPos,2_pInt))) + call IO_error(500_pInt,ext_msg=trim(tag)) end select - - case ('vacancyflux') - select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) - case(VACANCYFLUX_isoconc_label) - vacancyflux_type(section) = VACANCYFLUX_isoconc_ID - case(VACANCYFLUX_isochempot_label) - vacancyflux_type(section) = VACANCYFLUX_isochempot_ID - case(VACANCYFLUX_cahnhilliard_label) - vacancyflux_type(section) = VACANCYFLUX_cahnhilliard_ID +! + tag = homogenizationConfig(h)%getString('vacancyflux') + select case (trim(tag)) +! case(VACANCYFLUX_isoconc_label) +! vacancyflux_type(section) = VACANCYFLUX_isoconc_ID +! case(VACANCYFLUX_isochempot_label) +! vacancyflux_type(section) = VACANCYFLUX_isochempot_ID +! case(VACANCYFLUX_cahnhilliard_label) +! vacancyflux_type(section) = VACANCYFLUX_cahnhilliard_ID case default - call IO_error(500_pInt,ext_msg=trim(IO_stringValue(line,chunkPos,2_pInt))) - end select - - case ('porosity') - select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) - case(POROSITY_NONE_label) - porosity_type(section) = POROSITY_none_ID - case(POROSITY_phasefield_label) - porosity_type(section) = POROSITY_phasefield_ID + call IO_error(500_pInt,ext_msg=trim(tag)) + end select +! + tag = homogenizationConfig(h)%getString('porosity') + select case (trim(tag)) +! case(POROSITY_NONE_label) +! porosity_type(section) = POROSITY_none_ID +! case(POROSITY_phasefield_label) +! porosity_type(section) = POROSITY_phasefield_ID case default - call IO_error(500_pInt,ext_msg=trim(IO_stringValue(line,chunkPos,2_pInt))) - end select - - case ('hydrogenflux') - select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) - case(HYDROGENFLUX_isoconc_label) - hydrogenflux_type(section) = HYDROGENFLUX_isoconc_ID - case(HYDROGENFLUX_cahnhilliard_label) - hydrogenflux_type(section) = HYDROGENFLUX_cahnhilliard_ID + call IO_error(500_pInt,ext_msg=trim(tag)) + end select +! + tag = homogenizationConfig(h)%getString('hydrogenflux') + select case (trim(tag)) +! case(HYDROGENFLUX_isoconc_label) +! hydrogenflux_type(section) = HYDROGENFLUX_isoconc_ID +! case(HYDROGENFLUX_cahnhilliard_label) +! hydrogenflux_type(section) = HYDROGENFLUX_cahnhilliard_ID case default - call IO_error(500_pInt,ext_msg=trim(IO_stringValue(line,chunkPos,2_pInt))) + call IO_error(500_pInt,ext_msg=trim(tag)) end select - - case ('nconstituents') - homogenization_Ngrains(section) = IO_intValue(line,chunkPos,2_pInt) - - case ('t0') - thermal_initialT(section) = IO_floatValue(line,chunkPos,2_pInt) - - case ('initialdamage') - damage_initialPhi(section) = IO_floatValue(line,chunkPos,2_pInt) - - case ('cv0') - vacancyflux_initialCv(section) = IO_floatValue(line,chunkPos,2_pInt) - - case ('initialporosity') - porosity_initialPhi(section) = IO_floatValue(line,chunkPos,2_pInt) - - case ('ch0') - hydrogenflux_initialCh(section) = IO_floatValue(line,chunkPos,2_pInt) - - end select endif enddo - do p=1_pInt, Nsections - homogenization_typeInstance(p) = count(homogenization_type(1:p) == homogenization_type(p)) - thermal_typeInstance(p) = count(thermal_type (1:p) == thermal_type (p)) - damage_typeInstance(p) = count(damage_type (1:p) == damage_type (p)) - vacancyflux_typeInstance(p) = count(vacancyflux_type (1:p) == vacancyflux_type (p)) - porosity_typeInstance(p) = count(porosity_type (1:p) == porosity_type (p)) - hydrogenflux_typeInstance(p) = count(hydrogenflux_type (1:p) == hydrogenflux_type (p)) +! +! case ('t0') +! thermal_initialT(section) = IO_floatValue(line,chunkPos,2_pInt) +! +! case ('initialdamage') +! damage_initialPhi(section) = IO_floatValue(line,chunkPos,2_pInt) +! +! case ('cv0') +! vacancyflux_initialCv(section) = IO_floatValue(line,chunkPos,2_pInt) +! +! +! case ('ch0') +! hydrogenflux_initialCh(section) = IO_floatValue(line,chunkPos,2_pInt) +! +! end select +! endif +! enddo + + do h=1_pInt, material_Nhomogenization + homogenization_typeInstance(h) = count(homogenization_type(1:h) == homogenization_type(h)) + thermal_typeInstance(h) = count(thermal_type (1:h) == thermal_type (h)) + damage_typeInstance(h) = count(damage_type (1:h) == damage_type (h)) + vacancyflux_typeInstance(h) = count(vacancyflux_type (1:h) == vacancyflux_type (h)) + porosity_typeInstance(h) = count(porosity_type (1:h) == porosity_type (h)) + hydrogenflux_typeInstance(h) = count(hydrogenflux_type (1:h) == hydrogenflux_type (h)) enddo homogenization_maxNgrains = maxval(homogenization_Ngrains,homogenization_active) + material_parseHomogenization=line -end subroutine material_parseHomogenization +end function material_parseHomogenization !-------------------------------------------------------------------------------------------------- @@ -769,8 +783,9 @@ character(len=65536) function material_parseMicrostructure(fileUnit) implicit none integer(pInt), intent(in) :: fileUnit - character(len=64), dimension(:), allocatable :: & + character(len=256), dimension(:), allocatable :: & str + character(len=64) :: tag2 integer(pInt), allocatable, dimension(:) :: chunkPos integer(pInt), allocatable, dimension(:,:) :: chunkPoss integer(pInt) :: e, m, constituent, i @@ -778,7 +793,6 @@ character(len=65536) function material_parseMicrostructure(fileUnit) tag,line,devNull logical :: echo - allocate(microstructure_name(0)) allocate(MicrostructureConfig(0)) line = '' ! to have it initialized m = 0_pInt @@ -794,7 +808,12 @@ character(len=65536) function material_parseMicrostructure(fileUnit) nextSection: if (IO_getTag(line,'[',']') /= '') then m = m + 1_pInt microstructureConfig = [microstructureConfig, emptyList] - microstructure_name = [microstructure_Name,IO_getTag(line,'[',']')] + tag2 = IO_getTag(line,'[',']') + GfortranBug86033: if (.not. allocated(microstructure_name)) then + allocate(microstructure_name(1),source=tag2) + else GfortranBug86033 + microstructure_name = [microstructure_name,tag2] + endif GfortranBug86033 endif nextSection chunkPos = IO_stringPos(line) tag = IO_lc(IO_stringValue(trim(line),chunkPos,1_pInt)) ! extract key @@ -878,11 +897,11 @@ character(len=65536) function material_parseCrystallite(fileUnit) integer(pInt), intent(in) :: fileUnit integer(pInt), allocatable, dimension(:) :: chunkPos + character(len=64) :: tag2 integer(pInt) :: c character(len=65536) :: line, tag,devNull logical :: echo - allocate(crystallite_name(0)) allocate(crystalliteConfig(0)) c = 0_pInt do while (trim(line) /= IO_EOF) ! read through sections of material part @@ -895,7 +914,12 @@ character(len=65536) function material_parseCrystallite(fileUnit) nextSection: if (IO_getTag(line,'[',']') /= '') then c = c + 1_pInt crystalliteConfig = [crystalliteConfig, emptyList] - crystallite_name = [crystallite_name,IO_getTag(line,'[',']')] + tag2 = IO_getTag(line,'[',']') + GfortranBug86033: if (.not. allocated(crystallite_name)) then + allocate(crystallite_name(1),source=tag2) + else GfortranBug86033 + crystallite_name = [crystallite_name,tag2] + endif GfortranBug86033 endif nextSection chunkPos = IO_stringPos(line) tag = IO_lc(IO_stringValue(trim(line),chunkPos,1_pInt)) ! extract key @@ -947,11 +971,11 @@ character(len=65536) function material_parsePhase(fileUnit) integer(pInt) :: sourceCtr, kinematicsCtr, stiffDegradationCtr, p character(len=65536) :: & tag,line,devNull + character(len=64) :: tag2 character(len=64), dimension(:), allocatable :: & str logical :: echo - allocate(phase_name(0)) allocate(phaseConfig(0)) line = '' ! to have it initialized p = 0_pInt ! - " - @@ -967,7 +991,12 @@ character(len=65536) function material_parsePhase(fileUnit) nextSection: if (IO_getTag(line,'[',']') /= '') then p = p + 1_pInt phaseConfig = [phaseConfig, emptyList] - phase_name = [phase_Name,IO_getTag(line,'[',']')] + tag2 = IO_getTag(line,'[',']') + GfortranBug86033: if (.not. allocated(phase_name)) then + allocate(phase_name(1),source=tag2) + else GfortranBug86033 + phase_name = [phase_name,tag2] + endif GfortranBug86033 endif nextSection chunkPos = IO_stringPos(line) tag = IO_lc(IO_stringValue(trim(line),chunkPos,1_pInt)) ! extract key From 142ce51c9c2d728ab26560f64dc847c9025ba8d0 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 2 Jun 2018 19:28:08 +0200 Subject: [PATCH 5/5] homogenization and crystallite use new structure math_transpose33 has no advantage over transpose intrinsic --- PRIVATE | 2 +- src/crystallite.f90 | 204 +++++++++++++++++------------------------ src/homogenization.f90 | 8 +- 3 files changed, 86 insertions(+), 128 deletions(-) diff --git a/PRIVATE b/PRIVATE index a11897e49..55a1fd701 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit a11897e49af7c0e71ccc74d222a6d502990f730b +Subproject commit 55a1fd701720fdd8caa53c058f651e009ab9e4aa diff --git a/src/crystallite.f90 b/src/crystallite.f90 index 12bf19871..787d56fd7 100644 --- a/src/crystallite.f90 +++ b/src/crystallite.f90 @@ -155,7 +155,6 @@ subroutine crystallite_init math_I3, & math_EulerToR, & math_inv33, & - math_transpose33, & math_mul33xx33, & math_mul33x33 use FEsolving, only: & @@ -167,28 +166,18 @@ subroutine crystallite_init mesh_maxNips, & mesh_maxNipNeighbors use IO, only: & - IO_read, & IO_timeStamp, & - IO_open_jobFile_stat, & - IO_open_file, & - IO_lc, & - IO_getTag, & - IO_isBlank, & - IO_stringPos, & IO_stringValue, & IO_write_jobFile, & - IO_error, & - IO_EOF + IO_error use material use constitutive, only: & constitutive_initialFi, & constitutive_microstructure ! derived (shortcut) quantities of given state implicit none - integer(pInt), parameter :: & - FILEUNIT = 200_pInt - integer(pInt), allocatable, dimension(:) :: chunkPos + integer(pInt), parameter :: FILEUNIT=434_pInt integer(pInt) :: & c, & !< counter in integration point component loop i, & !< counter in integration point loop @@ -200,12 +189,11 @@ subroutine crystallite_init eMax, & !< maximum number of elements nMax, & !< maximum number of ip neighbors myNcomponents, & !< number of components at current IP - section = 0_pInt, & mySize + character(len=64), dimension(:), allocatable :: str character(len=65536) :: & - tag = '', & - line= '' + tag = '' write(6,'(/,a)') ' <<<+- crystallite init -+>>>' write(6,'(a15,a)') ' Current time: ',IO_timeStamp() @@ -277,85 +265,61 @@ subroutine crystallite_init allocate(crystallite_sizePostResult(maxval(crystallite_Noutput), & material_Ncrystallite), source=0_pInt) - 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 - do while (trim(line) /= IO_EOF .and. IO_lc(IO_getTag(line,'<','>')) /= material_partCrystallite) ! wind forward to - line = IO_read(FILEUNIT) - enddo - - do while (trim(line) /= IO_EOF) ! read through sections of crystallite part - line = IO_read(FILEUNIT) - if (IO_isBlank(line)) cycle ! skip empty lines - if (IO_getTag(line,'<','>') /= '') then ! stop at next part - line = IO_read(FILEUNIT, .true.) ! reset IO_read - exit - endif - if (IO_getTag(line,'[',']') /= '') then ! next section - section = section + 1_pInt - o = 0_pInt ! reset output counter - cycle ! skip to next line - endif - if (section > 0_pInt) then - chunkPos = IO_stringPos(line) - tag = IO_lc(IO_stringValue(line,chunkPos,1_pInt)) ! extract key - select case(tag) - case ('(output)') - o = o + 1_pInt - crystallite_output(o,section) = IO_lc(IO_stringValue(line,chunkPos,2_pInt)) - outputName: select case(crystallite_output(o,section)) + do c = 1_pInt, material_Ncrystallite + str = crystalliteConfig(c)%getStrings('(output)')!,defaultVal=[]) + do o = 1_pInt, size(str) + outputName: select case(str(o)) case ('phase') outputName - crystallite_outputID(o,section) = phase_ID + crystallite_outputID(o,c) = phase_ID case ('texture') outputName - crystallite_outputID(o,section) = texture_ID + crystallite_outputID(o,c) = texture_ID case ('volume') outputName - crystallite_outputID(o,section) = volume_ID + crystallite_outputID(o,c) = volume_ID case ('grainrotationx') outputName - crystallite_outputID(o,section) = grainrotationx_ID + crystallite_outputID(o,c) = grainrotationx_ID case ('grainrotationy') outputName - crystallite_outputID(o,section) = grainrotationy_ID + crystallite_outputID(o,c) = grainrotationy_ID case ('grainrotationz') outputName - crystallite_outputID(o,section) = grainrotationx_ID + crystallite_outputID(o,c) = grainrotationx_ID case ('orientation') outputName - crystallite_outputID(o,section) = orientation_ID + crystallite_outputID(o,c) = orientation_ID case ('grainrotation') outputName - crystallite_outputID(o,section) = grainrotation_ID + crystallite_outputID(o,c) = grainrotation_ID case ('eulerangles') outputName - crystallite_outputID(o,section) = eulerangles_ID + crystallite_outputID(o,c) = eulerangles_ID case ('defgrad','f') outputName - crystallite_outputID(o,section) = defgrad_ID + crystallite_outputID(o,c) = defgrad_ID case ('fe') outputName - crystallite_outputID(o,section) = fe_ID + crystallite_outputID(o,c) = fe_ID case ('fp') outputName - crystallite_outputID(o,section) = fp_ID + crystallite_outputID(o,c) = fp_ID case ('fi') outputName - crystallite_outputID(o,section) = fi_ID + crystallite_outputID(o,c) = fi_ID case ('lp') outputName - crystallite_outputID(o,section) = lp_ID + crystallite_outputID(o,c) = lp_ID case ('li') outputName - crystallite_outputID(o,section) = li_ID + crystallite_outputID(o,c) = li_ID case ('e') outputName - crystallite_outputID(o,section) = e_ID + crystallite_outputID(o,c) = e_ID case ('ee') outputName - crystallite_outputID(o,section) = ee_ID + crystallite_outputID(o,c) = ee_ID case ('p','firstpiola','1stpiola') outputName - crystallite_outputID(o,section) = p_ID + crystallite_outputID(o,c) = p_ID case ('s','tstar','secondpiola','2ndpiola') outputName - crystallite_outputID(o,section) = s_ID + crystallite_outputID(o,c) = s_ID case ('elasmatrix') outputName - crystallite_outputID(o,section) = elasmatrix_ID + crystallite_outputID(o,c) = elasmatrix_ID case ('neighboringip') outputName - crystallite_outputID(o,section) = neighboringip_ID + crystallite_outputID(o,c) = neighboringip_ID case ('neighboringelement') outputName - crystallite_outputID(o,section) = neighboringelement_ID + crystallite_outputID(o,c) = neighboringelement_ID case default outputName - call IO_error(105_pInt,ext_msg=IO_stringValue(line,chunkPos,2_pInt)//' (Crystallite)') + call IO_error(105_pInt,ext_msg=tag//' (Crystallite)') end select outputName - end select - endif +enddo enddo - close(FILEUNIT) do r = 1_pInt,material_Ncrystallite do o = 1_pInt,crystallite_Noutput(r) @@ -537,7 +501,6 @@ subroutine crystallite_stressAndItsTangent(updateJaco) use math, only: & math_inv33, & math_identity2nd, & - math_transpose33, & math_mul33x33, & math_mul66x6, & math_Mandel6to33, & @@ -616,17 +579,17 @@ subroutine crystallite_stressAndItsTangent(updateJaco) write(6,'(/,a,i8,1x,a,i8,a,1x,i2,1x,i3)') '<< CRYST >> boundary values at el ip ipc ', & debug_e,'(',mesh_element(1,debug_e), ')',debug_i, debug_g write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> F ', & - math_transpose33(crystallite_partionedF(1:3,1:3,debug_g,debug_i,debug_e)) + transpose(crystallite_partionedF(1:3,1:3,debug_g,debug_i,debug_e)) write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> F0 ', & - math_transpose33(crystallite_partionedF0(1:3,1:3,debug_g,debug_i,debug_e)) + transpose(crystallite_partionedF0(1:3,1:3,debug_g,debug_i,debug_e)) write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> Fp0', & - math_transpose33(crystallite_partionedFp0(1:3,1:3,debug_g,debug_i,debug_e)) + transpose(crystallite_partionedFp0(1:3,1:3,debug_g,debug_i,debug_e)) write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> Fi0', & - math_transpose33(crystallite_partionedFi0(1:3,1:3,debug_g,debug_i,debug_e)) + transpose(crystallite_partionedFi0(1:3,1:3,debug_g,debug_i,debug_e)) write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> Lp0', & - math_transpose33(crystallite_partionedLp0(1:3,1:3,debug_g,debug_i,debug_e)) + transpose(crystallite_partionedLp0(1:3,1:3,debug_g,debug_i,debug_e)) write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> Li0', & - math_transpose33(crystallite_partionedLi0(1:3,1:3,debug_g,debug_i,debug_e)) + transpose(crystallite_partionedLi0(1:3,1:3,debug_g,debug_i,debug_e)) endif !-------------------------------------------------------------------------------------------------- @@ -1107,15 +1070,15 @@ subroutine crystallite_stressAndItsTangent(updateJaco) .or. .not. iand(debug_level(debug_crystallite),debug_levelSelective) /= 0_pInt)) then write(6,'(a,i8,1x,i2,1x,i3)') '<< CRYST >> central solution of cryst_StressAndTangent at el ip ipc ',e,i,c write(6,'(/,a,/,3(12x,3(f12.4,1x)/))') '<< CRYST >> P / MPa', & - math_transpose33(crystallite_P(1:3,1:3,c,i,e))*1.0e-6_pReal + transpose(crystallite_P(1:3,1:3,c,i,e))*1.0e-6_pReal write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> Fp', & - math_transpose33(crystallite_Fp(1:3,1:3,c,i,e)) + transpose(crystallite_Fp(1:3,1:3,c,i,e)) write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST >> Fi', & - math_transpose33(crystallite_Fi(1:3,1:3,c,i,e)) + transpose(crystallite_Fi(1:3,1:3,c,i,e)) write(6,'(a,/,3(12x,3(f14.9,1x)/),/)') '<< CRYST >> Lp', & - math_transpose33(crystallite_Lp(1:3,1:3,c,i,e)) + transpose(crystallite_Lp(1:3,1:3,c,i,e)) write(6,'(a,/,3(12x,3(f14.9,1x)/),/)') '<< CRYST >> Li', & - math_transpose33(crystallite_Li(1:3,1:3,c,i,e)) + transpose(crystallite_Li(1:3,1:3,c,i,e)) flush(6) endif enddo @@ -1166,7 +1129,7 @@ subroutine crystallite_stressAndItsTangent(updateJaco) crystallite_Fi(1:3,1:3,c,i,e),c,i,e) ! call constitutive law to calculate Lp tangent in lattice configuration dLpdS = math_mul3333xx3333(dLpdFi,dFidS) + dLpdS - temp_33 = math_transpose33(math_mul33x33(crystallite_invFp(1:3,1:3,c,i,e), & + temp_33 = transpose(math_mul33x33(crystallite_invFp(1:3,1:3,c,i,e), & crystallite_invFi(1:3,1:3,c,i,e))) rhs_3333 = 0.0_pReal forall(p=1_pInt:3_pInt, o=1_pInt:3_pInt) & @@ -1208,12 +1171,12 @@ subroutine crystallite_stressAndItsTangent(updateJaco) crystallite_dPdF(1:3,1:3,1:3,1:3,c,i,e) = 0.0_pReal temp_33 = math_mul33x33(crystallite_invFp(1:3,1:3,c,i,e), & math_mul33x33(math_Mandel6to33(crystallite_Tstar_v(1:6,c,i,e)), & - math_transpose33(crystallite_invFp(1:3,1:3,c,i,e)))) + transpose(crystallite_invFp(1:3,1:3,c,i,e)))) forall(p=1_pInt:3_pInt) & - crystallite_dPdF(p,1:3,p,1:3,c,i,e) = math_transpose33(temp_33) + crystallite_dPdF(p,1:3,p,1:3,c,i,e) = transpose(temp_33) temp_33 = math_mul33x33(math_Mandel6to33(crystallite_Tstar_v(1:6,c,i,e)), & - math_transpose33(crystallite_invFp(1:3,1:3,c,i,e))) + transpose(crystallite_invFp(1:3,1:3,c,i,e))) forall(p=1_pInt:3_pInt, o=1_pInt:3_pInt) & crystallite_dPdF(1:3,1:3,p,o,c,i,e) = crystallite_dPdF(1:3,1:3,p,o,c,i,e) + & math_mul33x33(math_mul33x33(crystallite_subF(1:3,1:3,c,i,e),dFpinvdF(1:3,1:3,p,o)),temp_33) @@ -1223,14 +1186,14 @@ subroutine crystallite_stressAndItsTangent(updateJaco) forall(p=1_pInt:3_pInt, o=1_pInt:3_pInt) & crystallite_dPdF(1:3,1:3,p,o,c,i,e) = crystallite_dPdF(1:3,1:3,p,o,c,i,e) + & math_mul33x33(math_mul33x33(temp_33,dSdF(1:3,1:3,p,o)), & - math_transpose33(crystallite_invFp(1:3,1:3,c,i,e))) + transpose(crystallite_invFp(1:3,1:3,c,i,e))) temp_33 = math_mul33x33(math_mul33x33(crystallite_subF(1:3,1:3,c,i,e), & crystallite_invFp(1:3,1:3,c,i,e)), & math_Mandel6to33(crystallite_Tstar_v(1:6,c,i,e))) forall(p=1_pInt:3_pInt, o=1_pInt:3_pInt) & crystallite_dPdF(1:3,1:3,p,o,c,i,e) = crystallite_dPdF(1:3,1:3,p,o,c,i,e) + & - math_mul33x33(temp_33,math_transpose33(dFpinvdF(1:3,1:3,p,o))) + math_mul33x33(temp_33,transpose(dFpinvdF(1:3,1:3,p,o))) enddo; enddo enddo elementLooping6 @@ -3195,7 +3158,6 @@ function crystallite_push33ToRef(ipc,ip,el, tensor33) use math, only: & math_mul33x33, & math_inv33, & - math_transpose33, & math_EulerToR use material, only: & material_EulerAngles @@ -3210,8 +3172,8 @@ function crystallite_push33ToRef(ipc,ip,el, tensor33) ipc ! grain index T = math_mul33x33(math_EulerToR(material_EulerAngles(1:3,ipc,ip,el)), & - math_transpose33(math_inv33(crystallite_subF(1:3,1:3,ipc,ip,el)))) - crystallite_push33ToRef = math_mul33x33(math_transpose33(T),math_mul33x33(tensor33,T)) + transpose(math_inv33(crystallite_subF(1:3,1:3,ipc,ip,el)))) + crystallite_push33ToRef = math_mul33x33(transpose(T),math_mul33x33(tensor33,T)) end function crystallite_push33ToRef @@ -3260,7 +3222,6 @@ logical function crystallite_integrateStress(& math_mul3333xx3333, & math_mul66x6, & math_mul99x99, & - math_transpose33, & math_inv33, & math_invert, & math_det33, & @@ -3386,7 +3347,7 @@ logical function crystallite_integrateStress(& write(6,'(a,i8,1x,a,i8,a,1x,i2,1x,i3)') '<< CRYST >> integrateStress failed on inversion of Fp_current at el (elFE) ip ipc ',& el,'(',mesh_element(1,el),')',ip,ipc if (iand(debug_level(debug_crystallite), debug_levelExtensive) > 0_pInt) & - write(6,'(/,a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fp_current',math_transpose33(Fp_current(1:3,1:3)) + write(6,'(/,a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fp_current',transpose(Fp_current(1:3,1:3)) endif #endif return @@ -3402,7 +3363,7 @@ logical function crystallite_integrateStress(& write(6,'(a,i8,1x,a,i8,a,1x,i2,1x,i3)') '<< CRYST >> integrateStress failed on inversion of Fi_current at el (elFE) ip ipc ',& el,'(',mesh_element(1,el),')',ip,ipc if (iand(debug_level(debug_crystallite), debug_levelExtensive) > 0_pInt) & - write(6,'(/,a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fp_current',math_transpose33(Fi_current(1:3,1:3)) + write(6,'(/,a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fp_current',transpose(Fi_current(1:3,1:3)) endif #endif return @@ -3465,9 +3426,9 @@ logical function crystallite_integrateStress(& .and. ((el == debug_e .and. ip == debug_i .and. ipc == debug_g) & .or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) then write(6,'(a,i3,/)') '<< CRYST >> stress iteration ', NiterationStressLp - write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Lpguess', math_transpose33(Lpguess) - write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Fi', math_transpose33(Fi_new) - write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Fe', math_transpose33(Fe) + write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Lpguess', transpose(Lpguess) + write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Fi', transpose(Fi_new) + write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Fe', transpose(Fe) write(6,'(a,/,6(e20.10,1x))') '<< CRYST >> Tstar', Tstar_v endif #endif @@ -3488,7 +3449,7 @@ logical function crystallite_integrateStress(& if (iand(debug_level(debug_crystallite), debug_levelExtensive) /= 0_pInt & .and. ((el == debug_e .and. ip == debug_i .and. ipc == debug_g) & .or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) then - write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Lp_constitutive', math_transpose33(Lp_constitutive) + write(6,'(a,/,3(12x,3(e20.10,1x)/))') '<< CRYST >> Lp_constitutive', transpose(Lp_constitutive) endif #endif @@ -3534,7 +3495,7 @@ logical function crystallite_integrateStress(& if (mod(jacoCounterLp, iJacoLpresiduum) == 0_pInt) then dFe_dLp3333 = 0.0_pReal forall(o=1_pInt:3_pInt,p=1_pInt:3_pInt) & - dFe_dLp3333(o,1:3,p,1:3) = A(o,p)*math_transpose33(invFi_new) ! dFe_dLp(i,j,k,l) = -dt * A(i,k) invFi(l,j) + dFe_dLp3333(o,1:3,p,1:3) = A(o,p)*transpose(invFi_new) ! dFe_dLp(i,j,k,l) = -dt * A(i,k) invFi(l,j) dFe_dLp3333 = - dt * dFe_dLp3333 dRLp_dLp = math_identity2nd(9_pInt) & - math_Plain3333to99(math_mul3333xx3333(math_mul3333xx3333(dLp_dT3333,dT_dFe3333),dFe_dLp3333)) @@ -3564,10 +3525,10 @@ logical function crystallite_integrateStress(& write(6,'(a,/,9(12x,9(e15.3,1x)/))') '<< CRYST >> dFe_dLp',transpose(math_Plain3333to99(dFe_dLp3333)) write(6,'(a,/,9(12x,9(e15.3,1x)/))') '<< CRYST >> dT_dFe_constitutive',transpose(math_Plain3333to99(dT_dFe3333)) write(6,'(a,/,9(12x,9(e15.3,1x)/))') '<< CRYST >> dLp_dT_constitutive',transpose(math_Plain3333to99(dLp_dT3333)) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> A',math_transpose33(A) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> B',math_transpose33(B) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Lp_constitutive',math_transpose33(Lp_constitutive) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Lpguess',math_transpose33(Lpguess) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> A',transpose(A) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> B',transpose(B) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Lp_constitutive',transpose(Lp_constitutive) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Lpguess',transpose(Lpguess) endif endif #endif @@ -3597,8 +3558,8 @@ logical function crystallite_integrateStress(& if (iand(debug_level(debug_crystallite), debug_levelExtensive) /= 0_pInt & .and. ((el == debug_e .and. ip == debug_i .and. ipc == debug_g) & .or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) then - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Li_constitutive', math_transpose33(Li_constitutive) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Liguess', math_transpose33(Liguess) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Li_constitutive', transpose(Li_constitutive) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Liguess', transpose(Liguess) endif #endif !* update current residuum and check for convergence of loop @@ -3653,8 +3614,8 @@ logical function crystallite_integrateStress(& write(6,'(a,/,9(12x,9(e15.3,1x)/))') '<< CRYST >> dFe_dLi',transpose(math_Plain3333to99(dFe_dLi3333)) write(6,'(a,/,9(12x,9(e15.3,1x)/))') '<< CRYST >> dT_dFi_constitutive',transpose(math_Plain3333to99(dT_dFi3333)) write(6,'(a,/,9(12x,9(e15.3,1x)/))') '<< CRYST >> dLi_dT_constitutive',transpose(math_Plain3333to99(dLi_dT3333)) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Li_constitutive',math_transpose33(Li_constitutive) - write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Liguess',math_transpose33(Liguess) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Li_constitutive',transpose(Li_constitutive) + write(6,'(a,/,3(12x,3(e20.7,1x)/))') '<< CRYST >> Liguess',transpose(Liguess) endif endif #endif @@ -3688,7 +3649,7 @@ logical function crystallite_integrateStress(& if (iand(debug_level(debug_crystallite), debug_levelExtensive) /= 0_pInt & .and. ((el == debug_e .and. ip == debug_i .and. ipc == debug_g) & .or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) & - write(6,'(/,a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> invFp_new',math_transpose33(invFp_new) + write(6,'(/,a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> invFp_new',transpose(invFp_new) endif #endif return @@ -3699,7 +3660,7 @@ logical function crystallite_integrateStress(& crystallite_P(1:3,1:3,ipc,ip,el) = math_mul33x33(math_mul33x33(Fg_new,invFp_new), & math_mul33x33(math_Mandel6to33(Tstar_v), & - math_transpose33(invFp_new))) + transpose(invFp_new))) !* store local values in global variables @@ -3719,13 +3680,13 @@ logical function crystallite_integrateStress(& if (iand(debug_level(debug_crystallite),debug_levelExtensive) /= 0_pInt & .and. ((el == debug_e .and. ip == debug_i .and. ipc == debug_g) & .or. .not. iand(debug_level(debug_crystallite), debug_levelSelective) /= 0_pInt)) then - write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> P / MPa',math_transpose33(crystallite_P(1:3,1:3,ipc,ip,el))*1.0e-6_pReal + write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> P / MPa',transpose(crystallite_P(1:3,1:3,ipc,ip,el))*1.0e-6_pReal write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Cauchy / MPa', & - math_mul33x33(crystallite_P(1:3,1:3,ipc,ip,el), math_transpose33(Fg_new)) * 1.0e-6_pReal / math_det33(Fg_new) + math_mul33x33(crystallite_P(1:3,1:3,ipc,ip,el), transpose(Fg_new)) * 1.0e-6_pReal / math_det33(Fg_new) write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fe Lp Fe^-1', & - math_transpose33(math_mul33x33(Fe_new, math_mul33x33(crystallite_Lp(1:3,1:3,ipc,ip,el), math_inv33(Fe_new)))) ! transpose to get correct print out order - write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fp',math_transpose33(crystallite_Fp(1:3,1:3,ipc,ip,el)) - write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fi',math_transpose33(crystallite_Fi(1:3,1:3,ipc,ip,el)) + transpose(math_mul33x33(Fe_new, math_mul33x33(crystallite_Lp(1:3,1:3,ipc,ip,el), math_inv33(Fe_new)))) ! transpose to get correct print out order + write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fp',transpose(crystallite_Fp(1:3,1:3,ipc,ip,el)) + write(6,'(a,/,3(12x,3(f12.7,1x)/))') '<< CRYST >> Fi',transpose(crystallite_Fi(1:3,1:3,ipc,ip,el)) endif #endif @@ -3842,7 +3803,6 @@ function crystallite_postResults(ipc, ip, el) math_qToEuler, & math_qToEulerAxisAngle, & math_mul33x33, & - math_transpose33, & math_det33, & math_I3, & inDeg, & @@ -3945,41 +3905,41 @@ function crystallite_postResults(ipc, ip, el) case (defgrad_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_partionedF(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_partionedF(1:3,1:3,ipc,ip,el)),[mySize]) case (e_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = 0.5_pReal * reshape((math_mul33x33( & - math_transpose33(crystallite_partionedF(1:3,1:3,ipc,ip,el)), & + transpose(crystallite_partionedF(1:3,1:3,ipc,ip,el)), & crystallite_partionedF(1:3,1:3,ipc,ip,el)) - math_I3),[mySize]) case (fe_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_Fe(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_Fe(1:3,1:3,ipc,ip,el)),[mySize]) case (ee_ID) - Ee = 0.5_pReal *(math_mul33x33(math_transpose33(crystallite_Fe(1:3,1:3,ipc,ip,el)), & + Ee = 0.5_pReal *(math_mul33x33(transpose(crystallite_Fe(1:3,1:3,ipc,ip,el)), & crystallite_Fe(1:3,1:3,ipc,ip,el)) - math_I3) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = reshape(Ee,[mySize]) case (fp_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_Fp(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_Fp(1:3,1:3,ipc,ip,el)),[mySize]) case (fi_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_Fi(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_Fi(1:3,1:3,ipc,ip,el)),[mySize]) case (lp_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_Lp(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_Lp(1:3,1:3,ipc,ip,el)),[mySize]) case (li_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_Li(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_Li(1:3,1:3,ipc,ip,el)),[mySize]) case (p_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & - reshape(math_transpose33(crystallite_P(1:3,1:3,ipc,ip,el)),[mySize]) + reshape(transpose(crystallite_P(1:3,1:3,ipc,ip,el)),[mySize]) case (s_ID) mySize = 9_pInt crystallite_postResults(c+1:c+mySize) = & diff --git a/src/homogenization.f90 b/src/homogenization.f90 index 7dbea41d5..14ffdcdd6 100644 --- a/src/homogenization.f90 +++ b/src/homogenization.f90 @@ -443,11 +443,9 @@ subroutine homogenization_init allocate(materialpoint_results(materialpoint_sizeResults,mesh_maxNips,mesh_NcpElems)) #endif - mainProcess: if (worldrank == 0) then - write(6,'(/,a)') ' <<<+- homogenization init -+>>>' - write(6,'(a15,a)') ' Current time: ',IO_timeStamp() + write(6,'(/,a)') ' <<<+- homogenization init -+>>>' + write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" - endif mainProcess if (iand(debug_level(debug_homogenization), debug_levelBasic) /= 0_pInt) then #ifdef TODO @@ -475,7 +473,7 @@ subroutine homogenization_init flush(6) if (debug_g < 1 .or. debug_g > homogenization_Ngrains(mesh_element(3,debug_e))) & - call IO_error(602_pInt,ext_msg='component (grain)', el=debug_e, g=debug_g) + call IO_error(602_pInt,ext_msg='constituent', el=debug_e, g=debug_g) end subroutine homogenization_init