pre-defined variables seem to work for gfortran

This commit is contained in:
Martin Diehl 2018-06-25 14:06:13 +02:00
parent f63e8fe34e
commit 6cd08a38b1
1 changed files with 5 additions and 11 deletions

View File

@ -149,6 +149,7 @@ subroutine plastic_phenopowerlaw_init
integer(pInt), dimension(0), parameter :: emptyInt = [integer(pInt)::] integer(pInt), dimension(0), parameter :: emptyInt = [integer(pInt)::]
real(pReal), dimension(0), parameter :: emptyReal = [real(pReal)::] real(pReal), dimension(0), parameter :: emptyReal = [real(pReal)::]
character(len=65536), dimension(0), parameter :: emptyString = [character(len=65536)::]
type(tParameters), pointer :: prm type(tParameters), pointer :: prm
@ -189,7 +190,7 @@ subroutine plastic_phenopowerlaw_init
prm%H_int = phaseConfig(phase)%getFloats('h_int',& prm%H_int = phaseConfig(phase)%getFloats('h_int',&
defaultVal=[(0.0_pReal,i=1_pInt,size(prm%Nslip))]) defaultVal=[(0.0_pReal,i=1_pInt,size(prm%Nslip))])
prm%nonSchmidCoeff = phaseConfig(phase)%getFloats('nonschmid_coefficients',& prm%nonSchmidCoeff = phaseConfig(phase)%getFloats('nonschmid_coefficients',&
defaultVal = [real(pReal)::1] ) defaultVal = emptyReal )
prm%gdot0_slip = phaseConfig(phase)%getFloat('gdot0_slip') prm%gdot0_slip = phaseConfig(phase)%getFloat('gdot0_slip')
prm%n_slip = phaseConfig(phase)%getFloat('n_slip') prm%n_slip = phaseConfig(phase)%getFloat('n_slip')
@ -228,13 +229,7 @@ subroutine plastic_phenopowerlaw_init
prm%aTolShear = phaseConfig(phase)%getFloat('atol_shear',defaultVal=1.0e-6_pReal) prm%aTolShear = phaseConfig(phase)%getFloat('atol_shear',defaultVal=1.0e-6_pReal)
prm%aTolTwinfrac = phaseConfig(phase)%getFloat('atol_twinfrac',defaultVal=1.0e-6_pReal) prm%aTolTwinfrac = phaseConfig(phase)%getFloat('atol_twinfrac',defaultVal=1.0e-6_pReal)
#if defined(__GFORTRAN__) outputs = phaseConfig(phase)%getStrings('(output)',defaultVal=emptyString)
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)) allocate(prm%outputID(0))
do i=1_pInt, size(outputs) do i=1_pInt, size(outputs)
outputID = undefined_ID outputID = undefined_ID
@ -615,8 +610,7 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
lattice_maxNtwinFamily, & lattice_maxNtwinFamily, &
lattice_NslipSystem, & lattice_NslipSystem, &
lattice_NtwinSystem, & lattice_NtwinSystem, &
lattice_shearTwin, & lattice_shearTwin
lattice_NnonSchmid
use material, only: & use material, only: &
material_phase, & material_phase, &
phaseAt, phasememberAt, & phaseAt, phasememberAt, &
@ -686,7 +680,7 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
! Calculation of dot gamma ! Calculation of dot gamma
tau_slip_pos = dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,ph)) tau_slip_pos = dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,ph))
tau_slip_neg = tau_slip_pos tau_slip_neg = tau_slip_pos
nonSchmidSystems: do k = 1,lattice_NnonSchmid(ph) nonSchmidSystems: do k = 1,size(param(instance)%nonSchmidCoeff)
tau_slip_pos = tau_slip_pos + param(instance)%nonSchmidCoeff(k)* & tau_slip_pos = tau_slip_pos + param(instance)%nonSchmidCoeff(k)* &
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k, index_myFamily+i,ph)) dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k, index_myFamily+i,ph))
tau_slip_neg = tau_slip_neg +param(instance)%nonSchmidCoeff(k)* & tau_slip_neg = tau_slip_neg +param(instance)%nonSchmidCoeff(k)* &