From 81729dab2a79a8cfdc56b2524ac004712de63190 Mon Sep 17 00:00:00 2001
From: Pratheek Shanthraj
Date: Tue, 24 Jun 2014 22:53:25 +0000
Subject: [PATCH] changed output parsing slightly to not give an error for
undefined (for plasticity) parameters or outputs. get Noutput for plasticity
from constitutive_xxx_noutput and not from phase_Noutput which is the total
number of outputs (plasticity+thermal....)
---
code/constitutive_dislotwin.f90 | 67 ++++++++--
code/constitutive_j2.f90 | 18 +--
code/constitutive_nonlocal.f90 | 181 ++++++++++++++++++++++++++--
code/constitutive_phenopowerlaw.f90 | 42 +++++--
code/constitutive_titanmod.f90 | 99 +++++++++++++--
5 files changed, 354 insertions(+), 53 deletions(-)
diff --git a/code/constitutive_dislotwin.f90 b/code/constitutive_dislotwin.f90
index 8bbf2adba..87a9d1c90 100644
--- a/code/constitutive_dislotwin.f90
+++ b/code/constitutive_dislotwin.f90
@@ -335,53 +335,98 @@ subroutine constitutive_dislotwin_init(fileUnit)
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
- case ('plasticity','elasticity','lattice_structure', & ! already known
- 'covera_ratio','c/a_ratio','c/a', &
- 'c11','c12','c13','c22','c23','c33','c44','c55','c66')
- cycle
case ('(output)')
- constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
- constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
- IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('edge_density')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = edge_density_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('dipole_density')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = dipole_density_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_rate_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = shear_rate_slip_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulated_shear_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = accumulated_shear_slip_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('mfp_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = mfp_slip_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolved_stress_slip')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = resolved_stress_slip_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('edge_dipole_distance')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = edge_dipole_distance_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('stress_exponent')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = stress_exponent_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('twin_fraction')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = twin_fraction_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_rate_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = shear_rate_twin_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulated_shear_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = accumulated_shear_twin_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('mfp_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = mfp_twin_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolved_stress_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = resolved_stress_twin_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('threshold_stress_twin')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = threshold_stress_twin_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolved_stress_shearband')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = resolved_stress_shearband_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_rate_shearband')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = shear_rate_shearband_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('sb_eigenvalues')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = sb_eigenvalues_ID
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('sb_eigenvectors')
constitutive_dislotwin_outputID(constitutive_dislotwin_Noutput(instance),instance) = sb_eigenvectors_ID
- case default
- call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_DISLOTWIN_label//')')
+ constitutive_dislotwin_Noutput(instance) = constitutive_dislotwin_Noutput(instance) + 1_pInt
+ constitutive_dislotwin_output(constitutive_dislotwin_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
end select
!--------------------------------------------------------------------------------------------------
! parameters depending on number of slip system families
@@ -519,8 +564,6 @@ subroutine constitutive_dislotwin_init(fileUnit)
constitutive_dislotwin_sbVelocity(instance) = IO_floatValue(line,positions,2_pInt)
case ('qedgepersbsystem')
constitutive_dislotwin_sbQedge(instance) = IO_floatValue(line,positions,2_pInt)
- case default
- call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_DISLOTWIN_label//')')
end select
endif; endif
enddo parsingFile
@@ -1860,7 +1903,7 @@ function constitutive_dislotwin_postResults(Tstar_v,Temperature,state,ipc,ip,el)
!* Spectral decomposition of stress
call math_spectralDecompositionSym33(math_Mandel6to33(Tstar_v),eigValues,eigVectors, error)
- do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
+ do o = 1_pInt,constitutive_dislotwin_Noutput(instance)
select case(constitutive_dislotwin_outputID(o,instance))
case (edge_density_ID)
diff --git a/code/constitutive_j2.f90 b/code/constitutive_j2.f90
index 79e1e95ca..9d8b72e5c 100644
--- a/code/constitutive_j2.f90
+++ b/code/constitutive_j2.f90
@@ -222,16 +222,13 @@ subroutine constitutive_j2_init(fileUnit)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
- case ('plasticity','elasticity','lattice_structure', &
- 'covera_ratio','c/a_ratio','c/a', &
- 'c11','c12','c13','c22','c23','c33','c44','c55','c66')
case ('(output)')
- constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
- constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
- IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('flowstress')
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = flowstress_ID
+ constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
+ constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
#ifdef HDF
call HDF5_addScalarDataset(outID(instance),myConstituents,'flowstress','MPa')
allocate(constitutive_j2_Output2(instance)%flowstress(myConstituents))
@@ -239,13 +236,16 @@ subroutine constitutive_j2_init(fileUnit)
#endif
case ('strainrate')
constitutive_j2_outputID(constitutive_j2_Noutput(instance),instance) = strainrate_ID
+ constitutive_j2_Noutput(instance) = constitutive_j2_Noutput(instance) + 1_pInt
+ constitutive_j2_output(constitutive_j2_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
#ifdef HDF
call HDF5_addScalarDataset(outID(instance),myConstituents,'strainrate','1/s')
allocate(constitutive_j2_Output2(instance)%strainrate(myConstituents))
constitutive_j2_Output2(instance)%strainrateActive = .true.
#endif
case default
- call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_J2_label//')')
+
end select
case ('tau0')
constitutive_j2_tau0(instance) = IO_floatValue(line,positions,2_pInt)
@@ -288,7 +288,7 @@ subroutine constitutive_j2_init(fileUnit)
if (constitutive_j2_aTolResistance(instance) <= 0.0_pReal) &
call IO_error(211_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
case default
- call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_J2_label//')')
+
end select
endif
enddo parsingFile
@@ -613,7 +613,7 @@ pure function constitutive_j2_postResults(Tstar_v,state,ipc,ip,el)
c = 0_pInt
constitutive_j2_postResults = 0.0_pReal
- outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
+ outputsLoop: do o = 1_pInt,constitutive_j2_Noutput(instance)
select case(constitutive_j2_outputID(o,instance))
case (flowstress_ID)
constitutive_j2_postResults(c+1_pInt) = tempState
diff --git a/code/constitutive_nonlocal.f90 b/code/constitutive_nonlocal.f90
index ae9e0b08d..2b01c07fb 100644
--- a/code/constitutive_nonlocal.f90
+++ b/code/constitutive_nonlocal.f90
@@ -434,185 +434,344 @@ allocate(nonSchmidCoeff(lattice_maxNnonSchmid,maxNinstances), s
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
- case ('plasticity','elasticity','lattice_structure', &
- 'covera_ratio','c/a_ratio','c/a', &
- 'c11','c12','c13','c22','c23','c33','c44','c55','c66',&
- '/nonlocal/')
- cycle
case ('(output)')
- Noutput(instance) = Noutput(instance) + 1_pInt
- constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case('rho')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('delta')
constitutive_nonlocal_outputID(Noutput(instance),instance) = delta_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('delta_sgl')
constitutive_nonlocal_outputID(Noutput(instance),instance) = delta_sgl_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_pos_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_neg_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_pos_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_neg_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_pos_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_pos_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_neg_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_neg_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_pos_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_pos_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_neg_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_neg_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_pos_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_pos_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_edge_neg_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_edge_neg_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_pos_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_pos_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_sgl_screw_neg_immobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_sgl_screw_neg_immobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dip_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('delta_dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = delta_dip_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dip_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dip_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dip_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dip_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('excess_rho')
constitutive_nonlocal_outputID(Noutput(instance),instance) = excess_rho_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('excess_rho_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = excess_rho_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('excess_rho_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = excess_rho_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_forest')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_forest_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('shearrate')
constitutive_nonlocal_outputID(Noutput(instance),instance) = shearrate_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resolvedstress')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resolvedstress_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resolvedstress_external')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resolvedstress_external_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resolvedstress_back')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resolvedstress_back_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('resistance')
constitutive_nonlocal_outputID(Noutput(instance),instance) = resistance_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_dip_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_gen')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_gen_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_gen_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_gen_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_gen_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_gen_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl2dip')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl2dip_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl2dip_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl2dip_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_sgl2dip_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_sgl2dip_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_ath')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_ath_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_the')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_the_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_the_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_the_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_ann_the_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_ann_the_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_edgejogs')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_edgejogs_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux_mobile')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_mobile_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('rho_dot_flux_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = rho_dot_flux_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_edge_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_edge_pos_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_edge_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_edge_neg_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_screw_pos')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_screw_pos_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('velocity_screw_neg')
constitutive_nonlocal_outputID(Noutput(instance),instance) = velocity_screw_neg_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipdirection.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipdirectionx_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipdirection.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipdirectiony_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipdirection.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipdirectionz_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipnormal.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipnormalx_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipnormal.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipnormaly_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('slipnormal.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = slipnormalz_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_pos.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_posx_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_pos.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_posy_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_pos.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_posz_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_neg.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_negx_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_neg.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_negy_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_edge_neg.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_edge_negz_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_pos.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_posx_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_pos.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_posy_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_pos.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_posz_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_neg.x')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_negx_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_neg.y')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_negy_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('fluxdensity_screw_neg.z')
constitutive_nonlocal_outputID(Noutput(instance),instance) = fluxdensity_screw_negz_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('maximumdipoleheight_edge')
constitutive_nonlocal_outputID(Noutput(instance),instance) = maximumdipoleheight_edge_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('maximumdipoleheight_screw')
constitutive_nonlocal_outputID(Noutput(instance),instance) = maximumdipoleheight_screw_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('accumulatedshear')
constitutive_nonlocal_outputID(Noutput(instance),instance) = accumulatedshear_ID
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
case('dislocationstress')
constitutive_nonlocal_outputID(Noutput(instance),instance) = dislocationstress_ID
- case default
- call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_NONLOCAL_label//')')
+ Noutput(instance) = Noutput(instance) + 1_pInt
+ constitutive_nonlocal_output(Noutput(instance),instance) = IO_lc(IO_stringValue(line,positions,2_pInt))
end select
case ('nslip')
if (positions(1) < 1_pInt + Nchunks_SlipFamilies) &
@@ -735,8 +894,6 @@ allocate(nonSchmidCoeff(lattice_maxNnonSchmid,maxNinstances), s
enddo
case('probabilisticmultiplication','randomsources','randommultiplication','discretesources')
probabilisticMultiplication(instance) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
- case default
- call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_NONLOCAL_label//')')
end select
endif; endif
enddo parsingFile
@@ -5898,7 +6055,7 @@ forall (s = 1_pInt:ns) &
lattice_sn(1:3,slipSystemLattice(s,instance),phase))
-outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
+outputsLoop: do o = 1_pInt,Noutput(instance)
select case(constitutive_nonlocal_outputID(o,instance))
case (rho_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(abs(rhoSgl),2) + sum(rhoDip,2)
diff --git a/code/constitutive_phenopowerlaw.f90 b/code/constitutive_phenopowerlaw.f90
index d961c7498..a8637a3f0 100644
--- a/code/constitutive_phenopowerlaw.f90
+++ b/code/constitutive_phenopowerlaw.f90
@@ -261,36 +261,60 @@ allocate(constitutive_phenopowerlaw_sizePostResults(maxNinstance),
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
- case ('plasticity','elasticity','lattice_structure', &
- 'covera_ratio','c/a_ratio','c/a', &
- 'c11','c12','c13','c22','c23','c33','c44','c55','c66')
case ('(output)')
- constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
- constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
- IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('resistance_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resistance_slip_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulatedshear_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = accumulatedshear_slip_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shearrate_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = shearrate_slip_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolvedstress_slip')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resolvedstress_slip_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('totalshear')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = totalshear_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resistance_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resistance_twin_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('accumulatedshear_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = accumulatedshear_twin_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shearrate_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = shearrate_twin_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resolvedstress_twin')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = resolvedstress_twin_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('totalvolfrac')
constitutive_phenopowerlaw_outputID(constitutive_phenopowerlaw_Noutput(instance),instance) = totalvolfrac_ID
+ constitutive_phenopowerlaw_Noutput(instance) = constitutive_phenopowerlaw_Noutput(instance) + 1_pInt
+ constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case default
- call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_PHENOPOWERLAW_label//')')
+
end select
!--------------------------------------------------------------------------------------------------
! parameters depending on number of slip families
@@ -398,7 +422,7 @@ allocate(constitutive_phenopowerlaw_sizePostResults(maxNinstance),
constitutive_phenopowerlaw_interaction_SlipSlip(j,instance) = IO_floatValue(line,positions,1_pInt+j)
enddo
case default
- call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_PHENOPOWERLAW_label//')')
+
end select
endif; endif
enddo parsingFile
@@ -1203,7 +1227,7 @@ pure function constitutive_phenopowerlaw_postResults(Tstar_v,state,ipc,ip,el)
constitutive_phenopowerlaw_postResults = 0.0_pReal
c = 0_pInt
- outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
+ outputsLoop: do o = 1_pInt,constitutive_phenopowerlaw_Noutput(instance)
select case(constitutive_phenopowerlaw_outputID(o,instance))
case (resistance_slip_ID)
#ifdef NEWSTATE
diff --git a/code/constitutive_titanmod.f90 b/code/constitutive_titanmod.f90
index 1c75cbc48..3adc47820 100644
--- a/code/constitutive_titanmod.f90
+++ b/code/constitutive_titanmod.f90
@@ -360,74 +360,153 @@ subroutine constitutive_titanmod_init(fileUnit)
positions = IO_stringPos(line,MAXNCHUNKS)
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
select case(tag)
- case ('plasticity','elasticity','lattice_structure', &
- 'covera_ratio','c/a_ratio','c/a', &
- 'c11','c12','c13','c22','c23','c33','c44','c55','c66')
case ('(output)')
- constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
- constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
- IO_lc(IO_stringValue(line,positions,2_pInt))
select case(IO_lc(IO_stringValue(line,positions,2_pInt)))
case ('rhoedge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('segment_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = segment_edge_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('segment_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = segment_screw_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resistance_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = resistance_edge_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('resistance_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = resistance_screw_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('velocity_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = velocity_edge_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('velocity_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = velocity_screw_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('tau_slip')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = tau_slip_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('gdot_slip_edge')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = gdot_slip_edge_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('gdot_slip_screw')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = gdot_slip_screw_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('gdot_slip')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = gdot_slip_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('stressratio_edge_p')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = stressratio_edge_p_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('stressratio_screw_p')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = stressratio_screw_p_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_system')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_system_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('twin_fraction')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = twin_fraction_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_basal')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_basal_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_prism')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_prism_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_pyra')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_pyra_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_pyrca')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_pyrca_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_basal')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_basal_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_prism')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_prism_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_pyra')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_pyra_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoedge_pyrca')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoedge_pyrca_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_basal')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_basal_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_prism')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_prism_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_pyra')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_pyra_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('rhoscrew_pyrca')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = rhoscrew_pyrca_ID
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
case ('shear_total')
constitutive_titanmod_outputID(constitutive_titanmod_Noutput(instance),instance) = shear_total_ID
- case default
- call IO_error(105_pInt,ext_msg=IO_stringValue(line,positions,2_pInt)//' ('//PLASTICITY_TITANMOD_label//')')
+ constitutive_titanmod_Noutput(instance) = constitutive_titanmod_Noutput(instance) + 1_pInt
+ constitutive_titanmod_output(constitutive_titanmod_Noutput(instance),instance) = &
+ IO_lc(IO_stringValue(line,positions,2_pInt))
end select
case ('debyefrequency')
constitutive_titanmod_debyefrequency(instance) = IO_floatValue(line,positions,2_pInt)
@@ -595,8 +674,6 @@ subroutine constitutive_titanmod_init(fileUnit)
do j = 1_pInt, Nchunks_TwinTwin
constitutive_titanmod_interactionTwinTwin(j,instance) = IO_floatValue(line,positions,1_pInt+j)
enddo
- case default
- call IO_error(210_pInt,ext_msg=trim(tag)//' ('//PLASTICITY_TITANMOD_label//')')
end select
endif; endif
enddo parsingFile
@@ -1967,7 +2044,7 @@ pure function constitutive_titanmod_postResults(state,ipc,ip,el)
c = 0_pInt
constitutive_titanmod_postResults = 0.0_pReal
- do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
+ do o = 1_pInt,constitutive_titanmod_Noutput(instance)
select case(constitutive_titanmod_outputID(o,instance))
case (rhoedge_ID)
constitutive_titanmod_postResults(c+1_pInt:c+ns) = tempState(1_pInt:ns)