diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index c72254ca9..cadda571f 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -371,7 +371,7 @@ module subroutine fraggle_generate_vel_vec(collider, lfailure) class(collision_fraggle), intent(inout) :: collider !! Fraggle collision system object logical, intent(out) :: lfailure !! Did the velocity computation fail? ! Internals - integer(I4B) :: i, j, loop, try, istart, n, ndof + integer(I4B) :: i, j, loop, try, istart, n, ndof, nfrag logical :: lhitandrun, lsupercat real(DP), dimension(NDIM) :: vimp_unit, rimp, vrot, Lresidual, vshear, vunit real(DP) :: vmag, vesc, rotmag, E_residual, ke_per_dof, ke_tot, E_residual_min @@ -382,7 +382,8 @@ module subroutine fraggle_generate_vel_vec(collider, lfailure) real(DP), parameter :: TOL = 1e-6 class(collision_fragments(:)), allocatable :: fragments - associate(impactors => collider%impactors, nfrag => collider%fragments%nbody) + associate(impactors => collider%impactors) + nfrag = collider%fragments%nbody lhitandrun = (impactors%regime == COLLRESOLVE_REGIME_HIT_AND_RUN) lsupercat = (impactors%regime == COLLRESOLVE_REGIME_SUPERCATASTROPHIC) diff --git a/src/fraggle/fraggle_util.f90 b/src/fraggle/fraggle_util.f90 index caf72fbd3..ffe57632f 100644 --- a/src/fraggle/fraggle_util.f90 +++ b/src/fraggle/fraggle_util.f90 @@ -260,8 +260,8 @@ module subroutine fraggle_util_set_natural_scale_factors(self) impactors%Gmass(:) = impactors%Gmass(:) / (collider%dscale**3/collider%tscale**2) impactors%Mcb = impactors%Mcb / collider%mscale impactors%radius(:) = impactors%radius(:) / collider%dscale - impactors%L_spin(:,:) = impactors%L_spin(:,:) / collider%Lscale - impactors%L_orbit(:,:) = impactors%L_orbit(:,:) / collider%Lscale + impactors%L_spin(:,:) = impactors%L_spin(:,:) / collider%Lscale + impactors%L_orbit(:,:) = impactors%L_orbit(:,:) / collider%Lscale do concurrent(i = 1:2) impactors%rot(:,i) = impactors%L_spin(:,i) / (impactors%mass(i) * impactors%radius(i)**2 * impactors%Ip(3,i)) @@ -309,8 +309,8 @@ module subroutine fraggle_util_set_original_scale_factors(self) impactors%vb = impactors%vb * collider%vscale impactors%rc = impactors%rc * collider%dscale impactors%vc = impactors%vc * collider%vscale - impactors%L_spin = impactors%L_spin * collider%Lscale - impactors%L_orbit = impactors%L_orbit * collider%Lscale + impactors%L_spin = impactors%L_spin * collider%Lscale + impactors%L_orbit = impactors%L_orbit * collider%Lscale do concurrent(i = 1:2) impactors%rot(:,i) = impactors%L_spin(:,i) * (impactors%mass(i) * impactors%radius(i)**2 * impactors%Ip(3,i)) end do @@ -329,12 +329,12 @@ module subroutine fraggle_util_set_original_scale_factors(self) collider%L_orbit(:,:) = collider%L_orbit(:,:) * collider%Lscale collider%L_spin(:,:) = collider%L_spin(:,:) * collider%Lscale - collider%L_total(:,:) = collider%L_total(:,:) * collider%Lscale - collider%ke_orbit(:) = collider%ke_orbit(:) * collider%Escale - collider%ke_spin(:) = collider%ke_spin(:) * collider%Escale - collider%pe(:) = collider%pe(:) * collider%Escale - collider%be(:) = collider%be(:) * collider%Escale - collider%te(:) = collider%te(:) * collider%Escale + collider%L_total(:,:) = collider%L_total(:,:) * collider%Lscale + collider%ke_orbit(:) = collider%ke_orbit(:) * collider%Escale + collider%ke_spin(:) = collider%ke_spin(:) * collider%Escale + collider%pe(:) = collider%pe(:) * collider%Escale + collider%be(:) = collider%be(:) * collider%Escale + collider%te(:) = collider%te(:) * collider%Escale collider%mscale = 1.0_DP collider%dscale = 1.0_DP