@@ -742,25 +742,31 @@ subroutine set_grid_minmax(&
742742 ! use given if it isn't = 101
743743 use_given_xmin = abs (given_xmin + 101.0 ) > 1e-6
744744 if (xaxis_by == ' mass' .and. given_xmin < 0 .and. use_given_xmin) then
745- xmin = maxval (xvec(1 :nz)) + given_xmin
745+ xmin = maxval (xvec(1 :nz), mask = .not. is_bad(xvec( 1 :nz)) ) + given_xmin
746746 else if (use_given_xmin) then
747747 xmin = given_xmin
748748 else if (xaxis_by == ' logxm' .or. xaxis_by == ' logxq' ) then
749- xmin = minval (xvec(2 :nz))
749+ xmin = minval (xvec(2 :nz), mask = .not. is_bad(xvec( 2 :nz)) )
750750 else
751- xmin = minval (xvec(1 :nz))
751+ xmin = minval (xvec(1 :nz), mask = .not. is_bad(xvec( 1 :nz)) )
752752 end if
753753
754754 use_given_xmax = abs (given_xmax + 101.0 ) > 1e-6
755755 if (xaxis_by == ' mass' .and. given_xmax < 0 .and. use_given_xmax) then
756- xmax = maxval (xvec(1 :nz)) + given_xmax
756+ xmax = maxval (xvec(1 :nz), mask = .not. is_bad(xvec( 1 :nz)) ) + given_xmax
757757 else if (use_given_xmax) then
758758 xmax = given_xmax
759759 else
760- xmax = maxval (xvec(1 :nz))
760+ xmax = maxval (xvec(1 :nz), mask = .not. is_bad(xvec( 1 :nz)) )
761761 end if
762762 dx = xmax - xmin
763763
764+ if (is_bad(dx)) then
765+ xmax = given_xmax
766+ xmin = given_xmin
767+ dx = xmax - xmin
768+ end if
769+
764770 if (.not. use_given_xmin) xmin = xmin - margin * dx
765771 if (.not. use_given_xmax) xmax = xmax + margin * dx
766772
@@ -854,17 +860,23 @@ subroutine set_ytop_ybot(&
854860 if (use_given_ymin) then
855861 ymin = given_ymin
856862 else
857- ymin = minval (yvec(1 :npts))
863+ ymin = minval (yvec(1 :npts), mask = .not. is_bad(yvec( 1 :npts)) )
858864 end if
859865
860866 use_given_ymax = abs (given_ymax + 101.0 ) > 1e-6
861867 if (use_given_ymax) then
862868 ymax = given_ymax
863869 else
864- ymax = maxval (yvec(1 :npts))
870+ ymax = maxval (yvec(1 :npts), mask = .not. is_bad(yvec( 1 :npts)) )
865871 end if
866872 dy = ymax - ymin
867873
874+ if (is_bad(dy)) then
875+ ymax = given_ymax
876+ ymin = given_ymin
877+ dy = ymax - ymin
878+ end if
879+
868880 if (.not. use_given_ymin) ymin = ymin - ymargin * dy
869881 if (.not. use_given_ymax) ymax = ymax + ymargin * dy
870882
0 commit comments