From 1add0f3d84ea5efe1e58f81bef93437d3569848c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 22 Jun 2018 08:03:22 +0200 Subject: [PATCH] gfortran does not recognice an empty array as 'present' --- src/crystallite.f90 | 10 ++++++++-- src/material.f90 | 19 ++++++++++++++++++- src/plastic_isotropic.f90 | 6 ++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/crystallite.f90 b/src/crystallite.f90 index 53d38a770..4a086ba8a 100644 --- a/src/crystallite.f90 +++ b/src/crystallite.f90 @@ -192,7 +192,7 @@ subroutine crystallite_init myNcomponents, & !< number of components at current IP mySize - character(len=64), dimension(:), allocatable :: str + character(len=65536), dimension(:), allocatable :: str character(len=65536) :: & tag = '' @@ -268,7 +268,13 @@ subroutine crystallite_init do c = 1_pInt, material_Ncrystallite - str = crystalliteConfig(c)%getStrings('(output)',defaultVal=[character(len=65536)::]) +#if defined(__GFORTRAN__) + str = ['GfortranBug86277'] + str = crystalliteConfig(c)%getStrings('(output)',defaultVal=str) + if (str(1) == 'GfortranBug86277') str = [character(len=65536)::] +#else + str = crystalliteConfig(c)%getStrings('(output)',defaultVal=[character(len=65536)::]) +#endif do o = 1_pInt, size(str) crystallite_output(o,c) = str(o) outputName: select case(str(o)) diff --git a/src/material.f90 b/src/material.f90 index d51309d81..5462f3e9d 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -811,7 +811,13 @@ subroutine material_parsePhase allocate(phase_stiffnessDegradation(maxval(phase_NstiffnessDegradations),material_Nphase), & source=STIFFNESS_DEGRADATION_undefined_ID) do p=1_pInt, material_Nphase +#if defined(__GFORTRAN__) + str = ['GfortranBug86277'] + str = phaseConfig(p)%getStrings('(source)',defaultVal=str) + if (str(1) == 'GfortranBug86277') str = [character(len=65536)::] +#else str = phaseConfig(p)%getStrings('(source)',defaultVal=[character(len=65536)::]) +#endif do sourceCtr = 1_pInt, size(str) select case (trim(str(sourceCtr))) case (SOURCE_thermal_dissipation_label) @@ -835,7 +841,13 @@ subroutine material_parsePhase end select enddo +#if defined(__GFORTRAN__) + str = ['GfortranBug86277'] + str = phaseConfig(p)%getStrings('(kinematics)',defaultVal=str) + if (str(1) == 'GfortranBug86277') str = [character(len=65536)::] +#else str = phaseConfig(p)%getStrings('(kinematics)',defaultVal=[character(len=65536)::]) +#endif do kinematicsCtr = 1_pInt, size(str) select case (trim(str(kinematicsCtr))) case (KINEMATICS_cleavage_opening_label) @@ -850,8 +862,13 @@ subroutine material_parsePhase phase_kinematics(kinematicsCtr,p) = KINEMATICS_hydrogen_strain_ID end select enddo - +#if defined(__GFORTRAN__) + str = ['GfortranBug86277'] + str = phaseConfig(p)%getStrings('(stiffness_degradation)',defaultVal=str) + if (str(1) == 'GfortranBug86277') str = [character(len=65536)::] +#else str = phaseConfig(p)%getStrings('(stiffness_degradation)',defaultVal=[character(len=65536)::]) +#endif do stiffDegradationCtr = 1_pInt, size(str) select case (trim(str(stiffDegradationCtr))) case (STIFFNESS_DEGRADATION_damage_label) diff --git a/src/plastic_isotropic.f90 b/src/plastic_isotropic.f90 index 5d98a647b..6c2dc2ce4 100644 --- a/src/plastic_isotropic.f90 +++ b/src/plastic_isotropic.f90 @@ -162,7 +162,13 @@ use IO prm%dilatation = phaseConfig(phase)%keyExists('/dilatation/') +#if defined(__GFORTRAN__) + outputs = ['GfortranBug86277'] + outputs = phaseConfig(phase)%getStrings('(output)',defaultVal=outputs) + if (outputs(1) == 'GfortranBug86277') outputs = [character(len=65536)::] +#else outputs = phaseConfig(phase)%getStrings('(output)',defaultVal=[character(len=65536)::]) +#endif allocate(prm%outputID(0)) do i=1_pInt, size(outputs) select case(outputs(i))