diff --git a/binary/work/inlist_project b/binary/work/inlist_project index c135a4e5e..9a9b67712 100644 --- a/binary/work/inlist_project +++ b/binary/work/inlist_project @@ -1,6 +1,6 @@ &binary_job - inlist_names(1) = 'inlist1' + inlist_names(1) = 'inlist1' inlist_names(2) = 'inlist2' evolve_both_stars = .false. @@ -19,3 +19,7 @@ max_tries_to_achieve = 20 / ! end of binary_controls namelist + +&pgbinary + +/ ! end of pgbinary namelist diff --git a/star/private/pgstar_support.f90 b/star/private/pgstar_support.f90 index 232dada2b..e32f0eb1d 100644 --- a/star/private/pgstar_support.f90 +++ b/star/private/pgstar_support.f90 @@ -742,25 +742,31 @@ subroutine set_grid_minmax(& ! use given if it isn't = 101 use_given_xmin = abs(given_xmin + 101.0) > 1e-6 if (xaxis_by == 'mass' .and. given_xmin < 0 .and. use_given_xmin) then - xmin = maxval(xvec(1:nz)) + given_xmin + xmin = maxval(xvec(1:nz), mask=.not. is_bad(xvec(1:nz))) + given_xmin else if (use_given_xmin) then xmin = given_xmin else if (xaxis_by == 'logxm' .or. xaxis_by == 'logxq') then - xmin = minval(xvec(2:nz)) + xmin = minval(xvec(2:nz), mask=.not. is_bad(xvec(2:nz))) else - xmin = minval(xvec(1:nz)) + xmin = minval(xvec(1:nz), mask=.not. is_bad(xvec(1:nz))) end if use_given_xmax = abs(given_xmax + 101.0) > 1e-6 if (xaxis_by == 'mass' .and. given_xmax < 0 .and. use_given_xmax) then - xmax = maxval(xvec(1:nz)) + given_xmax + xmax = maxval(xvec(1:nz), mask=.not. is_bad(xvec(1:nz))) + given_xmax else if (use_given_xmax) then xmax = given_xmax else - xmax = maxval(xvec(1:nz)) + xmax = maxval(xvec(1:nz), mask=.not. is_bad(xvec(1:nz))) end if dx = xmax - xmin + if (is_bad(dx)) then + xmax = given_xmax + xmin = given_xmin + dx = xmax - xmin + end if + if (.not. use_given_xmin) xmin = xmin - margin * dx if (.not. use_given_xmax) xmax = xmax + margin * dx @@ -854,17 +860,23 @@ subroutine set_ytop_ybot(& if (use_given_ymin) then ymin = given_ymin else - ymin = minval(yvec(1:npts)) + ymin = minval(yvec(1:npts), mask=.not. is_bad(yvec(1:npts))) end if use_given_ymax = abs(given_ymax + 101.0) > 1e-6 if (use_given_ymax) then ymax = given_ymax else - ymax = maxval(yvec(1:npts)) + ymax = maxval(yvec(1:npts), mask=.not. is_bad(yvec(1:npts))) end if dy = ymax - ymin + if (is_bad(dy)) then + ymax = given_ymax + ymin = given_ymin + dy = ymax - ymin + end if + if (.not. use_given_ymin) ymin = ymin - ymargin * dy if (.not. use_given_ymax) ymax = ymax + ymargin * dy