diff --git a/src/regolith/regolith_melt_glass.f90 b/src/regolith/regolith_melt_glass.f90 index b6895256..5caa511a 100644 --- a/src/regolith/regolith_melt_glass.f90 +++ b/src/regolith/regolith_melt_glass.f90 @@ -146,9 +146,9 @@ subroutine regolith_melt_glass(user,crater,domain,age,age_resolution,ebh,rm,erad melt = volm1 newlayer%meltvolume = melt newlayer%totvolume = volm1 - newlayer%meltfrac = 1.0 + newlayer%meltfrac = 1.0_DP newlayer%ejm = melt - newlayer%ejmf = 1.0 + newlayer%ejmf = 1.0_DP xmints = rints else if (eradi > rints) then depthb = crater%imp / 2.0 diff --git a/src/regolith/regolith_streamtube.f90 b/src/regolith/regolith_streamtube.f90 index 66452722..4ff9bcb5 100644 --- a/src/regolith/regolith_streamtube.f90 +++ b/src/regolith/regolith_streamtube.f90 @@ -317,8 +317,10 @@ subroutine regolith_streamtube(user,surf,crater,domain,ejb,ejtble,xp,yp,xpi,ypi, newlayer%comp = min(totmare/tots, 1.0_DP) newlayer%age(:) = newlayer%age(:) + age_collector(:) newlayer%age(:) = newlayer%age(:) * min( (ebh * user%pix**2) / tots, 1.0_DP) - newlayer%meltvolume = newlayer%meltvolume + meltinejecta - newlayer%meltfrac = newlayer%meltvolume / newlayer%totvolume + if (newlayer%ejmf < 1.0_DP) then + newlayer%meltvolume = newlayer%meltvolume + meltinejecta + newlayer%meltfrac = newlayer%meltvolume / newlayer%totvolume + end if if (newlayer%meltfrac > 1.0_DP) then write(*,*) "Melt fraction >1! (Traverse)", xpi,ypi,crater%timestamp,crater%fcrat,crater%xlpx,crater%ylpx,& newlayer%meltvolume, newlayer%totvolume, newlayer%ejm, newlayer%ejmf, totvol diff --git a/src/regolith/regolith_subpixel_streamtube.f90 b/src/regolith/regolith_subpixel_streamtube.f90 index f9566a1d..48770072 100644 --- a/src/regolith/regolith_subpixel_streamtube.f90 +++ b/src/regolith/regolith_subpixel_streamtube.f90 @@ -100,6 +100,8 @@ subroutine regolith_subpixel_streamtube(user,surfi,deltar,ri,rip1,eradi,newlayer vsgly2 = 0.0_DP meltinejecta = 0.0_DP totvol = 0.0_DP + mvl = 0.0_DP + mvr = 0.0_DP ! Two cases: subpixel is inside the first layer, and its volume is simply the landing ejecta blanket. if (zend>=zmax) then