-
There is no explicit mathematical update or transformation applied to psi_t within the loop. The Euler angles are initialized once and then simply passed through the state variables from one time step to the next.
(1) Initialization:
- For the first time step,
psi_t is initialized using values from the angle array, which are presumably read from an external file:
psi_t(1) = angle(nElement(km),1)*PI/180.0
psi_t(2) = angle(nElement(km),2)*PI/180.0
psi_t(3) = angle(nElement(km),3)*PI/180.0
(2) Reading from State Variables:
- For subsequent time steps,
psi_t is read from the stateOld array:
do i = 1,3
n = n + 1
psi_t(i) = stateOld(km,n)
end do
(3) Storing Back to State Variables:
- At the end of each loop iteration,
psi_t is stored back into the stateNew array:
do i = 1,3
n = n + 1
stateNew(km,n) = psi_t(i)
end do
-
The dir_cos matrix, as calculated in the subroutine, is not used after its computation. Instead, the dir_cos_0 matrix is used for transforming slip systems and rotating the elastic tensor.
The dir_cos matrix is calculated using the calc_Dir_Cos subroutine and then transformed using the rel_spin matrix:
call calc_Dir_Cos(psi_t, dir_cos_0)
call aa_dot_bb(3, dir_cos_0, rel_spin, dir_cos)
- The xs and xm arrays are calculated but not used in any subsequent operations or calculations within the provided subroutine.
The xs and xm arrays are calculated using the calc_Rot_Slip and calc_Rot_Norm subroutines:
call calc_Rot_Slip(xs0, xs, F_el_0, num_slip_sys)
call calc_Rot_Norm(xm0, xm, F_el_inv_0, num_slip_sys)