fixed bug in initialization when reading in material.config.
Fortran does not short-circuit, e.g. (if a>0 .and. b(a) ==c) might cause an out-of-bounds error when a=-1 it'll try to access b(-1)!
This commit is contained in:
parent
6f7740a243
commit
296a5040b9
|
@ -156,7 +156,7 @@ integer(pInt), intent(in) :: file
|
|||
integer(pInt), parameter :: maxNchunks = 21_pInt
|
||||
integer(pInt), dimension(1+2*maxNchunks) :: positions
|
||||
integer(pInt), dimension(6) :: configNchunks
|
||||
integer(pInt) :: section, maxNinstance,mySize=0_pInt,myStructure,maxTotalNslip,maxTotalNtwin,&
|
||||
integer(pInt) :: section = 0_pInt, maxNinstance,mySize=0_pInt,myStructure,maxTotalNslip,maxTotalNtwin,&
|
||||
f,i,j,k,l,m,n,o,p,q,r,s,ns,nt, &
|
||||
Nchunks_SlipSlip, Nchunks_SlipTwin, Nchunks_TwinSlip, Nchunks_TwinTwin, &
|
||||
Nchunks_SlipFamilies, Nchunks_TwinFamilies, &
|
||||
|
@ -289,8 +289,6 @@ allocate(constitutive_dislotwin_sbSv(6,6,homogenization_maxNgrains,mesh_maxNips,
|
|||
|
||||
!* Readout data from material.config file
|
||||
rewind(file)
|
||||
line = ''
|
||||
section = 0_pInt
|
||||
|
||||
do while (IO_lc(IO_getTag(line,'<','>')) /= 'phase') ! wind forward to <phase>
|
||||
read(file,'(a1024)',END=100) line
|
||||
|
@ -304,148 +302,150 @@ do ! read thru sections of
|
|||
section = section + 1_pInt ! advance section counter
|
||||
cycle
|
||||
endif
|
||||
if (section > 0_pInt .and. phase_plasticity(section) == constitutive_dislotwin_label) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity', 'elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_dislotwin_Noutput(i) = constitutive_dislotwin_Noutput(i) + 1_pInt
|
||||
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_dislotwin_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_dislotwin_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_TwinFamilies = configNchunks(2)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
Nchunks_SlipTwin = configNchunks(4)
|
||||
Nchunks_TwinSlip = configNchunks(5)
|
||||
Nchunks_TwinTwin = configNchunks(6)
|
||||
case ('covera_ratio')
|
||||
constitutive_dislotwin_CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
constitutive_dislotwin_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_dislotwin_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_dislotwin_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_dislotwin_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_dislotwin_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_dislotwin_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_dislotwin_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_dislotwin_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_dislotwin_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_Nslip(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ntwin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_Ntwin(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rhoedge0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_rhoEdge0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rhoedgedip0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_rhoEdgeDip0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('slipburgers')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_burgersPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinburgers')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_burgersPerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('qedge')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_QedgePerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('v0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_v0PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ndot0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_Ndot0PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinsize')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_twinsizePerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('clambdaslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_CLambdaSlipPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('grainsize')
|
||||
constitutive_dislotwin_GrainSize(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('maxtwinfraction')
|
||||
constitutive_dislotwin_MaxTwinFraction(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('pexponent')
|
||||
constitutive_dislotwin_p(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('qexponent')
|
||||
constitutive_dislotwin_q(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('rexponent')
|
||||
constitutive_dislotwin_r(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('d0')
|
||||
constitutive_dislotwin_D0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('qsd')
|
||||
constitutive_dislotwin_Qsd(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_rho')
|
||||
constitutive_dislotwin_aTolRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_twinfrac')
|
||||
constitutive_dislotwin_aTolTwinFrac(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('cmfptwin')
|
||||
constitutive_dislotwin_Cmfptwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('cthresholdtwin')
|
||||
constitutive_dislotwin_Cthresholdtwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('solidsolutionstrength')
|
||||
constitutive_dislotwin_SolidSolutionStrength(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('l0')
|
||||
constitutive_dislotwin_L0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('cedgedipmindistance')
|
||||
constitutive_dislotwin_CEdgeDipMinDistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('catomicvolume')
|
||||
constitutive_dislotwin_CAtomicVolume(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interaction_slipslip','interactionslipslip')
|
||||
do j = 1_pInt, Nchunks_SlipSlip
|
||||
constitutive_dislotwin_interaction_SlipSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_sliptwin','interactionsliptwin')
|
||||
do j = 1_pInt, Nchunks_SlipTwin
|
||||
constitutive_dislotwin_interaction_SlipTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twinslip','interactiontwinslip')
|
||||
do j = 1_pInt, Nchunks_TwinSlip
|
||||
constitutive_dislotwin_interaction_TwinSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twintwin','interactiontwintwin')
|
||||
do j = 1_pInt, Nchunks_TwinTwin
|
||||
constitutive_dislotwin_interaction_TwinTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('sfe_0k')
|
||||
constitutive_dislotwin_SFE_0K(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('dsfe_dt')
|
||||
constitutive_dislotwin_dSFE_dT(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('shearbandresistance')
|
||||
constitutive_dislotwin_sbResistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('shearbandvelocity')
|
||||
constitutive_dislotwin_sbVelocity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('qedgepersbsystem')
|
||||
constitutive_dislotwin_sbQedge(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_dislotwin_label//')')
|
||||
end select
|
||||
if (section > 0_pInt ) then ! do not short-circuit here (.and. with next if statemen). It's not safe in Fortran
|
||||
if (phase_plasticity(section) == constitutive_dislotwin_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity', 'elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_dislotwin_Noutput(i) = constitutive_dislotwin_Noutput(i) + 1_pInt
|
||||
constitutive_dislotwin_output(constitutive_dislotwin_Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_dislotwin_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_dislotwin_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_TwinFamilies = configNchunks(2)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
Nchunks_SlipTwin = configNchunks(4)
|
||||
Nchunks_TwinSlip = configNchunks(5)
|
||||
Nchunks_TwinTwin = configNchunks(6)
|
||||
case ('covera_ratio')
|
||||
constitutive_dislotwin_CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
constitutive_dislotwin_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_dislotwin_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_dislotwin_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_dislotwin_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_dislotwin_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_dislotwin_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_dislotwin_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_dislotwin_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_dislotwin_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_Nslip(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ntwin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_Ntwin(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rhoedge0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_rhoEdge0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rhoedgedip0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_rhoEdgeDip0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('slipburgers')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_burgersPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinburgers')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_burgersPerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('qedge')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_QedgePerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('v0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_v0PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ndot0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_Ndot0PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinsize')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_dislotwin_twinsizePerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('clambdaslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_dislotwin_CLambdaSlipPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('grainsize')
|
||||
constitutive_dislotwin_GrainSize(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('maxtwinfraction')
|
||||
constitutive_dislotwin_MaxTwinFraction(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('pexponent')
|
||||
constitutive_dislotwin_p(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('qexponent')
|
||||
constitutive_dislotwin_q(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('rexponent')
|
||||
constitutive_dislotwin_r(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('d0')
|
||||
constitutive_dislotwin_D0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('qsd')
|
||||
constitutive_dislotwin_Qsd(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_rho')
|
||||
constitutive_dislotwin_aTolRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_twinfrac')
|
||||
constitutive_dislotwin_aTolTwinFrac(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('cmfptwin')
|
||||
constitutive_dislotwin_Cmfptwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('cthresholdtwin')
|
||||
constitutive_dislotwin_Cthresholdtwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('solidsolutionstrength')
|
||||
constitutive_dislotwin_SolidSolutionStrength(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('l0')
|
||||
constitutive_dislotwin_L0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('cedgedipmindistance')
|
||||
constitutive_dislotwin_CEdgeDipMinDistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('catomicvolume')
|
||||
constitutive_dislotwin_CAtomicVolume(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interaction_slipslip','interactionslipslip')
|
||||
do j = 1_pInt, Nchunks_SlipSlip
|
||||
constitutive_dislotwin_interaction_SlipSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_sliptwin','interactionsliptwin')
|
||||
do j = 1_pInt, Nchunks_SlipTwin
|
||||
constitutive_dislotwin_interaction_SlipTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twinslip','interactiontwinslip')
|
||||
do j = 1_pInt, Nchunks_TwinSlip
|
||||
constitutive_dislotwin_interaction_TwinSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twintwin','interactiontwintwin')
|
||||
do j = 1_pInt, Nchunks_TwinTwin
|
||||
constitutive_dislotwin_interaction_TwinTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('sfe_0k')
|
||||
constitutive_dislotwin_SFE_0K(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('dsfe_dt')
|
||||
constitutive_dislotwin_dSFE_dT(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('shearbandresistance')
|
||||
constitutive_dislotwin_sbResistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('shearbandvelocity')
|
||||
constitutive_dislotwin_sbVelocity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('qedgepersbsystem')
|
||||
constitutive_dislotwin_sbQedge(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_dislotwin_label//')')
|
||||
end select
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
|
|
@ -204,65 +204,67 @@ subroutine constitutive_j2_init(myFile)
|
|||
section = section + 1_pInt ! advance section counter
|
||||
cycle
|
||||
endif
|
||||
if (section > 0_pInt .and. phase_plasticity(section) == constitutive_j2_label) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_j2_Noutput(i) = constitutive_j2_Noutput(i) + 1_pInt
|
||||
constitutive_j2_output(constitutive_j2_Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_j2_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('c11')
|
||||
constitutive_j2_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_j2_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_j2_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_j2_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_j2_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_j2_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_j2_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_j2_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_j2_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tau0')
|
||||
constitutive_j2_tau0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('gdot0')
|
||||
constitutive_j2_gdot0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('n')
|
||||
constitutive_j2_n(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0')
|
||||
constitutive_j2_h0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_slope','slopelnrate')
|
||||
constitutive_j2_h0_slopeLnRate(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat')
|
||||
constitutive_j2_tausat(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfita')
|
||||
constitutive_j2_tausat_SinhFitA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfitb')
|
||||
constitutive_j2_tausat_SinhFitB(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfitc')
|
||||
constitutive_j2_tausat_SinhFitC(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfitd')
|
||||
constitutive_j2_tausat_SinhFitD(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('a', 'w0')
|
||||
constitutive_j2_a(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('taylorfactor')
|
||||
constitutive_j2_fTaylor(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_resistance')
|
||||
constitutive_j2_aTolResistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_j2_label//')')
|
||||
end select
|
||||
if (section > 0_pInt ) then ! do not short-circuit here (.and. with next if statemen). It's not safe in Fortran
|
||||
if (phase_plasticity(section) == constitutive_j2_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_j2_Noutput(i) = constitutive_j2_Noutput(i) + 1_pInt
|
||||
constitutive_j2_output(constitutive_j2_Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_j2_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('c11')
|
||||
constitutive_j2_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_j2_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_j2_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_j2_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_j2_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_j2_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_j2_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_j2_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_j2_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tau0')
|
||||
constitutive_j2_tau0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('gdot0')
|
||||
constitutive_j2_gdot0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('n')
|
||||
constitutive_j2_n(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0')
|
||||
constitutive_j2_h0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_slope','slopelnrate')
|
||||
constitutive_j2_h0_slopeLnRate(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat')
|
||||
constitutive_j2_tausat(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfita')
|
||||
constitutive_j2_tausat_SinhFitA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfitb')
|
||||
constitutive_j2_tausat_SinhFitB(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfitc')
|
||||
constitutive_j2_tausat_SinhFitC(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tausat_sinhfitd')
|
||||
constitutive_j2_tausat_SinhFitD(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('a', 'w0')
|
||||
constitutive_j2_a(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('taylorfactor')
|
||||
constitutive_j2_fTaylor(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_resistance')
|
||||
constitutive_j2_aTolResistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_j2_label//')')
|
||||
end select
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
|
|
@ -130,36 +130,38 @@ subroutine constitutive_none_init(myFile)
|
|||
section = section + 1_pInt ! advance section counter
|
||||
cycle
|
||||
endif
|
||||
if (section > 0_pInt .and. phase_plasticity(section) == constitutive_none_label) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,MAXNCHUNKS)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('lattice_structure')
|
||||
constitutive_none_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('c11')
|
||||
constitutive_none_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_none_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_none_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_none_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_none_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_none_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_none_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_none_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_none_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_none_label//')')
|
||||
end select
|
||||
if (section > 0_pInt ) then ! do not short-circuit here (.and. with next if statemen). It's not safe in Fortran
|
||||
if ( phase_plasticity(section) == constitutive_none_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,MAXNCHUNKS)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('lattice_structure')
|
||||
constitutive_none_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('c11')
|
||||
constitutive_none_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_none_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_none_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_none_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_none_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_none_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_none_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_none_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_none_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_none_label//')')
|
||||
end select
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
|
|
@ -258,7 +258,7 @@ integer(pInt), parameter :: maxNchunks = 21_pInt
|
|||
integer(pInt), &
|
||||
dimension(1_pInt+2_pInt*maxNchunks) :: positions
|
||||
integer(pInt), dimension(6) :: configNchunks
|
||||
integer(pInt) :: section, &
|
||||
integer(pInt) :: section = 0_pInt, &
|
||||
maxNinstance, &
|
||||
maxTotalNslip, &
|
||||
myStructure, &
|
||||
|
@ -420,9 +420,6 @@ nonSchmidCoeff = 0.0_pReal
|
|||
!*** readout data from material.config file
|
||||
|
||||
rewind(myFile)
|
||||
line = ''
|
||||
section = 0_pInt
|
||||
|
||||
do while (IO_lc(IO_getTag(line,'<','>')) /= 'phase') ! wind forward to <phase>
|
||||
read(myFile,'(a1024)',END=100) line
|
||||
enddo
|
||||
|
@ -435,160 +432,162 @@ do
|
|||
section = section + 1_pInt ! advance section counter
|
||||
cycle
|
||||
endif
|
||||
if (section > 0_pInt .and. phase_plasticity(section) == CONSTITUTIVE_NONLOCAL_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case('plasticity','elasticity','/nonlocal/')
|
||||
cycle
|
||||
case ('(output)')
|
||||
Noutput(i) = Noutput(i) + 1_pInt
|
||||
constitutive_nonlocal_output(Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_nonlocal_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_nonlocal_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
case ('c/a_ratio','covera_ratio')
|
||||
CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
Cslip66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
Cslip66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
Cslip66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
Cslip66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
Cslip66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
Cslip66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
Cslip66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
Cslip66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
Cslip66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
Nslip(f,i) = IO_intValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosgledgepos0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglEdgePos0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosgledgeneg0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglEdgeNeg0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosglscrewpos0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglScrewPos0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosglscrewneg0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglScrewNeg0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhodipedge0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoDipEdge0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhodipscrew0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoDipScrew0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('lambda0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
lambda0PerSlipFamily(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('burgers')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
burgersPerSlipFamily(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('cutoffradius','r')
|
||||
cutoffRadius(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('minimumdipoleheightedge','ddipminedge')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
minDipoleHeightPerSlipFamily(f,1_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('minimumdipoleheightscrew','ddipminscrew')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
minDipoleHeightPerSlipFamily(f,2_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('atomicvolume')
|
||||
atomicVolume(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('selfdiffusionprefactor','dsd0')
|
||||
Dsd0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('selfdiffusionenergy','qsd')
|
||||
selfDiffusionEnergy(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('atol_rho','atol_density','absolutetolerancedensity','absolutetolerance_density')
|
||||
aTolRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('atol_shear','atol_plasticshear','atol_accumulatedshear','absolutetoleranceshear','absolutetolerance_shear')
|
||||
aTolShear(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('significantrho','significant_rho','significantdensity','significant_density')
|
||||
significantRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('significantn','significant_n','significantdislocations','significant_dislcations')
|
||||
significantN(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interaction_slipslip')
|
||||
do it = 1_pInt, Nchunks_SlipSlip
|
||||
interactionSlipSlip(it,i) = IO_floatValue(line,positions,1_pInt+it)
|
||||
enddo
|
||||
case('linetension','linetensioneffect','linetension_effect')
|
||||
linetensionEffect(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('edgejog','edgejogs','edgejogeffect','edgejog_effect')
|
||||
edgeJogFactor(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('peierlsstressedge','peierlsstress_edge')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
peierlsStressPerSlipFamily(f,1_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('peierlsstressscrew','peierlsstress_screw')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
peierlsStressPerSlipFamily(f,2_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('doublekinkwidth')
|
||||
doublekinkwidth(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('solidsolutionenergy')
|
||||
solidSolutionEnergy(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('solidsolutionsize')
|
||||
solidSolutionSize(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('solidsolutionconcentration')
|
||||
solidSolutionConcentration(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('p')
|
||||
pParam(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('q')
|
||||
qParam(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('viscosity','glideviscosity')
|
||||
viscosity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('attackfrequency','fattack')
|
||||
fattack(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('rhosglscatter')
|
||||
rhoSglScatter(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('rhosglrandom')
|
||||
rhoSglRandom(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('rhosglrandombinning')
|
||||
rhoSglRandomBinning(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('surfacetransmissivity')
|
||||
surfaceTransmissivity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('grainboundarytransmissivity')
|
||||
grainboundaryTransmissivity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('cflfactor')
|
||||
CFLfactor(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('fedgemultiplication','edgemultiplicationfactor','edgemultiplication')
|
||||
fEdgeMultiplication(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('shortrangestresscorrection')
|
||||
shortRangeStressCorrection(i) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
|
||||
case ('nonschmid_coefficients')
|
||||
do f = 1_pInt, lattice_maxNonSchmid
|
||||
nonSchmidCoeff(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('deadzonescaling','deadzone','deadscaling')
|
||||
deadZoneScaling(i) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
|
||||
case('probabilisticmultiplication','randomsources','randommultiplication','discretesources')
|
||||
probabilisticMultiplication(i) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//CONSTITUTIVE_NONLOCAL_LABEL//')')
|
||||
end select
|
||||
if (section > 0_pInt ) then ! do not short-circuit here (.and. with next if statemen). It's not safe in Fortran
|
||||
if (phase_plasticity(section) == CONSTITUTIVE_NONLOCAL_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case('plasticity','elasticity','/nonlocal/')
|
||||
cycle
|
||||
case ('(output)')
|
||||
Noutput(i) = Noutput(i) + 1_pInt
|
||||
constitutive_nonlocal_output(Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_nonlocal_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_nonlocal_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
case ('c/a_ratio','covera_ratio')
|
||||
CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
Cslip66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
Cslip66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
Cslip66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
Cslip66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
Cslip66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
Cslip66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
Cslip66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
Cslip66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
Cslip66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
Nslip(f,i) = IO_intValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosgledgepos0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglEdgePos0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosgledgeneg0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglEdgeNeg0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosglscrewpos0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglScrewPos0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhosglscrewneg0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoSglScrewNeg0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhodipedge0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoDipEdge0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('rhodipscrew0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
rhoDipScrew0(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('lambda0')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
lambda0PerSlipFamily(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case ('burgers')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
burgersPerSlipFamily(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('cutoffradius','r')
|
||||
cutoffRadius(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('minimumdipoleheightedge','ddipminedge')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
minDipoleHeightPerSlipFamily(f,1_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('minimumdipoleheightscrew','ddipminscrew')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
minDipoleHeightPerSlipFamily(f,2_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('atomicvolume')
|
||||
atomicVolume(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('selfdiffusionprefactor','dsd0')
|
||||
Dsd0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('selfdiffusionenergy','qsd')
|
||||
selfDiffusionEnergy(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('atol_rho','atol_density','absolutetolerancedensity','absolutetolerance_density')
|
||||
aTolRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('atol_shear','atol_plasticshear','atol_accumulatedshear','absolutetoleranceshear','absolutetolerance_shear')
|
||||
aTolShear(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('significantrho','significant_rho','significantdensity','significant_density')
|
||||
significantRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('significantn','significant_n','significantdislocations','significant_dislcations')
|
||||
significantN(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interaction_slipslip')
|
||||
do it = 1_pInt, Nchunks_SlipSlip
|
||||
interactionSlipSlip(it,i) = IO_floatValue(line,positions,1_pInt+it)
|
||||
enddo
|
||||
case('linetension','linetensioneffect','linetension_effect')
|
||||
linetensionEffect(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('edgejog','edgejogs','edgejogeffect','edgejog_effect')
|
||||
edgeJogFactor(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('peierlsstressedge','peierlsstress_edge')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
peierlsStressPerSlipFamily(f,1_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('peierlsstressscrew','peierlsstress_screw')
|
||||
do f = 1_pInt, Nchunks_SlipFamilies
|
||||
peierlsStressPerSlipFamily(f,2_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('doublekinkwidth')
|
||||
doublekinkwidth(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('solidsolutionenergy')
|
||||
solidSolutionEnergy(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('solidsolutionsize')
|
||||
solidSolutionSize(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('solidsolutionconcentration')
|
||||
solidSolutionConcentration(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('p')
|
||||
pParam(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('q')
|
||||
qParam(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('viscosity','glideviscosity')
|
||||
viscosity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('attackfrequency','fattack')
|
||||
fattack(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('rhosglscatter')
|
||||
rhoSglScatter(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('rhosglrandom')
|
||||
rhoSglRandom(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('rhosglrandombinning')
|
||||
rhoSglRandomBinning(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('surfacetransmissivity')
|
||||
surfaceTransmissivity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('grainboundarytransmissivity')
|
||||
grainboundaryTransmissivity(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('cflfactor')
|
||||
CFLfactor(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('fedgemultiplication','edgemultiplicationfactor','edgemultiplication')
|
||||
fEdgeMultiplication(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case('shortrangestresscorrection')
|
||||
shortRangeStressCorrection(i) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
|
||||
case ('nonschmid_coefficients')
|
||||
do f = 1_pInt, lattice_maxNonSchmid
|
||||
nonSchmidCoeff(f,i) = IO_floatValue(line,positions,1_pInt+f)
|
||||
enddo
|
||||
case('deadzonescaling','deadzone','deadscaling')
|
||||
deadZoneScaling(i) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
|
||||
case('probabilisticmultiplication','randomsources','randommultiplication','discretesources')
|
||||
probabilisticMultiplication(i) = IO_floatValue(line,positions,2_pInt) > 0.0_pReal
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//CONSTITUTIVE_NONLOCAL_LABEL//')')
|
||||
end select
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ subroutine constitutive_phenopowerlaw_init(myFile)
|
|||
integer(pInt), parameter :: MAXNCHUNKS = lattice_maxNinteraction + 1_pInt
|
||||
integer(pInt), dimension(1+2*MAXNCHUNKS) :: positions
|
||||
integer(pInt), dimension(6) :: configNchunks
|
||||
integer(pInt) :: section, maxNinstance, i,j,k, f,o, &
|
||||
integer(pInt) :: section = 0_pInt, maxNinstance, i,j,k, f,o, &
|
||||
Nchunks_SlipSlip, Nchunks_SlipTwin, Nchunks_TwinSlip, Nchunks_TwinTwin, &
|
||||
Nchunks_SlipFamilies, Nchunks_TwinFamilies, &
|
||||
mySize=0_pInt, myStructure, index_myFamily, index_otherFamily
|
||||
|
@ -239,7 +239,6 @@ subroutine constitutive_phenopowerlaw_init(myFile)
|
|||
constitutive_phenopowerlaw_nonSchmidCoeff = 0.0_pReal
|
||||
|
||||
rewind(myFile)
|
||||
section = 0_pInt
|
||||
|
||||
do while (IO_lc(IO_getTag(line,'<','>')) /= 'phase') ! wind forward to <phase>
|
||||
read(myFile,'(a1024)',END=100) line
|
||||
|
@ -253,124 +252,126 @@ subroutine constitutive_phenopowerlaw_init(myFile)
|
|||
section = section + 1_pInt ! advance section counter
|
||||
cycle ! skip to next line
|
||||
endif
|
||||
if (section > 0_pInt .and. phase_plasticity(section) == constitutive_phenopowerlaw_label) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,MAXNCHUNKS)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_phenopowerlaw_Noutput(i) = constitutive_phenopowerlaw_Noutput(i) + 1_pInt
|
||||
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(i),i) = &
|
||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_phenopowerlaw_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_phenopowerlaw_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_TwinFamilies = configNchunks(2)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
Nchunks_SlipTwin = configNchunks(4)
|
||||
Nchunks_TwinSlip = configNchunks(5)
|
||||
Nchunks_TwinTwin = configNchunks(6)
|
||||
case ('covera_ratio')
|
||||
constitutive_phenopowerlaw_CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
constitutive_phenopowerlaw_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_phenopowerlaw_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_phenopowerlaw_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_phenopowerlaw_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_phenopowerlaw_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_phenopowerlaw_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_phenopowerlaw_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_phenopowerlaw_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_phenopowerlaw_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_phenopowerlaw_Nslip(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('gdot0_slip')
|
||||
constitutive_phenopowerlaw_gdot0_slip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('n_slip')
|
||||
constitutive_phenopowerlaw_n_slip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tau0_slip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_phenopowerlaw_tau0_slip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('tausat_slip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_phenopowerlaw_tausat_slip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('a_slip', 'w0_slip')
|
||||
constitutive_phenopowerlaw_a_slip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('ntwin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_phenopowerlaw_Ntwin(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('gdot0_twin')
|
||||
constitutive_phenopowerlaw_gdot0_twin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('n_twin')
|
||||
constitutive_phenopowerlaw_n_twin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tau0_twin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_phenopowerlaw_tau0_twin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('s_pr')
|
||||
constitutive_phenopowerlaw_spr(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_b')
|
||||
constitutive_phenopowerlaw_twinB(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_c')
|
||||
constitutive_phenopowerlaw_twinC(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_d')
|
||||
constitutive_phenopowerlaw_twinD(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_e')
|
||||
constitutive_phenopowerlaw_twinE(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_slipslip')
|
||||
constitutive_phenopowerlaw_h0_SlipSlip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_sliptwin')
|
||||
constitutive_phenopowerlaw_h0_SlipTwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
call IO_warning(42_pInt,ext_msg=trim(tag)//' ('//constitutive_phenopowerlaw_label//')')
|
||||
case ('h0_twinslip')
|
||||
constitutive_phenopowerlaw_h0_TwinSlip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_twintwin')
|
||||
constitutive_phenopowerlaw_h0_TwinTwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_resistance')
|
||||
constitutive_phenopowerlaw_aTolResistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_shear')
|
||||
constitutive_phenopowerlaw_aTolShear(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_twinfrac')
|
||||
constitutive_phenopowerlaw_aTolTwinfrac(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interaction_slipslip')
|
||||
do j = 1_pInt, Nchunks_SlipSlip
|
||||
constitutive_phenopowerlaw_interaction_SlipSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_sliptwin')
|
||||
do j = 1_pInt, Nchunks_SlipTwin
|
||||
constitutive_phenopowerlaw_interaction_SlipTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twinslip')
|
||||
do j = 1_pInt, Nchunks_TwinSlip
|
||||
constitutive_phenopowerlaw_interaction_TwinSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twintwin')
|
||||
do j = 1_pInt, Nchunks_TwinTwin
|
||||
constitutive_phenopowerlaw_interaction_TwinTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('nonschmid_coefficients')
|
||||
do j = 1_pInt, lattice_maxNonSchmid
|
||||
constitutive_phenopowerlaw_nonSchmidCoeff(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_phenopowerlaw_label//')')
|
||||
end select
|
||||
if (section > 0_pInt ) then ! do not short-circuit here (.and. with next if statemen). It's not safe in Fortran
|
||||
if (phase_plasticity(section) == constitutive_phenopowerlaw_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,MAXNCHUNKS)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_phenopowerlaw_Noutput(i) = constitutive_phenopowerlaw_Noutput(i) + 1_pInt
|
||||
constitutive_phenopowerlaw_output(constitutive_phenopowerlaw_Noutput(i),i) = &
|
||||
IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_phenopowerlaw_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_phenopowerlaw_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_TwinFamilies = configNchunks(2)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
Nchunks_SlipTwin = configNchunks(4)
|
||||
Nchunks_TwinSlip = configNchunks(5)
|
||||
Nchunks_TwinTwin = configNchunks(6)
|
||||
case ('covera_ratio')
|
||||
constitutive_phenopowerlaw_CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
constitutive_phenopowerlaw_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_phenopowerlaw_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_phenopowerlaw_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_phenopowerlaw_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_phenopowerlaw_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_phenopowerlaw_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_phenopowerlaw_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_phenopowerlaw_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_phenopowerlaw_Cslip_66(6,6,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_phenopowerlaw_Nslip(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('gdot0_slip')
|
||||
constitutive_phenopowerlaw_gdot0_slip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('n_slip')
|
||||
constitutive_phenopowerlaw_n_slip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tau0_slip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_phenopowerlaw_tau0_slip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('tausat_slip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_phenopowerlaw_tausat_slip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('a_slip', 'w0_slip')
|
||||
constitutive_phenopowerlaw_a_slip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('ntwin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_phenopowerlaw_Ntwin(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('gdot0_twin')
|
||||
constitutive_phenopowerlaw_gdot0_twin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('n_twin')
|
||||
constitutive_phenopowerlaw_n_twin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('tau0_twin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_phenopowerlaw_tau0_twin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('s_pr')
|
||||
constitutive_phenopowerlaw_spr(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_b')
|
||||
constitutive_phenopowerlaw_twinB(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_c')
|
||||
constitutive_phenopowerlaw_twinC(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_d')
|
||||
constitutive_phenopowerlaw_twinD(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twin_e')
|
||||
constitutive_phenopowerlaw_twinE(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_slipslip')
|
||||
constitutive_phenopowerlaw_h0_SlipSlip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_sliptwin')
|
||||
constitutive_phenopowerlaw_h0_SlipTwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
call IO_warning(42_pInt,ext_msg=trim(tag)//' ('//constitutive_phenopowerlaw_label//')')
|
||||
case ('h0_twinslip')
|
||||
constitutive_phenopowerlaw_h0_TwinSlip(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('h0_twintwin')
|
||||
constitutive_phenopowerlaw_h0_TwinTwin(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_resistance')
|
||||
constitutive_phenopowerlaw_aTolResistance(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_shear')
|
||||
constitutive_phenopowerlaw_aTolShear(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_twinfrac')
|
||||
constitutive_phenopowerlaw_aTolTwinfrac(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interaction_slipslip')
|
||||
do j = 1_pInt, Nchunks_SlipSlip
|
||||
constitutive_phenopowerlaw_interaction_SlipSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_sliptwin')
|
||||
do j = 1_pInt, Nchunks_SlipTwin
|
||||
constitutive_phenopowerlaw_interaction_SlipTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twinslip')
|
||||
do j = 1_pInt, Nchunks_TwinSlip
|
||||
constitutive_phenopowerlaw_interaction_TwinSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interaction_twintwin')
|
||||
do j = 1_pInt, Nchunks_TwinTwin
|
||||
constitutive_phenopowerlaw_interaction_TwinTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('nonschmid_coefficients')
|
||||
do j = 1_pInt, lattice_maxNonSchmid
|
||||
constitutive_phenopowerlaw_nonSchmidCoeff(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_phenopowerlaw_label//')')
|
||||
end select
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ integer(pInt), intent(in) :: file
|
|||
integer(pInt), parameter :: maxNchunks = 21_pInt
|
||||
integer(pInt), dimension(1_pInt+2_pInt*maxNchunks) :: positions
|
||||
integer(pInt), dimension(6) :: configNchunks
|
||||
integer(pInt) :: section,f,i,j,k,l,m,n,o,p,q,r,s,s1,s2,t,t1,t2,ns,nt,&
|
||||
integer(pInt) :: section = 0_pInt,f,i,j,k,l,m,n,o,p,q,r,s,s1,s2,t,t1,t2,ns,nt,&
|
||||
Nchunks_SlipSlip, Nchunks_SlipTwin, Nchunks_TwinSlip, Nchunks_TwinTwin, &
|
||||
Nchunks_SlipFamilies, Nchunks_TwinFamilies, &
|
||||
mySize,myStructure,maxTotalNslip,maxTotalNtwin
|
||||
|
@ -414,8 +414,6 @@ allocate(constitutive_titanmod_interactionTwinTwin(lattice_maxNinteraction,maxNi
|
|||
|
||||
!* Read data from material.config file
|
||||
rewind(file)
|
||||
line = ''
|
||||
section = 0_pInt
|
||||
|
||||
do while (IO_lc(IO_getTag(line,'<','>')) /= 'phase') ! wind forward to <phase>
|
||||
read(file,'(a1024)',END=100) line
|
||||
|
@ -429,202 +427,204 @@ enddo
|
|||
section = section + 1_pInt ! advance section counter
|
||||
cycle ! skip to next line
|
||||
endif
|
||||
if (section > 0_pInt .and. phase_plasticity(section) == constitutive_titanmod_label) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_titanmod_Noutput(i) = constitutive_titanmod_Noutput(i) + 1_pInt
|
||||
constitutive_titanmod_output(constitutive_titanmod_Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_titanmod_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_titanmod_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_TwinFamilies = configNchunks(2)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
Nchunks_SlipTwin = configNchunks(4)
|
||||
Nchunks_TwinSlip = configNchunks(5)
|
||||
Nchunks_TwinTwin = configNchunks(6)
|
||||
case ('covera_ratio')
|
||||
constitutive_titanmod_CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
constitutive_titanmod_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_titanmod_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_titanmod_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_titanmod_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_titanmod_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_titanmod_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_titanmod_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_titanmod_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_titanmod_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('debyefrequency')
|
||||
constitutive_titanmod_debyefrequency(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('kinkf0')
|
||||
constitutive_titanmod_kinkf0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_Nslip(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ntwin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_Ntwin(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rho_edge0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_rho_edge0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rho_screw0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_rho_screw0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('slipburgers')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_burgersPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinburgers')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_burgersPerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('f0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_f0_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinf0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinf0_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('tau0e')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_tau0e_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twintau0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twintau0_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('tau0s')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_tau0s_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('capre')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_capre_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('caprs')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_caprs_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('v0e')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_v0e_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twingamma0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twingamma0_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('v0s')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_v0s_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('kinkcriticallength')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_kinkcriticallength_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinsize')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinsizePerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('celambdaslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_CeLambdaSlipPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinlambdaslip')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinlambdaslipPerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('cslambdaslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_CsLambdaSlipPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('grainsize')
|
||||
constitutive_titanmod_GrainSize(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('maxtwinfraction')
|
||||
constitutive_titanmod_MaxTwinFraction(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('pe')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_pe_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinp')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinp_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ps')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_ps_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('qe')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_qe_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinq')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinq_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('qs')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_qs_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinshearconstant')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinshearconstant_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('dc')
|
||||
constitutive_titanmod_dc(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twinhpconstant')
|
||||
constitutive_titanmod_twinhpconstant(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_rho')
|
||||
constitutive_titanmod_aTolRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interactionslipslip')
|
||||
do j = 1_pInt, Nchunks_SlipSlip
|
||||
constitutive_titanmod_interactionSlipSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactionee')
|
||||
do j = 1_pInt, lattice_maxNinteraction
|
||||
constitutive_titanmod_interaction_ee(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactionss')
|
||||
do j = 1_pInt, lattice_maxNinteraction
|
||||
constitutive_titanmod_interaction_ss(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactiones')
|
||||
do j = 1_pInt, lattice_maxNinteraction
|
||||
constitutive_titanmod_interaction_es(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactionsliptwin')
|
||||
do j = 1_pInt, Nchunks_SlipTwin
|
||||
constitutive_titanmod_interactionSlipTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactiontwinslip')
|
||||
do j = 1_pInt, Nchunks_TwinSlip
|
||||
constitutive_titanmod_interactionTwinSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactiontwintwin')
|
||||
do j = 1_pInt, Nchunks_TwinTwin
|
||||
constitutive_titanmod_interactionTwinTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_titanmod_label//')')
|
||||
end select
|
||||
if (section > 0_pInt ) then ! do not short-circuit here (.and. with next if statemen). It's not safe in Fortran
|
||||
if (phase_plasticity(section) == constitutive_titanmod_LABEL) then ! one of my sections
|
||||
i = phase_plasticityInstance(section) ! which instance of my plasticity is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key
|
||||
select case(tag)
|
||||
case ('plasticity','elasticity')
|
||||
cycle
|
||||
case ('(output)')
|
||||
constitutive_titanmod_Noutput(i) = constitutive_titanmod_Noutput(i) + 1_pInt
|
||||
constitutive_titanmod_output(constitutive_titanmod_Noutput(i),i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
case ('lattice_structure')
|
||||
constitutive_titanmod_structureName(i) = IO_lc(IO_stringValue(line,positions,2_pInt))
|
||||
configNchunks = lattice_configNchunks(constitutive_titanmod_structureName(i))
|
||||
Nchunks_SlipFamilies = configNchunks(1)
|
||||
Nchunks_TwinFamilies = configNchunks(2)
|
||||
Nchunks_SlipSlip = configNchunks(3)
|
||||
Nchunks_SlipTwin = configNchunks(4)
|
||||
Nchunks_TwinSlip = configNchunks(5)
|
||||
Nchunks_TwinTwin = configNchunks(6)
|
||||
case ('covera_ratio')
|
||||
constitutive_titanmod_CoverA(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c11')
|
||||
constitutive_titanmod_Cslip_66(1,1,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c12')
|
||||
constitutive_titanmod_Cslip_66(1,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c13')
|
||||
constitutive_titanmod_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c22')
|
||||
constitutive_titanmod_Cslip_66(2,2,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c23')
|
||||
constitutive_titanmod_Cslip_66(2,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c33')
|
||||
constitutive_titanmod_Cslip_66(3,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c44')
|
||||
constitutive_titanmod_Cslip_66(4,4,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c55')
|
||||
constitutive_titanmod_Cslip_66(5,5,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('c66')
|
||||
constitutive_titanmod_Cslip_66(1,3,i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('debyefrequency')
|
||||
constitutive_titanmod_debyefrequency(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('kinkf0')
|
||||
constitutive_titanmod_kinkf0(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('nslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_Nslip(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ntwin')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_Ntwin(j,i) = IO_intValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rho_edge0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_rho_edge0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('rho_screw0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_rho_screw0(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('slipburgers')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_burgersPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinburgers')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_burgersPerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('f0')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_f0_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinf0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinf0_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('tau0e')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_tau0e_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twintau0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twintau0_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('tau0s')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_tau0s_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('capre')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_capre_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('caprs')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_caprs_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('v0e')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_v0e_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twingamma0')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twingamma0_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('v0s')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_v0s_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('kinkcriticallength')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_kinkcriticallength_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinsize')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinsizePerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('celambdaslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_CeLambdaSlipPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinlambdaslip')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinlambdaslipPerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('cslambdaslip')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_CsLambdaSlipPerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('grainsize')
|
||||
constitutive_titanmod_GrainSize(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('maxtwinfraction')
|
||||
constitutive_titanmod_MaxTwinFraction(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('pe')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_pe_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinp')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinp_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('ps')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_ps_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('qe')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_qe_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinq')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinq_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('qs')
|
||||
do j = 1_pInt, Nchunks_SlipFamilies
|
||||
constitutive_titanmod_qs_PerSlipFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('twinshearconstant')
|
||||
do j = 1_pInt, Nchunks_TwinFamilies
|
||||
constitutive_titanmod_twinshearconstant_PerTwinFamily(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('dc')
|
||||
constitutive_titanmod_dc(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('twinhpconstant')
|
||||
constitutive_titanmod_twinhpconstant(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('atol_rho')
|
||||
constitutive_titanmod_aTolRho(i) = IO_floatValue(line,positions,2_pInt)
|
||||
case ('interactionslipslip')
|
||||
do j = 1_pInt, Nchunks_SlipSlip
|
||||
constitutive_titanmod_interactionSlipSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactionee')
|
||||
do j = 1_pInt, lattice_maxNinteraction
|
||||
constitutive_titanmod_interaction_ee(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactionss')
|
||||
do j = 1_pInt, lattice_maxNinteraction
|
||||
constitutive_titanmod_interaction_ss(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactiones')
|
||||
do j = 1_pInt, lattice_maxNinteraction
|
||||
constitutive_titanmod_interaction_es(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactionsliptwin')
|
||||
do j = 1_pInt, Nchunks_SlipTwin
|
||||
constitutive_titanmod_interactionSlipTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactiontwinslip')
|
||||
do j = 1_pInt, Nchunks_TwinSlip
|
||||
constitutive_titanmod_interactionTwinSlip(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case ('interactiontwintwin')
|
||||
do j = 1_pInt, Nchunks_TwinTwin
|
||||
constitutive_titanmod_interactionTwinTwin(j,i) = IO_floatValue(line,positions,1_pInt+j)
|
||||
enddo
|
||||
case default
|
||||
call IO_error(210_pInt,ext_msg=tag//' ('//constitutive_titanmod_label//')')
|
||||
end select
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
|
Loading…
Reference in New Issue