diff --git a/code/plastic_dislotwin.f90 b/code/plastic_dislotwin.f90 index ccd9438bb..058750bc8 100644 --- a/code/plastic_dislotwin.f90 +++ b/code/plastic_dislotwin.f90 @@ -1871,16 +1871,17 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el) shear_trans = 0.0_pReal shearrate_trans = 0.0_pReal probrate_trans = 0.0_pReal -#ifdef TRANS j = 0_pInt do f = 1_pInt,lattice_maxNtransFamily ! loop over all trans families index_myFamily = sum(lattice_NtransSystem(1:f-1_pInt,ph)) ! at which index starts my family !* Projection of shear and shear rate on fault band (twin) systems - shear_trans = matmul(plastic_dislotwin_projectionMatrix_Trans(:,:,instance), & - plasticState(ph)%state(2_pInt*ns+1_pInt:3_pInt*ns, of)) This is not safe - shearrate_trans = matmul(plastic_dislotwin_projectionMatrix_Trans(:,:,instance), & - plasticState(ph)%dotState(2_pInt*ns+1_pInt:3_pInt*ns, of)) This is not safe + if (nr > 0_pInt .and. ns == nr) then + shear_trans = matmul(plastic_dislotwin_projectionMatrix_Trans(:,:,instance), & + plasticState(ph)%state(2_pInt*ns+1_pInt:3_pInt*ns, of)) + shearrate_trans = matmul(plastic_dislotwin_projectionMatrix_Trans(:,:,instance), & + plasticState(ph)%dotState(2_pInt*ns+1_pInt:3_pInt*ns, of)) + endif do i = 1_pInt,plastic_dislotwin_Ntrans(f,instance) ! process each (active) trans system in family j = j+1_pInt @@ -1930,7 +1931,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el) enddo enddo -#endif + end subroutine plastic_dislotwin_dotState