be lazy, use a function

This commit is contained in:
Martin Diehl 2018-11-27 19:28:00 +01:00
parent 01bc945579
commit 6c23e9feb8
1 changed files with 6 additions and 23 deletions

View File

@ -152,7 +152,8 @@ subroutine plastic_disloUCLA_init(fileUnit)
PLASTICITY_DISLOUCLA_label, & PLASTICITY_DISLOUCLA_label, &
PLASTICITY_DISLOUCLA_ID, & PLASTICITY_DISLOUCLA_ID, &
material_phase, & material_phase, &
plasticState plasticState, &
material_allocatePlasticState
use config, only: & use config, only: &
MATERIAL_partPhase MATERIAL_partPhase
use lattice use lattice
@ -486,29 +487,11 @@ subroutine plastic_disloUCLA_init(fileUnit)
+ int(size(['invLambdaSlip ',& + int(size(['invLambdaSlip ',&
'meanFreePathSlip ','tauSlipThreshold ']),pInt) * ns 'meanFreePathSlip ','tauSlipThreshold ']),pInt) * ns
plasticState(phase)%sizeState = sizeState call material_allocatePlasticState(phase,NofMyPhase,sizeState,sizeDotState,0_pInt, &
plasticState(phase)%sizeDotState = sizeDotState ns,0_pInt,0_pInt)
plasticState(phase)%sizeDeltaState = sizeDeltaState
plasticState(phase)%sizePostResults = plastic_disloUCLA_sizePostResults(instance) plasticState(phase)%sizePostResults = plastic_disloUCLA_sizePostResults(instance)
plasticState(phase)%nSlip = plastic_disloucla_totalNslip(instance)
plasticState(phase)%nTwin = 0_pInt
plasticState(phase)%nTrans= 0_pInt
allocate(plasticState(phase)%aTolState (sizeState), source=0.0_pReal)
allocate(plasticState(phase)%state0 (sizeState,NofMyPhase), source=0.0_pReal)
allocate(plasticState(phase)%partionedState0 (sizeState,NofMyPhase), source=0.0_pReal)
allocate(plasticState(phase)%subState0 (sizeState,NofMyPhase), source=0.0_pReal)
allocate(plasticState(phase)%state (sizeState,NofMyPhase), source=0.0_pReal)
allocate(plasticState(phase)%dotState (sizeDotState,NofMyPhase), source=0.0_pReal)
allocate(plasticState(phase)%deltaState (sizeDeltaState,NofMyPhase), source=0.0_pReal)
if (any(numerics_integrator == 1_pInt)) then
allocate(plasticState(phase)%previousDotState (sizeDotState,NofMyPhase), source=0.0_pReal)
allocate(plasticState(phase)%previousDotState2 (sizeDotState,NofMyPhase), source=0.0_pReal)
endif
if (any(numerics_integrator == 4_pInt)) &
allocate(plasticState(phase)%RK4dotState (sizeDotState,NofMyPhase), source=0.0_pReal)
if (any(numerics_integrator == 5_pInt)) &
allocate(plasticState(phase)%RKCK45dotState (6,sizeDotState,NofMyPhase),source=0.0_pReal)
offset_slip = 2_pInt*plasticState(phase)%nSlip offset_slip = 2_pInt*plasticState(phase)%nSlip
plasticState(phase)%slipRate => & plasticState(phase)%slipRate => &
plasticState(phase)%dotState(offset_slip+1:offset_slip+plasticState(phase)%nSlip,1:NofMyPhase) plasticState(phase)%dotState(offset_slip+1:offset_slip+plasticState(phase)%nSlip,1:NofMyPhase)