LCOV - code coverage report
Current view: top level - star/private - pgstar_full.f90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 1.0 % 1305 13
Test Date: 2026-11-11 22:04:34 Functions: 11.1 % 18 2

            Line data    Source code
       1              : ! ***********************************************************************
       2              : !
       3              : !   Copyright (C) 2010-2019  The MESA Team
       4              : !
       5              : !   This program is free software: you can redistribute it and/or modify
       6              : !   it under the terms of the GNU Lesser General Public License
       7              : !   as published by the Free Software Foundation,
       8              : !   either version 3 of the License, or (at your option) any later version.
       9              : !
      10              : !   This program is distributed in the hope that it will be useful,
      11              : !   but WITHOUT ANY WARRANTY; without even the implied warranty of
      12              : !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      13              : !   See the GNU Lesser General Public License for more details.
      14              : !
      15              : !   You should have received a copy of the GNU Lesser General Public License
      16              : !   along with this program. If not, see <https://www.gnu.org/licenses/>.
      17              : !
      18              : ! ***********************************************************************
      19              : 
      20              : module pgstar
      21              : 
      22              :    use star_private_def
      23              :    use const_def, only: dp
      24              :    use chem_def, only: category_name
      25              :    use rates_def, only: i_rate
      26              :    use pgstar_support
      27              :    use star_pgstar
      28              : 
      29              :    implicit none
      30              : 
      31              : contains
      32              : 
      33            0 :    subroutine do_create_file_name(s, dir, prefix, name)
      34              :       use pgstar_support, only: create_file_name
      35              :       type (star_info), pointer :: s
      36              :       character (len = *), intent(in) :: dir, prefix
      37              :       character (len = *), intent(out) :: name
      38            0 :       call create_file_name(s, dir, prefix, name)
      39            0 :    end subroutine do_create_file_name
      40              : 
      41              : 
      42            0 :    subroutine do_write_plot_to_file(s, p, filename, ierr)
      43              :       use star_def, only: star_info
      44              :       use pgstar_support, only: write_plot_to_file
      45              :       type (star_info), pointer :: s
      46              :       type (pgstar_win_file_data), pointer :: p
      47              :       character (len = *), intent(in) :: filename
      48              :       integer, intent(out) :: ierr
      49            0 :       call write_plot_to_file(s, p, filename, ierr)
      50            0 :    end subroutine do_write_plot_to_file
      51              : 
      52              : 
      53            0 :    subroutine do_show_pgstar_annotations(&
      54              :       s, show_annotation1, show_annotation2, show_annotation3)
      55              :       use pgstar_support, only: show_annotations
      56              :       type (star_info), pointer :: s
      57              :       logical, intent(in) :: &
      58              :          show_annotation1, show_annotation2, show_annotation3
      59              :       call show_annotations(&
      60            0 :          s, show_annotation1, show_annotation2, show_annotation3)
      61            0 :    end subroutine do_show_pgstar_annotations
      62              : 
      63              : 
      64            1 :    subroutine do_start_new_run_for_pgstar(s, ierr)  ! reset logs
      65              :       use utils_lib
      66              :       type (star_info), pointer :: s
      67              :       integer, intent(out) :: ierr
      68              :       integer :: iounit
      69              :       character (len = strlen) :: fname
      70              :       logical :: fexist
      71            1 :       ierr = 0
      72            1 :       if(.not. folder_exists(trim(s% log_directory))) call mkdir(trim(s% log_directory))
      73            1 :       fname = trim(s% log_directory) // '/pgstar.dat'
      74            1 :       inquire(file = trim(fname), exist = fexist)
      75            1 :       if (fexist) then
      76            0 :          open(newunit = iounit, file = trim(fname), status = 'replace', action = 'write')
      77            0 :          close(iounit)
      78              :       end if
      79            1 :       call pgstar_clear(s)
      80            1 :    end subroutine do_start_new_run_for_pgstar
      81              : 
      82              : 
      83            0 :    subroutine do_restart_run_for_pgstar(s, ierr)
      84              :       type (star_info), pointer :: s
      85              :       integer, intent(out) :: ierr
      86            0 :       ierr = 0
      87            0 :       if (.not. s% job% pgstar_flag) return
      88            0 :       call pgstar_clear(s)
      89            0 :       call read_pgstar_data(s, ierr)
      90            0 :       if (ierr /= 0) then
      91            0 :          write(*, *) 'failed in read_pgstar_data'
      92            0 :          ierr = 0
      93              :       end if
      94              :    end subroutine do_restart_run_for_pgstar
      95              : 
      96              : 
      97            0 :    subroutine do_read_pgstar_controls(s, inlist_fname, ierr)
      98              :       use pgstar_ctrls_io, only: read_pgstar
      99              :       type (star_info), pointer :: s
     100              :       character(*), intent(in) :: inlist_fname
     101              :       integer, intent(out) :: ierr
     102              :       ierr = 0
     103            0 :       call read_pgstar(s, inlist_fname, ierr)
     104            0 :       if (ierr /= 0) then
     105            0 :          write(*, *) 'PGSTAR failed in reading ' // trim(inlist_fname)
     106            0 :          return
     107              :       end if
     108            0 :       if (s% use_other_set_pgstar_controls) &
     109            0 :          call s% other_set_pgstar_controls(s% id)
     110            0 :       call set_win_file_data(s, ierr)
     111              :    end subroutine do_read_pgstar_controls
     112              : 
     113              : 
     114            0 :    subroutine set_win_file_data(s, ierr)
     115              :       use pgstar_kipp, only: Kipp_Plot
     116              :       use pgstar_rti, only: rti_Plot
     117              :       use pgstar_L_R, only: L_R_Plot
     118              :       use pgstar_L_v, only: L_v_Plot
     119              :       use pgstar_L_Teff, only: L_Teff_Plot
     120              :       use pgstar_logL_R, only: logL_R_Plot
     121              :       use pgstar_logL_v, only: logL_v_Plot
     122              :       use pgstar_logL_Teff, only: logL_Teff_Plot
     123              :       use pgstar_r_L, only: R_L_Plot
     124              :       use pgstar_r_Teff, only: R_Teff_Plot
     125              :       use pgstar_logg_Teff, only: logg_Teff_Plot
     126              :       use pgstar_logg_logT, only: logg_logT_Plot
     127              :       use pgstar_dPg_dnu, only: dPg_dnu_Plot
     128              :       use pgstar_hr, only: HR_Plot
     129              :       use pgstar_trho, only: TRho_Plot
     130              :       use pgstar_tmaxrho, only: TmaxRho_Plot
     131              :       use pgstar_dynamo, only: Dynamo_plot
     132              :       use pgstar_mixing_Ds, only: Mixing_plot
     133              :       use pgstar_trho_profile, only: TRho_Profile_plot
     134              :       use pgstar_power, only: power_plot
     135              :       use pgstar_mode_prop, only: mode_propagation_plot
     136              :       use pgstar_abundance, only: abundance_plot
     137              :       use pgstar_summary_burn, only: summary_burn_plot
     138              :       use pgstar_summary_profile, only: summary_profile_plot
     139              :       use pgstar_summary_history, only: summary_history_plot
     140              :       use pgstar_grid, only: &
     141              :          grid1_plot, grid2_plot, grid3_plot, grid4_plot, &
     142              :          grid5_plot, grid6_plot, grid7_plot, grid8_plot, grid9_plot
     143              :       use pgstar_summary, only: &
     144              :          Text_Summary1_Plot, Text_Summary2_Plot, Text_Summary3_Plot, &
     145              :          Text_Summary4_Plot, Text_Summary5_Plot, Text_Summary6_Plot, &
     146              :          Text_Summary7_Plot, Text_Summary8_Plot, Text_Summary9_Plot
     147              :       use pgstar_profile_panels, only: &
     148              :          Profile_Panels1_plot, Profile_Panels2_plot, Profile_Panels3_plot, &
     149              :          Profile_Panels4_plot, Profile_Panels5_plot, Profile_Panels6_plot, &
     150              :          Profile_Panels7_plot, Profile_Panels8_plot, Profile_Panels9_plot
     151              :       use pgstar_history_panels, only: &
     152              :          History_Panels1_plot, History_Panels2_plot, History_Panels3_plot, &
     153              :          History_Panels4_plot, History_Panels5_plot, History_Panels6_plot, &
     154              :          History_Panels7_plot, History_Panels8_plot, History_Panels9_plot
     155              :       use pgstar_hist_track, only: &
     156              :          History_Track1_plot, History_Track2_plot, History_Track3_plot, &
     157              :          History_Track4_plot, History_Track5_plot, History_Track6_plot, &
     158              :          History_Track7_plot, History_Track8_plot, History_Track9_plot
     159              :       use pgstar_network, only: Network_plot
     160              :       use pgstar_production, only: Production_plot
     161              :       use pgstar_Color_Magnitude, only: &
     162              :          Color_Magnitude1_plot, Color_Magnitude2_plot, Color_Magnitude3_plot, &
     163              :          Color_Magnitude4_plot, Color_Magnitude5_plot, Color_Magnitude6_plot, &
     164              :          Color_Magnitude7_plot, Color_Magnitude8_plot, Color_Magnitude9_plot
     165              :       use pgstar_equation_residuals, only: &
     166              :          Max_eq_resid_plot
     167              :       use pgstar_kipp_residuals, only: &
     168              :          Kipp_residuals_plot
     169              :       type (star_info), pointer :: s
     170              :       integer, intent(out) :: ierr
     171              : 
     172              :       type (pgstar_win_file_data), pointer :: p
     173              :       integer :: i
     174              : 
     175              :       ! store win and file info in records
     176              : 
     177            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary1)
     178            0 :       p% plot => Text_Summary1_Plot
     179            0 :       p% id = i_Text_Summary1
     180            0 :       p% name = 'Text_Summary1'
     181            0 :       p% win_flag = s% pg% Text_Summary1_win_flag
     182            0 :       p% win_width = s% pg% Text_Summary1_win_width
     183            0 :       p% win_aspect_ratio = s% pg% Text_Summary1_win_aspect_ratio
     184            0 :       p% file_flag = s% pg% Text_Summary1_file_flag
     185            0 :       p% file_dir = s% pg% Text_Summary1_file_dir
     186            0 :       p% file_prefix = s% pg% Text_Summary1_file_prefix
     187            0 :       p% file_interval = s% pg% Text_Summary1_file_interval
     188            0 :       p% file_width = s% pg% Text_Summary1_file_width
     189            0 :       p% file_aspect_ratio = s% pg% Text_Summary1_file_aspect_ratio
     190              : 
     191            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary2)
     192            0 :       p% plot => Text_Summary2_Plot
     193            0 :       p% id = i_Text_Summary2
     194            0 :       p% name = 'Text_Summary2'
     195            0 :       p% win_flag = s% pg% Text_Summary2_win_flag
     196            0 :       p% win_width = s% pg% Text_Summary2_win_width
     197            0 :       p% win_aspect_ratio = s% pg% Text_Summary2_win_aspect_ratio
     198            0 :       p% file_flag = s% pg% Text_Summary2_file_flag
     199            0 :       p% file_dir = s% pg% Text_Summary2_file_dir
     200            0 :       p% file_prefix = s% pg% Text_Summary2_file_prefix
     201            0 :       p% file_interval = s% pg% Text_Summary2_file_interval
     202            0 :       p% file_width = s% pg% Text_Summary2_file_width
     203            0 :       p% file_aspect_ratio = s% pg% Text_Summary2_file_aspect_ratio
     204              : 
     205            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary3)
     206            0 :       p% plot => Text_Summary3_Plot
     207            0 :       p% id = i_Text_Summary3
     208            0 :       p% name = 'Text_Summary3'
     209            0 :       p% win_flag = s% pg% Text_Summary3_win_flag
     210            0 :       p% win_width = s% pg% Text_Summary3_win_width
     211            0 :       p% win_aspect_ratio = s% pg% Text_Summary3_win_aspect_ratio
     212            0 :       p% file_flag = s% pg% Text_Summary3_file_flag
     213            0 :       p% file_dir = s% pg% Text_Summary3_file_dir
     214            0 :       p% file_prefix = s% pg% Text_Summary3_file_prefix
     215            0 :       p% file_interval = s% pg% Text_Summary3_file_interval
     216            0 :       p% file_width = s% pg% Text_Summary3_file_width
     217            0 :       p% file_aspect_ratio = s% pg% Text_Summary3_file_aspect_ratio
     218              : 
     219            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary4)
     220            0 :       p% plot => Text_Summary4_Plot
     221            0 :       p% id = i_Text_Summary4
     222            0 :       p% name = 'Text_Summary4'
     223            0 :       p% win_flag = s% pg% Text_Summary4_win_flag
     224            0 :       p% win_width = s% pg% Text_Summary4_win_width
     225            0 :       p% win_aspect_ratio = s% pg% Text_Summary4_win_aspect_ratio
     226            0 :       p% file_flag = s% pg% Text_Summary4_file_flag
     227            0 :       p% file_dir = s% pg% Text_Summary4_file_dir
     228            0 :       p% file_prefix = s% pg% Text_Summary4_file_prefix
     229            0 :       p% file_interval = s% pg% Text_Summary4_file_interval
     230            0 :       p% file_width = s% pg% Text_Summary4_file_width
     231            0 :       p% file_aspect_ratio = s% pg% Text_Summary4_file_aspect_ratio
     232              : 
     233            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary5)
     234            0 :       p% plot => Text_Summary5_Plot
     235            0 :       p% id = i_Text_Summary5
     236            0 :       p% name = 'Text_Summary5'
     237            0 :       p% win_flag = s% pg% Text_Summary5_win_flag
     238            0 :       p% win_width = s% pg% Text_Summary5_win_width
     239            0 :       p% win_aspect_ratio = s% pg% Text_Summary5_win_aspect_ratio
     240            0 :       p% file_flag = s% pg% Text_Summary5_file_flag
     241            0 :       p% file_dir = s% pg% Text_Summary5_file_dir
     242            0 :       p% file_prefix = s% pg% Text_Summary5_file_prefix
     243            0 :       p% file_interval = s% pg% Text_Summary5_file_interval
     244            0 :       p% file_width = s% pg% Text_Summary5_file_width
     245            0 :       p% file_aspect_ratio = s% pg% Text_Summary5_file_aspect_ratio
     246              : 
     247            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary6)
     248            0 :       p% plot => Text_Summary6_Plot
     249            0 :       p% id = i_Text_Summary6
     250            0 :       p% name = 'Text_Summary6'
     251            0 :       p% win_flag = s% pg% Text_Summary6_win_flag
     252            0 :       p% win_width = s% pg% Text_Summary6_win_width
     253            0 :       p% win_aspect_ratio = s% pg% Text_Summary6_win_aspect_ratio
     254            0 :       p% file_flag = s% pg% Text_Summary6_file_flag
     255            0 :       p% file_dir = s% pg% Text_Summary6_file_dir
     256            0 :       p% file_prefix = s% pg% Text_Summary6_file_prefix
     257            0 :       p% file_interval = s% pg% Text_Summary6_file_interval
     258            0 :       p% file_width = s% pg% Text_Summary6_file_width
     259            0 :       p% file_aspect_ratio = s% pg% Text_Summary6_file_aspect_ratio
     260              : 
     261            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary7)
     262            0 :       p% plot => Text_Summary7_Plot
     263            0 :       p% id = i_Text_Summary7
     264            0 :       p% name = 'Text_Summary7'
     265            0 :       p% win_flag = s% pg% Text_Summary7_win_flag
     266            0 :       p% win_width = s% pg% Text_Summary7_win_width
     267            0 :       p% win_aspect_ratio = s% pg% Text_Summary7_win_aspect_ratio
     268            0 :       p% file_flag = s% pg% Text_Summary7_file_flag
     269            0 :       p% file_dir = s% pg% Text_Summary7_file_dir
     270            0 :       p% file_prefix = s% pg% Text_Summary7_file_prefix
     271            0 :       p% file_interval = s% pg% Text_Summary7_file_interval
     272            0 :       p% file_width = s% pg% Text_Summary7_file_width
     273            0 :       p% file_aspect_ratio = s% pg% Text_Summary7_file_aspect_ratio
     274              : 
     275            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary8)
     276            0 :       p% plot => Text_Summary8_Plot
     277            0 :       p% id = i_Text_Summary8
     278            0 :       p% name = 'Text_Summary8'
     279            0 :       p% win_flag = s% pg% Text_Summary8_win_flag
     280            0 :       p% win_width = s% pg% Text_Summary8_win_width
     281            0 :       p% win_aspect_ratio = s% pg% Text_Summary8_win_aspect_ratio
     282            0 :       p% file_flag = s% pg% Text_Summary8_file_flag
     283            0 :       p% file_dir = s% pg% Text_Summary8_file_dir
     284            0 :       p% file_prefix = s% pg% Text_Summary8_file_prefix
     285            0 :       p% file_interval = s% pg% Text_Summary8_file_interval
     286            0 :       p% file_width = s% pg% Text_Summary8_file_width
     287            0 :       p% file_aspect_ratio = s% pg% Text_Summary8_file_aspect_ratio
     288              : 
     289            0 :       p => s% pg% pgstar_win_file_ptr(i_Text_Summary9)
     290            0 :       p% plot => Text_Summary9_Plot
     291            0 :       p% id = i_Text_Summary9
     292            0 :       p% name = 'Text_Summary9'
     293            0 :       p% win_flag = s% pg% Text_Summary9_win_flag
     294            0 :       p% win_width = s% pg% Text_Summary9_win_width
     295            0 :       p% win_aspect_ratio = s% pg% Text_Summary9_win_aspect_ratio
     296            0 :       p% file_flag = s% pg% Text_Summary9_file_flag
     297            0 :       p% file_dir = s% pg% Text_Summary9_file_dir
     298            0 :       p% file_prefix = s% pg% Text_Summary9_file_prefix
     299            0 :       p% file_interval = s% pg% Text_Summary9_file_interval
     300            0 :       p% file_width = s% pg% Text_Summary9_file_width
     301            0 :       p% file_aspect_ratio = s% pg% Text_Summary9_file_aspect_ratio
     302              : 
     303            0 :       p => s% pg% pgstar_win_file_ptr(i_TRho_Profile)
     304            0 :       p% plot => TRho_Profile_plot
     305            0 :       p% id = i_TRho_Profile
     306            0 :       p% name = 'TRho_Profile'
     307            0 :       p% win_flag = s% pg% TRho_Profile_win_flag
     308            0 :       p% win_width = s% pg% TRho_Profile_win_width
     309            0 :       p% win_aspect_ratio = s% pg% TRho_Profile_win_aspect_ratio
     310            0 :       p% file_flag = s% pg% TRho_Profile_file_flag
     311            0 :       p% file_dir = s% pg% TRho_Profile_file_dir
     312            0 :       p% file_prefix = s% pg% TRho_Profile_file_prefix
     313            0 :       p% file_interval = s% pg% TRho_Profile_file_interval
     314            0 :       p% file_width = s% pg% TRho_Profile_file_width
     315            0 :       p% file_aspect_ratio = s% pg% TRho_Profile_file_aspect_ratio
     316              : 
     317            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels1)
     318            0 :       p% plot => Profile_Panels1_plot
     319            0 :       p% id = i_Profile_Panels1
     320            0 :       p% name = 'Profile_Panels1'
     321            0 :       p% win_flag = s% pg% Profile_Panels1_win_flag
     322            0 :       p% win_width = s% pg% Profile_Panels1_win_width
     323            0 :       p% win_aspect_ratio = s% pg% Profile_Panels1_win_aspect_ratio
     324            0 :       p% file_flag = s% pg% Profile_Panels1_file_flag
     325            0 :       p% file_dir = s% pg% Profile_Panels1_file_dir
     326            0 :       p% file_prefix = s% pg% Profile_Panels1_file_prefix
     327            0 :       p% file_interval = s% pg% Profile_Panels1_file_interval
     328            0 :       p% file_width = s% pg% Profile_Panels1_file_width
     329            0 :       p% file_aspect_ratio = s% pg% Profile_Panels1_file_aspect_ratio
     330              : 
     331            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels2)
     332            0 :       p% plot => Profile_Panels2_plot
     333            0 :       p% id = i_Profile_Panels2
     334            0 :       p% name = 'Profile_Panels2'
     335            0 :       p% win_flag = s% pg% Profile_Panels2_win_flag
     336            0 :       p% win_width = s% pg% Profile_Panels2_win_width
     337            0 :       p% win_aspect_ratio = s% pg% Profile_Panels2_win_aspect_ratio
     338            0 :       p% file_flag = s% pg% Profile_Panels2_file_flag
     339            0 :       p% file_dir = s% pg% Profile_Panels2_file_dir
     340            0 :       p% file_prefix = s% pg% Profile_Panels2_file_prefix
     341            0 :       p% file_interval = s% pg% Profile_Panels2_file_interval
     342            0 :       p% file_width = s% pg% Profile_Panels2_file_width
     343            0 :       p% file_aspect_ratio = s% pg% Profile_Panels2_file_aspect_ratio
     344              : 
     345            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels3)
     346            0 :       p% plot => Profile_Panels3_plot
     347            0 :       p% id = i_Profile_Panels3
     348            0 :       p% name = 'Profile_Panels3'
     349            0 :       p% win_flag = s% pg% Profile_Panels3_win_flag
     350            0 :       p% win_width = s% pg% Profile_Panels3_win_width
     351            0 :       p% win_aspect_ratio = s% pg% Profile_Panels3_win_aspect_ratio
     352            0 :       p% file_flag = s% pg% Profile_Panels3_file_flag
     353            0 :       p% file_dir = s% pg% Profile_Panels3_file_dir
     354            0 :       p% file_prefix = s% pg% Profile_Panels3_file_prefix
     355            0 :       p% file_interval = s% pg% Profile_Panels3_file_interval
     356            0 :       p% file_width = s% pg% Profile_Panels3_file_width
     357            0 :       p% file_aspect_ratio = s% pg% Profile_Panels3_file_aspect_ratio
     358              : 
     359            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels4)
     360            0 :       p% plot => Profile_Panels4_plot
     361            0 :       p% id = i_Profile_Panels4
     362            0 :       p% name = 'Profile_Panels4'
     363            0 :       p% win_flag = s% pg% Profile_Panels4_win_flag
     364            0 :       p% win_width = s% pg% Profile_Panels4_win_width
     365            0 :       p% win_aspect_ratio = s% pg% Profile_Panels4_win_aspect_ratio
     366            0 :       p% file_flag = s% pg% Profile_Panels4_file_flag
     367            0 :       p% file_dir = s% pg% Profile_Panels4_file_dir
     368            0 :       p% file_prefix = s% pg% Profile_Panels4_file_prefix
     369            0 :       p% file_interval = s% pg% Profile_Panels4_file_interval
     370            0 :       p% file_width = s% pg% Profile_Panels4_file_width
     371            0 :       p% file_aspect_ratio = s% pg% Profile_Panels4_file_aspect_ratio
     372              : 
     373            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels5)
     374            0 :       p% plot => Profile_Panels5_plot
     375            0 :       p% id = i_Profile_Panels5
     376            0 :       p% name = 'Profile_Panels5'
     377            0 :       p% win_flag = s% pg% Profile_Panels5_win_flag
     378            0 :       p% win_width = s% pg% Profile_Panels5_win_width
     379            0 :       p% win_aspect_ratio = s% pg% Profile_Panels5_win_aspect_ratio
     380            0 :       p% file_flag = s% pg% Profile_Panels5_file_flag
     381            0 :       p% file_dir = s% pg% Profile_Panels5_file_dir
     382            0 :       p% file_prefix = s% pg% Profile_Panels5_file_prefix
     383            0 :       p% file_interval = s% pg% Profile_Panels5_file_interval
     384            0 :       p% file_width = s% pg% Profile_Panels5_file_width
     385            0 :       p% file_aspect_ratio = s% pg% Profile_Panels5_file_aspect_ratio
     386              : 
     387            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels6)
     388            0 :       p% plot => Profile_Panels6_plot
     389            0 :       p% id = i_Profile_Panels6
     390            0 :       p% name = 'Profile_Panels6'
     391            0 :       p% win_flag = s% pg% Profile_Panels6_win_flag
     392            0 :       p% win_width = s% pg% Profile_Panels6_win_width
     393            0 :       p% win_aspect_ratio = s% pg% Profile_Panels6_win_aspect_ratio
     394            0 :       p% file_flag = s% pg% Profile_Panels6_file_flag
     395            0 :       p% file_dir = s% pg% Profile_Panels6_file_dir
     396            0 :       p% file_prefix = s% pg% Profile_Panels6_file_prefix
     397            0 :       p% file_interval = s% pg% Profile_Panels6_file_interval
     398            0 :       p% file_width = s% pg% Profile_Panels6_file_width
     399            0 :       p% file_aspect_ratio = s% pg% Profile_Panels6_file_aspect_ratio
     400              : 
     401            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels7)
     402            0 :       p% plot => Profile_Panels7_plot
     403            0 :       p% id = i_Profile_Panels7
     404            0 :       p% name = 'Profile_Panels7'
     405            0 :       p% win_flag = s% pg% Profile_Panels7_win_flag
     406            0 :       p% win_width = s% pg% Profile_Panels7_win_width
     407            0 :       p% win_aspect_ratio = s% pg% Profile_Panels7_win_aspect_ratio
     408            0 :       p% file_flag = s% pg% Profile_Panels7_file_flag
     409            0 :       p% file_dir = s% pg% Profile_Panels7_file_dir
     410            0 :       p% file_prefix = s% pg% Profile_Panels7_file_prefix
     411            0 :       p% file_interval = s% pg% Profile_Panels7_file_interval
     412            0 :       p% file_width = s% pg% Profile_Panels7_file_width
     413            0 :       p% file_aspect_ratio = s% pg% Profile_Panels7_file_aspect_ratio
     414              : 
     415            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels8)
     416            0 :       p% plot => Profile_Panels8_plot
     417            0 :       p% id = i_Profile_Panels8
     418            0 :       p% name = 'Profile_Panels8'
     419            0 :       p% win_flag = s% pg% Profile_Panels8_win_flag
     420            0 :       p% win_width = s% pg% Profile_Panels8_win_width
     421            0 :       p% win_aspect_ratio = s% pg% Profile_Panels8_win_aspect_ratio
     422            0 :       p% file_flag = s% pg% Profile_Panels8_file_flag
     423            0 :       p% file_dir = s% pg% Profile_Panels8_file_dir
     424            0 :       p% file_prefix = s% pg% Profile_Panels8_file_prefix
     425            0 :       p% file_interval = s% pg% Profile_Panels8_file_interval
     426            0 :       p% file_width = s% pg% Profile_Panels8_file_width
     427            0 :       p% file_aspect_ratio = s% pg% Profile_Panels8_file_aspect_ratio
     428              : 
     429            0 :       p => s% pg% pgstar_win_file_ptr(i_Profile_Panels9)
     430            0 :       p% plot => Profile_Panels9_plot
     431            0 :       p% id = i_Profile_Panels9
     432            0 :       p% name = 'Profile_Panels9'
     433            0 :       p% win_flag = s% pg% Profile_Panels9_win_flag
     434            0 :       p% win_width = s% pg% Profile_Panels9_win_width
     435            0 :       p% win_aspect_ratio = s% pg% Profile_Panels9_win_aspect_ratio
     436            0 :       p% file_flag = s% pg% Profile_Panels9_file_flag
     437            0 :       p% file_dir = s% pg% Profile_Panels9_file_dir
     438            0 :       p% file_prefix = s% pg% Profile_Panels9_file_prefix
     439            0 :       p% file_interval = s% pg% Profile_Panels9_file_interval
     440            0 :       p% file_width = s% pg% Profile_Panels9_file_width
     441            0 :       p% file_aspect_ratio = s% pg% Profile_Panels9_file_aspect_ratio
     442              : 
     443            0 :       p => s% pg% pgstar_win_file_ptr(i_logg_Teff)
     444            0 :       p% plot => logg_Teff_Plot
     445            0 :       p% id = i_logg_Teff
     446            0 :       p% name = 'logg_Teff'
     447            0 :       p% win_flag = s% pg% logg_Teff_win_flag
     448            0 :       p% win_width = s% pg% logg_Teff_win_width
     449            0 :       p% win_aspect_ratio = s% pg% logg_Teff_win_aspect_ratio
     450            0 :       p% file_flag = s% pg% logg_Teff_file_flag
     451            0 :       p% file_dir = s% pg% logg_Teff_file_dir
     452            0 :       p% file_prefix = s% pg% logg_Teff_file_prefix
     453            0 :       p% file_interval = s% pg% logg_Teff_file_interval
     454            0 :       p% file_width = s% pg% logg_Teff_file_width
     455            0 :       p% file_aspect_ratio = s% pg% logg_Teff_file_aspect_ratio
     456              : 
     457            0 :       p => s% pg% pgstar_win_file_ptr(i_logL_Teff)
     458            0 :       p% plot => logL_Teff_Plot
     459            0 :       p% id = i_logL_Teff
     460            0 :       p% name = 'logL_Teff'
     461            0 :       p% win_flag = s% pg% logL_Teff_win_flag
     462            0 :       p% win_width = s% pg% logL_Teff_win_width
     463            0 :       p% win_aspect_ratio = s% pg% logL_Teff_win_aspect_ratio
     464            0 :       p% file_flag = s% pg% logL_Teff_file_flag
     465            0 :       p% file_dir = s% pg% logL_Teff_file_dir
     466            0 :       p% file_prefix = s% pg% logL_Teff_file_prefix
     467            0 :       p% file_interval = s% pg% logL_Teff_file_interval
     468            0 :       p% file_width = s% pg% logL_Teff_file_width
     469            0 :       p% file_aspect_ratio = s% pg% logL_Teff_file_aspect_ratio
     470              : 
     471            0 :       p => s% pg% pgstar_win_file_ptr(i_logL_R)
     472            0 :       p% plot => logL_R_Plot
     473            0 :       p% id = i_logL_R
     474            0 :       p% name = 'logL_R'
     475            0 :       p% win_flag = s% pg% logL_R_win_flag
     476            0 :       p% win_width = s% pg% logL_R_win_width
     477            0 :       p% win_aspect_ratio = s% pg% logL_R_win_aspect_ratio
     478            0 :       p% file_flag = s% pg% logL_R_file_flag
     479            0 :       p% file_dir = s% pg% logL_R_file_dir
     480            0 :       p% file_prefix = s% pg% logL_R_file_prefix
     481            0 :       p% file_interval = s% pg% logL_R_file_interval
     482            0 :       p% file_width = s% pg% logL_R_file_width
     483            0 :       p% file_aspect_ratio = s% pg% logL_R_file_aspect_ratio
     484              : 
     485            0 :       p => s% pg% pgstar_win_file_ptr(i_logL_v)
     486            0 :       p% plot => logL_v_Plot
     487            0 :       p% id = i_logL_v
     488            0 :       p% name = 'logL_v'
     489            0 :       p% win_flag = s% pg% logL_v_win_flag
     490            0 :       p% win_width = s% pg% logL_v_win_width
     491            0 :       p% win_aspect_ratio = s% pg% logL_v_win_aspect_ratio
     492            0 :       p% file_flag = s% pg% logL_v_file_flag
     493            0 :       p% file_dir = s% pg% logL_v_file_dir
     494            0 :       p% file_prefix = s% pg% logL_v_file_prefix
     495            0 :       p% file_interval = s% pg% logL_v_file_interval
     496            0 :       p% file_width = s% pg% logL_v_file_width
     497            0 :       p% file_aspect_ratio = s% pg% logL_v_file_aspect_ratio
     498              : 
     499            0 :       p => s% pg% pgstar_win_file_ptr(i_L_Teff)
     500            0 :       p% plot => L_Teff_Plot
     501            0 :       p% id = i_L_Teff
     502            0 :       p% name = 'L_Teff'
     503            0 :       p% win_flag = s% pg% L_Teff_win_flag
     504            0 :       p% win_width = s% pg% L_Teff_win_width
     505            0 :       p% win_aspect_ratio = s% pg% L_Teff_win_aspect_ratio
     506            0 :       p% file_flag = s% pg% L_Teff_file_flag
     507            0 :       p% file_dir = s% pg% L_Teff_file_dir
     508            0 :       p% file_prefix = s% pg% L_Teff_file_prefix
     509            0 :       p% file_interval = s% pg% L_Teff_file_interval
     510            0 :       p% file_width = s% pg% L_Teff_file_width
     511            0 :       p% file_aspect_ratio = s% pg% L_Teff_file_aspect_ratio
     512              : 
     513            0 :       p => s% pg% pgstar_win_file_ptr(i_L_v)
     514            0 :       p% plot => L_v_Plot
     515            0 :       p% id = i_L_v
     516            0 :       p% name = 'L_v'
     517            0 :       p% win_flag = s% pg% L_v_win_flag
     518            0 :       p% win_width = s% pg% L_v_win_width
     519            0 :       p% win_aspect_ratio = s% pg% L_v_win_aspect_ratio
     520            0 :       p% file_flag = s% pg% L_v_file_flag
     521            0 :       p% file_dir = s% pg% L_v_file_dir
     522            0 :       p% file_prefix = s% pg% L_v_file_prefix
     523            0 :       p% file_interval = s% pg% L_v_file_interval
     524            0 :       p% file_width = s% pg% L_v_file_width
     525            0 :       p% file_aspect_ratio = s% pg% L_v_file_aspect_ratio
     526              : 
     527            0 :       p => s% pg% pgstar_win_file_ptr(i_L_R)
     528            0 :       p% plot => L_R_Plot
     529            0 :       p% id = i_L_R
     530            0 :       p% name = 'L_R'
     531            0 :       p% win_flag = s% pg% L_R_win_flag
     532            0 :       p% win_width = s% pg% L_R_win_width
     533            0 :       p% win_aspect_ratio = s% pg% L_R_win_aspect_ratio
     534            0 :       p% file_flag = s% pg% L_R_file_flag
     535            0 :       p% file_dir = s% pg% L_R_file_dir
     536            0 :       p% file_prefix = s% pg% L_R_file_prefix
     537            0 :       p% file_interval = s% pg% L_R_file_interval
     538            0 :       p% file_width = s% pg% L_R_file_width
     539            0 :       p% file_aspect_ratio = s% pg% L_R_file_aspect_ratio
     540              : 
     541            0 :       p => s% pg% pgstar_win_file_ptr(i_R_Teff)
     542            0 :       p% plot => R_Teff_Plot
     543            0 :       p% id = i_R_Teff
     544            0 :       p% name = 'R_Teff'
     545            0 :       p% win_flag = s% pg% R_Teff_win_flag
     546            0 :       p% win_width = s% pg% R_Teff_win_width
     547            0 :       p% win_aspect_ratio = s% pg% R_Teff_win_aspect_ratio
     548            0 :       p% file_flag = s% pg% R_Teff_file_flag
     549            0 :       p% file_dir = s% pg% R_Teff_file_dir
     550            0 :       p% file_prefix = s% pg% R_Teff_file_prefix
     551            0 :       p% file_interval = s% pg% R_Teff_file_interval
     552            0 :       p% file_width = s% pg% R_Teff_file_width
     553            0 :       p% file_aspect_ratio = s% pg% R_Teff_file_aspect_ratio
     554              : 
     555            0 :       p => s% pg% pgstar_win_file_ptr(i_R_L)
     556            0 :       p% plot => R_L_Plot
     557            0 :       p% id = i_R_L
     558            0 :       p% name = 'R_L'
     559            0 :       p% win_flag = s% pg% R_L_win_flag
     560            0 :       p% win_width = s% pg% R_L_win_width
     561            0 :       p% win_aspect_ratio = s% pg% R_L_win_aspect_ratio
     562            0 :       p% file_flag = s% pg% R_L_file_flag
     563            0 :       p% file_dir = s% pg% R_L_file_dir
     564            0 :       p% file_prefix = s% pg% R_L_file_prefix
     565            0 :       p% file_interval = s% pg% R_L_file_interval
     566            0 :       p% file_width = s% pg% R_L_file_width
     567            0 :       p% file_aspect_ratio = s% pg% R_L_file_aspect_ratio
     568              : 
     569            0 :       p => s% pg% pgstar_win_file_ptr(i_logg_logT)
     570            0 :       p% plot => logg_logT_Plot
     571            0 :       p% id = i_logg_logT
     572            0 :       p% name = 'logg_logT'
     573            0 :       p% win_flag = s% pg% logg_logT_win_flag
     574            0 :       p% win_width = s% pg% logg_logT_win_width
     575            0 :       p% win_aspect_ratio = s% pg% logg_logT_win_aspect_ratio
     576            0 :       p% file_flag = s% pg% logg_logT_file_flag
     577            0 :       p% file_dir = s% pg% logg_logT_file_dir
     578            0 :       p% file_prefix = s% pg% logg_logT_file_prefix
     579            0 :       p% file_interval = s% pg% logg_logT_file_interval
     580            0 :       p% file_width = s% pg% logg_logT_file_width
     581            0 :       p% file_aspect_ratio = s% pg% logg_logT_file_aspect_ratio
     582              : 
     583            0 :       p => s% pg% pgstar_win_file_ptr(i_dPg_dnu)
     584            0 :       p% plot => dPg_dnu_Plot
     585            0 :       p% id = i_dPg_dnu
     586            0 :       p% name = 'dPg_dnu'
     587            0 :       p% win_flag = s% pg% dPg_dnu_win_flag
     588            0 :       p% win_width = s% pg% dPg_dnu_win_width
     589            0 :       p% win_aspect_ratio = s% pg% dPg_dnu_win_aspect_ratio
     590            0 :       p% file_flag = s% pg% dPg_dnu_file_flag
     591            0 :       p% file_dir = s% pg% dPg_dnu_file_dir
     592            0 :       p% file_prefix = s% pg% dPg_dnu_file_prefix
     593            0 :       p% file_interval = s% pg% dPg_dnu_file_interval
     594            0 :       p% file_width = s% pg% dPg_dnu_file_width
     595            0 :       p% file_aspect_ratio = s% pg% dPg_dnu_file_aspect_ratio
     596              : 
     597            0 :       p => s% pg% pgstar_win_file_ptr(i_HR)
     598            0 :       p% plot => HR_Plot
     599            0 :       p% id = i_HR
     600            0 :       p% name = 'HR'
     601            0 :       p% win_flag = s% pg% HR_win_flag
     602            0 :       p% win_width = s% pg% HR_win_width
     603            0 :       p% win_aspect_ratio = s% pg% HR_win_aspect_ratio
     604            0 :       p% file_flag = s% pg% HR_file_flag
     605            0 :       p% file_dir = s% pg% HR_file_dir
     606            0 :       p% file_prefix = s% pg% HR_file_prefix
     607            0 :       p% file_interval = s% pg% HR_file_interval
     608            0 :       p% file_width = s% pg% HR_file_width
     609            0 :       p% file_aspect_ratio = s% pg% HR_file_aspect_ratio
     610              : 
     611            0 :       p => s% pg% pgstar_win_file_ptr(i_TRho)
     612            0 :       p% plot => TRho_Plot
     613            0 :       p% id = i_TRho
     614            0 :       p% name = 'TRho'
     615            0 :       p% win_flag = s% pg% TRho_win_flag
     616            0 :       p% win_width = s% pg% TRho_win_width
     617            0 :       p% win_aspect_ratio = s% pg% TRho_win_aspect_ratio
     618            0 :       p% file_flag = s% pg% TRho_file_flag
     619            0 :       p% file_dir = s% pg% TRho_file_dir
     620            0 :       p% file_prefix = s% pg% TRho_file_prefix
     621            0 :       p% file_interval = s% pg% TRho_file_interval
     622            0 :       p% file_width = s% pg% TRho_file_width
     623            0 :       p% file_aspect_ratio = s% pg% TRho_file_aspect_ratio
     624              : 
     625            0 :       p => s% pg% pgstar_win_file_ptr(i_TmaxRho)
     626            0 :       p% plot => TmaxRho_Plot
     627            0 :       p% id = i_TmaxRho
     628            0 :       p% name = 'TmaxRho'
     629            0 :       p% win_flag = s% pg% TmaxRho_win_flag
     630            0 :       p% win_width = s% pg% TmaxRho_win_width
     631            0 :       p% win_aspect_ratio = s% pg% TmaxRho_win_aspect_ratio
     632            0 :       p% file_flag = s% pg% TmaxRho_file_flag
     633            0 :       p% file_dir = s% pg% TmaxRho_file_dir
     634            0 :       p% file_prefix = s% pg% TmaxRho_file_prefix
     635            0 :       p% file_interval = s% pg% TmaxRho_file_interval
     636            0 :       p% file_width = s% pg% TmaxRho_file_width
     637            0 :       p% file_aspect_ratio = s% pg% TmaxRho_file_aspect_ratio
     638              : 
     639            0 :       p => s% pg% pgstar_win_file_ptr(i_Dynamo)
     640            0 :       p% plot => Dynamo_plot
     641            0 :       p% id = i_Dynamo
     642            0 :       p% name = 'Dynamo'
     643            0 :       p% win_flag = s% pg% Dynamo_win_flag
     644            0 :       p% win_width = s% pg% Dynamo_win_width
     645            0 :       p% win_aspect_ratio = s% pg% Dynamo_win_aspect_ratio
     646            0 :       p% file_flag = s% pg% Dynamo_file_flag
     647            0 :       p% file_dir = s% pg% Dynamo_file_dir
     648            0 :       p% file_prefix = s% pg% Dynamo_file_prefix
     649            0 :       p% file_interval = s% pg% Dynamo_file_interval
     650            0 :       p% file_width = s% pg% Dynamo_file_width
     651            0 :       p% file_aspect_ratio = s% pg% Dynamo_file_aspect_ratio
     652              : 
     653            0 :       p => s% pg% pgstar_win_file_ptr(i_Mixing)
     654            0 :       p% plot => Mixing_plot
     655            0 :       p% id = i_Mixing
     656            0 :       p% name = 'Mixing'
     657            0 :       p% win_flag = s% pg% Mixing_win_flag
     658            0 :       p% win_width = s% pg% Mixing_win_width
     659            0 :       p% win_aspect_ratio = s% pg% Mixing_win_aspect_ratio
     660            0 :       p% file_flag = s% pg% Mixing_file_flag
     661            0 :       p% file_dir = s% pg% Mixing_file_dir
     662            0 :       p% file_prefix = s% pg% Mixing_file_prefix
     663            0 :       p% file_interval = s% pg% Mixing_file_interval
     664            0 :       p% file_width = s% pg% Mixing_file_width
     665            0 :       p% file_aspect_ratio = s% pg% Mixing_file_aspect_ratio
     666              : 
     667            0 :       p => s% pg% pgstar_win_file_ptr(i_rti)
     668            0 :       p% plot => rti_Plot
     669            0 :       p% id = i_rti
     670            0 :       p% name = 'rti'
     671            0 :       p% win_flag = s% pg% rti_win_flag
     672            0 :       p% win_width = s% pg% rti_win_width
     673            0 :       p% win_aspect_ratio = s% pg% rti_win_aspect_ratio
     674            0 :       p% file_flag = s% pg% rti_file_flag
     675            0 :       p% file_dir = s% pg% rti_file_dir
     676            0 :       p% file_prefix = s% pg% rti_file_prefix
     677            0 :       p% file_interval = s% pg% rti_file_interval
     678            0 :       p% file_width = s% pg% rti_file_width
     679            0 :       p% file_aspect_ratio = s% pg% rti_file_aspect_ratio
     680              : 
     681            0 :       p => s% pg% pgstar_win_file_ptr(i_Kipp)
     682            0 :       p% plot => Kipp_Plot
     683            0 :       p% id = i_Kipp
     684            0 :       p% name = 'Kipp'
     685            0 :       p% win_flag = s% pg% Kipp_win_flag
     686            0 :       p% win_width = s% pg% Kipp_win_width
     687            0 :       p% win_aspect_ratio = s% pg% Kipp_win_aspect_ratio
     688            0 :       p% file_flag = s% pg% Kipp_file_flag
     689            0 :       p% file_dir = s% pg% Kipp_file_dir
     690            0 :       p% file_prefix = s% pg% Kipp_file_prefix
     691            0 :       p% file_interval = s% pg% Kipp_file_interval
     692            0 :       p% file_width = s% pg% Kipp_file_width
     693            0 :       p% file_aspect_ratio = s% pg% Kipp_file_aspect_ratio
     694              : 
     695            0 :       p => s% pg% pgstar_win_file_ptr(i_Network)
     696            0 :       p% plot => Network_Plot
     697            0 :       p% id = i_Network
     698            0 :       p% name = 'Network'
     699            0 :       p% win_flag = s% pg% Network_win_flag
     700            0 :       p% win_width = s% pg% Network_win_width
     701            0 :       p% win_aspect_ratio = s% pg% Network_win_aspect_ratio
     702            0 :       p% file_flag = s% pg% Network_file_flag
     703            0 :       p% file_dir = s% pg% Network_file_dir
     704            0 :       p% file_prefix = s% pg% Network_file_prefix
     705            0 :       p% file_interval = s% pg% Network_file_interval
     706            0 :       p% file_width = s% pg% Network_file_width
     707            0 :       p% file_aspect_ratio = s% pg% Network_file_aspect_ratio
     708              : 
     709            0 :       p => s% pg% pgstar_win_file_ptr(i_Production)
     710            0 :       p% plot => Production_Plot
     711            0 :       p% id = i_Production
     712            0 :       p% name = 'Production'
     713            0 :       p% win_flag = s% pg% Production_win_flag
     714            0 :       p% win_width = s% pg% Production_win_width
     715            0 :       p% win_aspect_ratio = s% pg% Production_win_aspect_ratio
     716            0 :       p% file_flag = s% pg% Production_file_flag
     717            0 :       p% file_dir = s% pg% Production_file_dir
     718            0 :       p% file_prefix = s% pg% Production_file_prefix
     719            0 :       p% file_interval = s% pg% Production_file_interval
     720            0 :       p% file_width = s% pg% Production_file_width
     721            0 :       p% file_aspect_ratio = s% pg% Production_file_aspect_ratio
     722              : 
     723            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels1)
     724            0 :       p% plot => History_Panels1_plot
     725            0 :       p% id = i_Hist_Panels1
     726            0 :       p% name = 'History_Panels1'
     727            0 :       p% win_flag = s% pg% History_Panels1_win_flag
     728            0 :       p% win_width = s% pg% History_Panels1_win_width
     729            0 :       p% win_aspect_ratio = s% pg% History_Panels1_win_aspect_ratio
     730            0 :       p% file_flag = s% pg% History_Panels1_file_flag
     731            0 :       p% file_dir = s% pg% History_Panels1_file_dir
     732            0 :       p% file_prefix = s% pg% History_Panels1_file_prefix
     733            0 :       p% file_interval = s% pg% History_Panels1_file_interval
     734            0 :       p% file_width = s% pg% History_Panels1_file_width
     735            0 :       p% file_aspect_ratio = s% pg% History_Panels1_file_aspect_ratio
     736              : 
     737            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels2)
     738            0 :       p% plot => History_Panels2_plot
     739            0 :       p% id = i_Hist_Panels2
     740            0 :       p% name = 'History_Panels2'
     741            0 :       p% win_flag = s% pg% History_Panels2_win_flag
     742            0 :       p% win_width = s% pg% History_Panels2_win_width
     743            0 :       p% win_aspect_ratio = s% pg% History_Panels2_win_aspect_ratio
     744            0 :       p% file_flag = s% pg% History_Panels2_file_flag
     745            0 :       p% file_dir = s% pg% History_Panels2_file_dir
     746            0 :       p% file_prefix = s% pg% History_Panels2_file_prefix
     747            0 :       p% file_interval = s% pg% History_Panels2_file_interval
     748            0 :       p% file_width = s% pg% History_Panels2_file_width
     749            0 :       p% file_aspect_ratio = s% pg% History_Panels2_file_aspect_ratio
     750              : 
     751            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels3)
     752            0 :       p% plot => History_Panels3_plot
     753            0 :       p% id = i_Hist_Panels3
     754            0 :       p% name = 'History_Panels3'
     755            0 :       p% win_flag = s% pg% History_Panels3_win_flag
     756            0 :       p% win_width = s% pg% History_Panels3_win_width
     757            0 :       p% win_aspect_ratio = s% pg% History_Panels3_win_aspect_ratio
     758            0 :       p% file_flag = s% pg% History_Panels3_file_flag
     759            0 :       p% file_dir = s% pg% History_Panels3_file_dir
     760            0 :       p% file_prefix = s% pg% History_Panels3_file_prefix
     761            0 :       p% file_interval = s% pg% History_Panels3_file_interval
     762            0 :       p% file_width = s% pg% History_Panels3_file_width
     763            0 :       p% file_aspect_ratio = s% pg% History_Panels3_file_aspect_ratio
     764              : 
     765            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels4)
     766            0 :       p% plot => History_Panels4_plot
     767            0 :       p% id = i_Hist_Panels4
     768            0 :       p% name = 'History_Panels4'
     769            0 :       p% win_flag = s% pg% History_Panels4_win_flag
     770            0 :       p% win_width = s% pg% History_Panels4_win_width
     771            0 :       p% win_aspect_ratio = s% pg% History_Panels4_win_aspect_ratio
     772            0 :       p% file_flag = s% pg% History_Panels4_file_flag
     773            0 :       p% file_dir = s% pg% History_Panels4_file_dir
     774            0 :       p% file_prefix = s% pg% History_Panels4_file_prefix
     775            0 :       p% file_interval = s% pg% History_Panels4_file_interval
     776            0 :       p% file_width = s% pg% History_Panels4_file_width
     777            0 :       p% file_aspect_ratio = s% pg% History_Panels4_file_aspect_ratio
     778              : 
     779            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels5)
     780            0 :       p% plot => History_Panels5_plot
     781            0 :       p% id = i_Hist_Panels5
     782            0 :       p% name = 'History_Panels5'
     783            0 :       p% win_flag = s% pg% History_Panels5_win_flag
     784            0 :       p% win_width = s% pg% History_Panels5_win_width
     785            0 :       p% win_aspect_ratio = s% pg% History_Panels5_win_aspect_ratio
     786            0 :       p% file_flag = s% pg% History_Panels5_file_flag
     787            0 :       p% file_dir = s% pg% History_Panels5_file_dir
     788            0 :       p% file_prefix = s% pg% History_Panels5_file_prefix
     789            0 :       p% file_interval = s% pg% History_Panels5_file_interval
     790            0 :       p% file_width = s% pg% History_Panels5_file_width
     791            0 :       p% file_aspect_ratio = s% pg% History_Panels5_file_aspect_ratio
     792              : 
     793            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels6)
     794            0 :       p% plot => History_Panels6_plot
     795            0 :       p% id = i_Hist_Panels6
     796            0 :       p% name = 'History_Panels6'
     797            0 :       p% win_flag = s% pg% History_Panels6_win_flag
     798            0 :       p% win_width = s% pg% History_Panels6_win_width
     799            0 :       p% win_aspect_ratio = s% pg% History_Panels6_win_aspect_ratio
     800            0 :       p% file_flag = s% pg% History_Panels6_file_flag
     801            0 :       p% file_dir = s% pg% History_Panels6_file_dir
     802            0 :       p% file_prefix = s% pg% History_Panels6_file_prefix
     803            0 :       p% file_interval = s% pg% History_Panels6_file_interval
     804            0 :       p% file_width = s% pg% History_Panels6_file_width
     805            0 :       p% file_aspect_ratio = s% pg% History_Panels6_file_aspect_ratio
     806              : 
     807            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels7)
     808            0 :       p% plot => History_Panels7_plot
     809            0 :       p% id = i_Hist_Panels7
     810            0 :       p% name = 'History_Panels7'
     811            0 :       p% win_flag = s% pg% History_Panels7_win_flag
     812            0 :       p% win_width = s% pg% History_Panels7_win_width
     813            0 :       p% win_aspect_ratio = s% pg% History_Panels7_win_aspect_ratio
     814            0 :       p% file_flag = s% pg% History_Panels7_file_flag
     815            0 :       p% file_dir = s% pg% History_Panels7_file_dir
     816            0 :       p% file_prefix = s% pg% History_Panels7_file_prefix
     817            0 :       p% file_interval = s% pg% History_Panels7_file_interval
     818            0 :       p% file_width = s% pg% History_Panels7_file_width
     819            0 :       p% file_aspect_ratio = s% pg% History_Panels7_file_aspect_ratio
     820              : 
     821            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels8)
     822            0 :       p% plot => History_Panels8_plot
     823            0 :       p% id = i_Hist_Panels8
     824            0 :       p% name = 'History_Panels8'
     825            0 :       p% win_flag = s% pg% History_Panels8_win_flag
     826            0 :       p% win_width = s% pg% History_Panels8_win_width
     827            0 :       p% win_aspect_ratio = s% pg% History_Panels8_win_aspect_ratio
     828            0 :       p% file_flag = s% pg% History_Panels8_file_flag
     829            0 :       p% file_dir = s% pg% History_Panels8_file_dir
     830            0 :       p% file_prefix = s% pg% History_Panels8_file_prefix
     831            0 :       p% file_interval = s% pg% History_Panels8_file_interval
     832            0 :       p% file_width = s% pg% History_Panels8_file_width
     833            0 :       p% file_aspect_ratio = s% pg% History_Panels8_file_aspect_ratio
     834              : 
     835            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Panels9)
     836            0 :       p% plot => History_Panels9_plot
     837            0 :       p% id = i_Hist_Panels9
     838            0 :       p% name = 'History_Panels9'
     839            0 :       p% win_flag = s% pg% History_Panels9_win_flag
     840            0 :       p% win_width = s% pg% History_Panels9_win_width
     841            0 :       p% win_aspect_ratio = s% pg% History_Panels9_win_aspect_ratio
     842            0 :       p% file_flag = s% pg% History_Panels9_file_flag
     843            0 :       p% file_dir = s% pg% History_Panels9_file_dir
     844            0 :       p% file_prefix = s% pg% History_Panels9_file_prefix
     845            0 :       p% file_interval = s% pg% History_Panels9_file_interval
     846            0 :       p% file_width = s% pg% History_Panels9_file_width
     847            0 :       p% file_aspect_ratio = s% pg% History_Panels9_file_aspect_ratio
     848              : 
     849            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track1)
     850            0 :       p% plot => History_Track1_plot
     851            0 :       p% id = i_Hist_Track1
     852            0 :       p% name = 'History_Track1'
     853            0 :       p% win_flag = s% pg% History_Track1_win_flag
     854            0 :       p% win_width = s% pg% History_Track1_win_width
     855            0 :       p% win_aspect_ratio = s% pg% History_Track1_win_aspect_ratio
     856            0 :       p% file_flag = s% pg% History_Track1_file_flag
     857            0 :       p% file_dir = s% pg% History_Track1_file_dir
     858            0 :       p% file_prefix = s% pg% History_Track1_file_prefix
     859            0 :       p% file_interval = s% pg% History_Track1_file_interval
     860            0 :       p% file_width = s% pg% History_Track1_file_width
     861            0 :       p% file_aspect_ratio = s% pg% History_Track1_file_aspect_ratio
     862              : 
     863            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track2)
     864            0 :       p% plot => History_Track2_plot
     865            0 :       p% id = i_Hist_Track2
     866            0 :       p% name = 'History_Track2'
     867            0 :       p% win_flag = s% pg% History_Track2_win_flag
     868            0 :       p% win_width = s% pg% History_Track2_win_width
     869            0 :       p% win_aspect_ratio = s% pg% History_Track2_win_aspect_ratio
     870            0 :       p% file_flag = s% pg% History_Track2_file_flag
     871            0 :       p% file_dir = s% pg% History_Track2_file_dir
     872            0 :       p% file_prefix = s% pg% History_Track2_file_prefix
     873            0 :       p% file_interval = s% pg% History_Track2_file_interval
     874            0 :       p% file_width = s% pg% History_Track2_file_width
     875            0 :       p% file_aspect_ratio = s% pg% History_Track2_file_aspect_ratio
     876              : 
     877            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track3)
     878            0 :       p% plot => History_Track3_plot
     879            0 :       p% id = i_Hist_Track3
     880            0 :       p% name = 'History_Track3'
     881            0 :       p% win_flag = s% pg% History_Track3_win_flag
     882            0 :       p% win_width = s% pg% History_Track3_win_width
     883            0 :       p% win_aspect_ratio = s% pg% History_Track3_win_aspect_ratio
     884            0 :       p% file_flag = s% pg% History_Track3_file_flag
     885            0 :       p% file_dir = s% pg% History_Track3_file_dir
     886            0 :       p% file_prefix = s% pg% History_Track3_file_prefix
     887            0 :       p% file_interval = s% pg% History_Track3_file_interval
     888            0 :       p% file_width = s% pg% History_Track3_file_width
     889            0 :       p% file_aspect_ratio = s% pg% History_Track3_file_aspect_ratio
     890              : 
     891            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track4)
     892            0 :       p% plot => History_Track4_plot
     893            0 :       p% id = i_Hist_Track4
     894            0 :       p% name = 'History_Track4'
     895            0 :       p% win_flag = s% pg% History_Track4_win_flag
     896            0 :       p% win_width = s% pg% History_Track4_win_width
     897            0 :       p% win_aspect_ratio = s% pg% History_Track4_win_aspect_ratio
     898            0 :       p% file_flag = s% pg% History_Track4_file_flag
     899            0 :       p% file_dir = s% pg% History_Track4_file_dir
     900            0 :       p% file_prefix = s% pg% History_Track4_file_prefix
     901            0 :       p% file_interval = s% pg% History_Track4_file_interval
     902            0 :       p% file_width = s% pg% History_Track4_file_width
     903            0 :       p% file_aspect_ratio = s% pg% History_Track4_file_aspect_ratio
     904              : 
     905            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track5)
     906            0 :       p% plot => History_Track5_plot
     907            0 :       p% id = i_Hist_Track5
     908            0 :       p% name = 'History_Track5'
     909            0 :       p% win_flag = s% pg% History_Track5_win_flag
     910            0 :       p% win_width = s% pg% History_Track5_win_width
     911            0 :       p% win_aspect_ratio = s% pg% History_Track5_win_aspect_ratio
     912            0 :       p% file_flag = s% pg% History_Track5_file_flag
     913            0 :       p% file_dir = s% pg% History_Track5_file_dir
     914            0 :       p% file_prefix = s% pg% History_Track5_file_prefix
     915            0 :       p% file_interval = s% pg% History_Track5_file_interval
     916            0 :       p% file_width = s% pg% History_Track5_file_width
     917            0 :       p% file_aspect_ratio = s% pg% History_Track5_file_aspect_ratio
     918              : 
     919            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track6)
     920            0 :       p% plot => History_Track6_plot
     921            0 :       p% id = i_Hist_Track6
     922            0 :       p% name = 'History_Track6'
     923            0 :       p% win_flag = s% pg% History_Track6_win_flag
     924            0 :       p% win_width = s% pg% History_Track6_win_width
     925            0 :       p% win_aspect_ratio = s% pg% History_Track6_win_aspect_ratio
     926            0 :       p% file_flag = s% pg% History_Track6_file_flag
     927            0 :       p% file_dir = s% pg% History_Track6_file_dir
     928            0 :       p% file_prefix = s% pg% History_Track6_file_prefix
     929            0 :       p% file_interval = s% pg% History_Track6_file_interval
     930            0 :       p% file_width = s% pg% History_Track6_file_width
     931            0 :       p% file_aspect_ratio = s% pg% History_Track6_file_aspect_ratio
     932              : 
     933            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track7)
     934            0 :       p% plot => History_Track7_plot
     935            0 :       p% id = i_Hist_Track7
     936            0 :       p% name = 'History_Track7'
     937            0 :       p% win_flag = s% pg% History_Track7_win_flag
     938            0 :       p% win_width = s% pg% History_Track7_win_width
     939            0 :       p% win_aspect_ratio = s% pg% History_Track7_win_aspect_ratio
     940            0 :       p% file_flag = s% pg% History_Track7_file_flag
     941            0 :       p% file_dir = s% pg% History_Track7_file_dir
     942            0 :       p% file_prefix = s% pg% History_Track7_file_prefix
     943            0 :       p% file_interval = s% pg% History_Track7_file_interval
     944            0 :       p% file_width = s% pg% History_Track7_file_width
     945            0 :       p% file_aspect_ratio = s% pg% History_Track7_file_aspect_ratio
     946              : 
     947            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track8)
     948            0 :       p% plot => History_Track8_plot
     949            0 :       p% id = i_Hist_Track8
     950            0 :       p% name = 'History_Track8'
     951            0 :       p% win_flag = s% pg% History_Track8_win_flag
     952            0 :       p% win_width = s% pg% History_Track8_win_width
     953            0 :       p% win_aspect_ratio = s% pg% History_Track8_win_aspect_ratio
     954            0 :       p% file_flag = s% pg% History_Track8_file_flag
     955            0 :       p% file_dir = s% pg% History_Track8_file_dir
     956            0 :       p% file_prefix = s% pg% History_Track8_file_prefix
     957            0 :       p% file_interval = s% pg% History_Track8_file_interval
     958            0 :       p% file_width = s% pg% History_Track8_file_width
     959            0 :       p% file_aspect_ratio = s% pg% History_Track8_file_aspect_ratio
     960              : 
     961            0 :       p => s% pg% pgstar_win_file_ptr(i_Hist_Track9)
     962            0 :       p% plot => History_Track9_plot
     963            0 :       p% id = i_Hist_Track9
     964            0 :       p% name = 'History_Track9'
     965            0 :       p% win_flag = s% pg% History_Track9_win_flag
     966            0 :       p% win_width = s% pg% History_Track9_win_width
     967            0 :       p% win_aspect_ratio = s% pg% History_Track9_win_aspect_ratio
     968            0 :       p% file_flag = s% pg% History_Track9_file_flag
     969            0 :       p% file_dir = s% pg% History_Track9_file_dir
     970            0 :       p% file_prefix = s% pg% History_Track9_file_prefix
     971            0 :       p% file_interval = s% pg% History_Track9_file_interval
     972            0 :       p% file_width = s% pg% History_Track9_file_width
     973            0 :       p% file_aspect_ratio = s% pg% History_Track9_file_aspect_ratio
     974              : 
     975            0 :       p => s% pg% pgstar_win_file_ptr(i_Mode_Prop)
     976            0 :       p% plot => mode_propagation_plot
     977            0 :       p% id = i_Mode_Prop
     978            0 :       p% name = 'Mode_Propagation'
     979            0 :       p% win_flag = s% pg% Mode_Prop_win_flag
     980            0 :       p% win_width = s% pg% Mode_Prop_win_width
     981            0 :       p% win_aspect_ratio = s% pg% Mode_Prop_win_aspect_ratio
     982            0 :       p% file_flag = s% pg% Mode_Prop_file_flag
     983            0 :       p% file_dir = s% pg% Mode_Prop_file_dir
     984            0 :       p% file_prefix = s% pg% Mode_Prop_file_prefix
     985            0 :       p% file_interval = s% pg% Mode_Prop_file_interval
     986            0 :       p% file_width = s% pg% Mode_Prop_file_width
     987            0 :       p% file_aspect_ratio = s% pg% Mode_Prop_file_aspect_ratio
     988              : 
     989            0 :       p => s% pg% pgstar_win_file_ptr(i_Power)
     990            0 :       p% plot => power_plot
     991            0 :       p% id = i_Power
     992            0 :       p% name = 'Power'
     993            0 :       p% win_flag = s% pg% Power_win_flag
     994            0 :       p% win_width = s% pg% Power_win_width
     995            0 :       p% win_aspect_ratio = s% pg% Power_win_aspect_ratio
     996            0 :       p% file_flag = s% pg% Power_file_flag
     997            0 :       p% file_dir = s% pg% Power_file_dir
     998            0 :       p% file_prefix = s% pg% Power_file_prefix
     999            0 :       p% file_interval = s% pg% Power_file_interval
    1000            0 :       p% file_width = s% pg% Power_file_width
    1001            0 :       p% file_aspect_ratio = s% pg% Power_file_aspect_ratio
    1002              : 
    1003            0 :       p => s% pg% pgstar_win_file_ptr(i_Abundance)
    1004            0 :       p% plot => abundance_plot
    1005            0 :       p% id = i_Abundance
    1006            0 :       p% name = 'Abundance'
    1007            0 :       p% win_flag = s% pg% Abundance_win_flag
    1008            0 :       p% win_width = s% pg% Abundance_win_width
    1009            0 :       p% win_aspect_ratio = s% pg% Abundance_win_aspect_ratio
    1010            0 :       p% file_flag = s% pg% Abundance_file_flag
    1011            0 :       p% file_dir = s% pg% Abundance_file_dir
    1012            0 :       p% file_prefix = s% pg% Abundance_file_prefix
    1013            0 :       p% file_interval = s% pg% Abundance_file_interval
    1014            0 :       p% file_width = s% pg% Abundance_file_width
    1015            0 :       p% file_aspect_ratio = s% pg% Abundance_file_aspect_ratio
    1016              : 
    1017            0 :       p => s% pg% pgstar_win_file_ptr(i_Summary_Burn)
    1018            0 :       p% plot => summary_burn_plot
    1019            0 :       p% id = i_Summary_Burn
    1020            0 :       p% name = 'Summary_Burn'
    1021            0 :       p% win_flag = s% pg% Summary_Burn_win_flag
    1022            0 :       p% win_width = s% pg% Summary_Burn_win_width
    1023            0 :       p% win_aspect_ratio = s% pg% Summary_Burn_win_aspect_ratio
    1024            0 :       p% file_flag = s% pg% Summary_Burn_file_flag
    1025            0 :       p% file_dir = s% pg% Summary_Burn_file_dir
    1026            0 :       p% file_prefix = s% pg% Summary_Burn_file_prefix
    1027            0 :       p% file_interval = s% pg% Summary_Burn_file_interval
    1028            0 :       p% file_width = s% pg% Summary_Burn_file_width
    1029            0 :       p% file_aspect_ratio = s% pg% Summary_Burn_file_aspect_ratio
    1030              : 
    1031            0 :       p => s% pg% pgstar_win_file_ptr(i_Summary_Profile)
    1032            0 :       p% plot => summary_profile_plot
    1033            0 :       p% id = i_Summary_Profile
    1034            0 :       p% name = 'Summary_Profile'
    1035            0 :       p% win_flag = s% pg% Summary_Profile_win_flag
    1036            0 :       p% win_width = s% pg% Summary_Profile_win_width
    1037            0 :       p% win_aspect_ratio = s% pg% Summary_Profile_win_aspect_ratio
    1038            0 :       p% file_flag = s% pg% Summary_Profile_file_flag
    1039            0 :       p% file_dir = s% pg% Summary_Profile_file_dir
    1040            0 :       p% file_prefix = s% pg% Summary_Profile_file_prefix
    1041            0 :       p% file_interval = s% pg% Summary_Profile_file_interval
    1042            0 :       p% file_width = s% pg% Summary_Profile_file_width
    1043            0 :       p% file_aspect_ratio = s% pg% Summary_Profile_file_aspect_ratio
    1044              : 
    1045            0 :       p => s% pg% pgstar_win_file_ptr(i_Summary_History)
    1046            0 :       p% plot => summary_history_plot
    1047            0 :       p% id = i_Summary_History
    1048            0 :       p% name = 'Summary_History'
    1049            0 :       p% win_flag = s% pg% Summary_History_win_flag
    1050            0 :       p% win_width = s% pg% Summary_History_win_width
    1051            0 :       p% win_aspect_ratio = s% pg% Summary_History_win_aspect_ratio
    1052            0 :       p% file_flag = s% pg% Summary_History_file_flag
    1053            0 :       p% file_dir = s% pg% Summary_History_file_dir
    1054            0 :       p% file_prefix = s% pg% Summary_History_file_prefix
    1055            0 :       p% file_interval = s% pg% Summary_History_file_interval
    1056            0 :       p% file_width = s% pg% Summary_History_file_width
    1057            0 :       p% file_aspect_ratio = s% pg% Summary_History_file_aspect_ratio
    1058              : 
    1059            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag1)
    1060            0 :       p% plot => Color_Magnitude1_plot
    1061            0 :       p% id = i_Col_Mag1
    1062            0 :       p% name = 'Color_Magnitude1'
    1063            0 :       p% win_flag = s% pg% Color_Magnitude1_win_flag
    1064            0 :       p% win_width = s% pg% Color_Magnitude1_win_width
    1065            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude1_win_aspect_ratio
    1066            0 :       p% file_flag = s% pg% Color_Magnitude1_file_flag
    1067            0 :       p% file_dir = s% pg% Color_Magnitude1_file_dir
    1068            0 :       p% file_prefix = s% pg% Color_Magnitude1_file_prefix
    1069            0 :       p% file_interval = s% pg% Color_Magnitude1_file_interval
    1070            0 :       p% file_width = s% pg% Color_Magnitude1_file_width
    1071            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude1_file_aspect_ratio
    1072              : 
    1073            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag2)
    1074            0 :       p% plot => Color_Magnitude2_plot
    1075            0 :       p% id = i_Col_Mag2
    1076            0 :       p% name = 'Color_Magnitude2'
    1077            0 :       p% win_flag = s% pg% Color_Magnitude2_win_flag
    1078            0 :       p% win_width = s% pg% Color_Magnitude2_win_width
    1079            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude2_win_aspect_ratio
    1080            0 :       p% file_flag = s% pg% Color_Magnitude2_file_flag
    1081            0 :       p% file_dir = s% pg% Color_Magnitude2_file_dir
    1082            0 :       p% file_prefix = s% pg% Color_Magnitude2_file_prefix
    1083            0 :       p% file_interval = s% pg% Color_Magnitude2_file_interval
    1084            0 :       p% file_width = s% pg% Color_Magnitude2_file_width
    1085            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude2_file_aspect_ratio
    1086              : 
    1087            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag3)
    1088            0 :       p% plot => Color_Magnitude3_plot
    1089            0 :       p% id = i_Col_Mag3
    1090            0 :       p% name = 'Color_Magnitude3'
    1091            0 :       p% win_flag = s% pg% Color_Magnitude3_win_flag
    1092            0 :       p% win_width = s% pg% Color_Magnitude3_win_width
    1093            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude3_win_aspect_ratio
    1094            0 :       p% file_flag = s% pg% Color_Magnitude3_file_flag
    1095            0 :       p% file_dir = s% pg% Color_Magnitude3_file_dir
    1096            0 :       p% file_prefix = s% pg% Color_Magnitude3_file_prefix
    1097            0 :       p% file_interval = s% pg% Color_Magnitude3_file_interval
    1098            0 :       p% file_width = s% pg% Color_Magnitude3_file_width
    1099            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude3_file_aspect_ratio
    1100              : 
    1101            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag4)
    1102            0 :       p% plot => Color_Magnitude4_plot
    1103            0 :       p% id = i_Col_Mag4
    1104            0 :       p% name = 'Color_Magnitude4'
    1105            0 :       p% win_flag = s% pg% Color_Magnitude4_win_flag
    1106            0 :       p% win_width = s% pg% Color_Magnitude4_win_width
    1107            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude4_win_aspect_ratio
    1108            0 :       p% file_flag = s% pg% Color_Magnitude4_file_flag
    1109            0 :       p% file_dir = s% pg% Color_Magnitude4_file_dir
    1110            0 :       p% file_prefix = s% pg% Color_Magnitude4_file_prefix
    1111            0 :       p% file_interval = s% pg% Color_Magnitude4_file_interval
    1112            0 :       p% file_width = s% pg% Color_Magnitude4_file_width
    1113            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude4_file_aspect_ratio
    1114              : 
    1115            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag5)
    1116            0 :       p% plot => Color_Magnitude5_plot
    1117            0 :       p% id = i_Col_Mag5
    1118            0 :       p% name = 'Color_Magnitude5'
    1119            0 :       p% win_flag = s% pg% Color_Magnitude5_win_flag
    1120            0 :       p% win_width = s% pg% Color_Magnitude5_win_width
    1121            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude5_win_aspect_ratio
    1122            0 :       p% file_flag = s% pg% Color_Magnitude5_file_flag
    1123            0 :       p% file_dir = s% pg% Color_Magnitude5_file_dir
    1124            0 :       p% file_prefix = s% pg% Color_Magnitude5_file_prefix
    1125            0 :       p% file_interval = s% pg% Color_Magnitude5_file_interval
    1126            0 :       p% file_width = s% pg% Color_Magnitude5_file_width
    1127            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude5_file_aspect_ratio
    1128              : 
    1129            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag6)
    1130            0 :       p% plot => Color_Magnitude6_plot
    1131            0 :       p% id = i_Col_Mag6
    1132            0 :       p% name = 'Color_Magnitude6'
    1133            0 :       p% win_flag = s% pg% Color_Magnitude6_win_flag
    1134            0 :       p% win_width = s% pg% Color_Magnitude6_win_width
    1135            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude6_win_aspect_ratio
    1136            0 :       p% file_flag = s% pg% Color_Magnitude6_file_flag
    1137            0 :       p% file_dir = s% pg% Color_Magnitude6_file_dir
    1138            0 :       p% file_prefix = s% pg% Color_Magnitude6_file_prefix
    1139            0 :       p% file_interval = s% pg% Color_Magnitude6_file_interval
    1140            0 :       p% file_width = s% pg% Color_Magnitude6_file_width
    1141            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude6_file_aspect_ratio
    1142              : 
    1143            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag7)
    1144            0 :       p% plot => Color_Magnitude7_plot
    1145            0 :       p% id = i_Col_Mag7
    1146            0 :       p% name = 'Color_Magnitude7'
    1147            0 :       p% win_flag = s% pg% Color_Magnitude7_win_flag
    1148            0 :       p% win_width = s% pg% Color_Magnitude7_win_width
    1149            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude7_win_aspect_ratio
    1150            0 :       p% file_flag = s% pg% Color_Magnitude7_file_flag
    1151            0 :       p% file_dir = s% pg% Color_Magnitude7_file_dir
    1152            0 :       p% file_prefix = s% pg% Color_Magnitude7_file_prefix
    1153            0 :       p% file_interval = s% pg% Color_Magnitude7_file_interval
    1154            0 :       p% file_width = s% pg% Color_Magnitude7_file_width
    1155            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude7_file_aspect_ratio
    1156              : 
    1157            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag8)
    1158            0 :       p% plot => Color_Magnitude8_plot
    1159            0 :       p% id = i_Col_Mag8
    1160            0 :       p% name = 'Color_Magnitude8'
    1161            0 :       p% win_flag = s% pg% Color_Magnitude8_win_flag
    1162            0 :       p% win_width = s% pg% Color_Magnitude8_win_width
    1163            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude8_win_aspect_ratio
    1164            0 :       p% file_flag = s% pg% Color_Magnitude8_file_flag
    1165            0 :       p% file_dir = s% pg% Color_Magnitude8_file_dir
    1166            0 :       p% file_prefix = s% pg% Color_Magnitude8_file_prefix
    1167            0 :       p% file_interval = s% pg% Color_Magnitude8_file_interval
    1168            0 :       p% file_width = s% pg% Color_Magnitude8_file_width
    1169            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude8_file_aspect_ratio
    1170              : 
    1171            0 :       p => s% pg% pgstar_win_file_ptr(i_Col_Mag9)
    1172            0 :       p% plot => Color_Magnitude9_plot
    1173            0 :       p% id = i_Col_Mag9
    1174            0 :       p% name = 'Color_Magnitude9'
    1175            0 :       p% win_flag = s% pg% Color_Magnitude9_win_flag
    1176            0 :       p% win_width = s% pg% Color_Magnitude9_win_width
    1177            0 :       p% win_aspect_ratio = s% pg% Color_Magnitude9_win_aspect_ratio
    1178            0 :       p% file_flag = s% pg% Color_Magnitude9_file_flag
    1179            0 :       p% file_dir = s% pg% Color_Magnitude9_file_dir
    1180            0 :       p% file_prefix = s% pg% Color_Magnitude9_file_prefix
    1181            0 :       p% file_interval = s% pg% Color_Magnitude9_file_interval
    1182            0 :       p% file_width = s% pg% Color_Magnitude9_file_width
    1183            0 :       p% file_aspect_ratio = s% pg% Color_Magnitude9_file_aspect_ratio
    1184              : 
    1185            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid1)
    1186            0 :       p% plot => grid1_plot
    1187            0 :       p% id = i_Grid1
    1188            0 :       p% name = 'Grid1'
    1189            0 :       p% win_flag = s% pg% Grid1_win_flag
    1190            0 :       p% win_width = s% pg% Grid1_win_width
    1191            0 :       p% win_aspect_ratio = s% pg% Grid1_win_aspect_ratio
    1192            0 :       p% file_flag = s% pg% Grid1_file_flag
    1193            0 :       p% file_dir = s% pg% Grid1_file_dir
    1194            0 :       p% file_prefix = s% pg% Grid1_file_prefix
    1195            0 :       p% file_interval = s% pg% Grid1_file_interval
    1196            0 :       p% file_width = s% pg% Grid1_file_width
    1197            0 :       p% file_aspect_ratio = s% pg% Grid1_file_aspect_ratio
    1198              : 
    1199            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid2)
    1200            0 :       p% plot => grid2_plot
    1201            0 :       p% id = i_Grid2
    1202            0 :       p% name = 'Grid2'
    1203            0 :       p% win_flag = s% pg% Grid2_win_flag
    1204            0 :       p% win_width = s% pg% Grid2_win_width
    1205            0 :       p% win_aspect_ratio = s% pg% Grid2_win_aspect_ratio
    1206            0 :       p% file_flag = s% pg% Grid2_file_flag
    1207            0 :       p% file_dir = s% pg% Grid2_file_dir
    1208            0 :       p% file_prefix = s% pg% Grid2_file_prefix
    1209            0 :       p% file_interval = s% pg% Grid2_file_interval
    1210            0 :       p% file_width = s% pg% Grid2_file_width
    1211            0 :       p% file_aspect_ratio = s% pg% Grid2_file_aspect_ratio
    1212              : 
    1213            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid3)
    1214            0 :       p% plot => grid3_plot
    1215            0 :       p% id = i_Grid3
    1216            0 :       p% name = 'Grid3'
    1217            0 :       p% win_flag = s% pg% Grid3_win_flag
    1218            0 :       p% win_width = s% pg% Grid3_win_width
    1219            0 :       p% win_aspect_ratio = s% pg% Grid3_win_aspect_ratio
    1220            0 :       p% file_flag = s% pg% Grid3_file_flag
    1221            0 :       p% file_dir = s% pg% Grid3_file_dir
    1222            0 :       p% file_prefix = s% pg% Grid3_file_prefix
    1223            0 :       p% file_interval = s% pg% Grid3_file_interval
    1224            0 :       p% file_width = s% pg% Grid3_file_width
    1225            0 :       p% file_aspect_ratio = s% pg% Grid3_file_aspect_ratio
    1226              : 
    1227            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid4)
    1228            0 :       p% plot => grid4_plot
    1229            0 :       p% id = i_Grid4
    1230            0 :       p% name = 'Grid4'
    1231            0 :       p% win_flag = s% pg% Grid4_win_flag
    1232            0 :       p% win_width = s% pg% Grid4_win_width
    1233            0 :       p% win_aspect_ratio = s% pg% Grid4_win_aspect_ratio
    1234            0 :       p% file_flag = s% pg% Grid4_file_flag
    1235            0 :       p% file_dir = s% pg% Grid4_file_dir
    1236            0 :       p% file_prefix = s% pg% Grid4_file_prefix
    1237            0 :       p% file_interval = s% pg% Grid4_file_interval
    1238            0 :       p% file_width = s% pg% Grid4_file_width
    1239            0 :       p% file_aspect_ratio = s% pg% Grid4_file_aspect_ratio
    1240              : 
    1241            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid5)
    1242            0 :       p% plot => grid5_plot
    1243            0 :       p% id = i_Grid5
    1244            0 :       p% name = 'Grid5'
    1245            0 :       p% win_flag = s% pg% Grid5_win_flag
    1246            0 :       p% win_width = s% pg% Grid5_win_width
    1247            0 :       p% win_aspect_ratio = s% pg% Grid5_win_aspect_ratio
    1248            0 :       p% file_flag = s% pg% Grid5_file_flag
    1249            0 :       p% file_dir = s% pg% Grid5_file_dir
    1250            0 :       p% file_prefix = s% pg% Grid5_file_prefix
    1251            0 :       p% file_interval = s% pg% Grid5_file_interval
    1252            0 :       p% file_width = s% pg% Grid5_file_width
    1253            0 :       p% file_aspect_ratio = s% pg% Grid5_file_aspect_ratio
    1254              : 
    1255            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid6)
    1256            0 :       p% plot => grid6_plot
    1257            0 :       p% id = i_Grid6
    1258            0 :       p% name = 'Grid6'
    1259            0 :       p% win_flag = s% pg% Grid6_win_flag
    1260            0 :       p% win_width = s% pg% Grid6_win_width
    1261            0 :       p% win_aspect_ratio = s% pg% Grid6_win_aspect_ratio
    1262            0 :       p% file_flag = s% pg% Grid6_file_flag
    1263            0 :       p% file_dir = s% pg% Grid6_file_dir
    1264            0 :       p% file_prefix = s% pg% Grid6_file_prefix
    1265            0 :       p% file_interval = s% pg% Grid6_file_interval
    1266            0 :       p% file_width = s% pg% Grid6_file_width
    1267            0 :       p% file_aspect_ratio = s% pg% Grid6_file_aspect_ratio
    1268              : 
    1269            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid7)
    1270            0 :       p% plot => grid7_plot
    1271            0 :       p% id = i_Grid7
    1272            0 :       p% name = 'Grid7'
    1273            0 :       p% win_flag = s% pg% Grid7_win_flag
    1274            0 :       p% win_width = s% pg% Grid7_win_width
    1275            0 :       p% win_aspect_ratio = s% pg% Grid7_win_aspect_ratio
    1276            0 :       p% file_flag = s% pg% Grid7_file_flag
    1277            0 :       p% file_dir = s% pg% Grid7_file_dir
    1278            0 :       p% file_prefix = s% pg% Grid7_file_prefix
    1279            0 :       p% file_interval = s% pg% Grid7_file_interval
    1280            0 :       p% file_width = s% pg% Grid7_file_width
    1281            0 :       p% file_aspect_ratio = s% pg% Grid7_file_aspect_ratio
    1282              : 
    1283            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid8)
    1284            0 :       p% plot => grid8_plot
    1285            0 :       p% id = i_Grid8
    1286            0 :       p% name = 'Grid8'
    1287            0 :       p% win_flag = s% pg% Grid8_win_flag
    1288            0 :       p% win_width = s% pg% Grid8_win_width
    1289            0 :       p% win_aspect_ratio = s% pg% Grid8_win_aspect_ratio
    1290            0 :       p% file_flag = s% pg% Grid8_file_flag
    1291            0 :       p% file_dir = s% pg% Grid8_file_dir
    1292            0 :       p% file_prefix = s% pg% Grid8_file_prefix
    1293            0 :       p% file_interval = s% pg% Grid8_file_interval
    1294            0 :       p% file_width = s% pg% Grid8_file_width
    1295            0 :       p% file_aspect_ratio = s% pg% Grid8_file_aspect_ratio
    1296              : 
    1297            0 :       p => s% pg% pgstar_win_file_ptr(i_Grid9)
    1298            0 :       p% plot => grid9_plot
    1299            0 :       p% id = i_Grid9
    1300            0 :       p% name = 'Grid9'
    1301            0 :       p% win_flag = s% pg% Grid9_win_flag
    1302            0 :       p% win_width = s% pg% Grid9_win_width
    1303            0 :       p% win_aspect_ratio = s% pg% Grid9_win_aspect_ratio
    1304            0 :       p% file_flag = s% pg% Grid9_file_flag
    1305            0 :       p% file_dir = s% pg% Grid9_file_dir
    1306            0 :       p% file_prefix = s% pg% Grid9_file_prefix
    1307            0 :       p% file_interval = s% pg% Grid9_file_interval
    1308            0 :       p% file_width = s% pg% Grid9_file_width
    1309            0 :       p% file_aspect_ratio = s% pg% Grid9_file_aspect_ratio
    1310              : 
    1311            0 :       p => s% pg% pgstar_win_file_ptr(i_max_eq_resid)
    1312            0 :       p% plot => Max_eq_resid_plot
    1313            0 :       p% id = i_max_eq_resid
    1314            0 :       p% name = 'Max_eq_resid'
    1315            0 :       p% win_flag = s% pg% max_eq_resid_win_flag
    1316            0 :       p% win_width = s% pg% max_eq_resid_win_width
    1317            0 :       p% win_aspect_ratio = s% pg% max_eq_resid_win_aspect_ratio
    1318            0 :       p% file_flag = s% pg% max_eq_resid_file_flag
    1319            0 :       p% file_dir = s% pg% max_eq_resid_file_dir
    1320            0 :       p% file_prefix = s% pg% max_eq_resid_file_prefix
    1321            0 :       p% file_interval = s% pg% max_eq_resid_file_interval
    1322            0 :       p% file_width = s% pg% max_eq_resid_file_width
    1323            0 :       p% file_aspect_ratio = s% pg% max_eq_resid_file_aspect_ratio
    1324              : 
    1325            0 :       p => s% pg% pgstar_win_file_ptr(i_Kipp_residuals)
    1326            0 :       p% plot => Kipp_residuals_plot
    1327            0 :       p% id = i_Kipp_residuals
    1328            0 :       p% name = 'Kipp_resid'
    1329            0 :       p% win_flag = s% pg% Kipp_residuals_win_flag
    1330            0 :       p% win_width = s% pg% Kipp_residuals_win_width
    1331            0 :       p% win_aspect_ratio = s% pg% Kipp_residuals_win_aspect_ratio
    1332            0 :       p% file_flag = s% pg% Kipp_residuals_file_flag
    1333            0 :       p% file_dir = s% pg% Kipp_residuals_file_dir
    1334            0 :       p% file_prefix = s% pg% Kipp_residuals_file_prefix
    1335            0 :       p% file_interval = s% pg% Kipp_residuals_file_interval
    1336            0 :       p% file_width = s% pg% Kipp_residuals_file_width
    1337            0 :       p% file_aspect_ratio = s% pg% Kipp_residuals_file_aspect_ratio
    1338              : 
    1339            0 :       do i = 1, max_num_Other_plots
    1340            0 :          p => s% pg% pgstar_win_file_ptr(i_Other + i - 1)
    1341            0 :          p% win_flag = .false.
    1342            0 :          p% file_flag = .false.
    1343            0 :          p% okay_to_call_do_plot_in_grid = .false.
    1344              :       end do
    1345              : 
    1346            0 :       if (s% use_other_pgstar_plots) &
    1347            0 :          call s% other_pgstar_plots_info(s% id, ierr)
    1348              : 
    1349            0 :    end subroutine set_win_file_data
    1350              : 
    1351              : 
    1352            0 :    subroutine do_pgstar_plots(&
    1353              :       s, must_write_files, &
    1354              :       ierr)
    1355              :       type (star_info), pointer :: s
    1356              :       logical, intent(in) :: must_write_files
    1357              :       integer, intent(out) :: ierr
    1358              : 
    1359              :       integer(i8) :: time0, time1, clock_rate
    1360              :       logical :: do_pause
    1361              : 
    1362              :       include 'formats'
    1363              : 
    1364            0 :       ierr = 0
    1365              : 
    1366            0 :       if (s% pg% clear_history) call pgstar_clear(s)
    1367              : 
    1368            0 :       call update_pgstar_data(s, ierr)
    1369            0 :       if (failed('update_pgstar_data')) return
    1370              : 
    1371            0 :       call onScreen_Plots(s, must_write_files, ierr)
    1372            0 :       if (failed('onScreen_Plots')) return
    1373              : 
    1374            0 :       call update_pgstar_history_file(s, ierr)
    1375            0 :       if (failed('save_text_data')) return
    1376              : 
    1377            0 :       if (s% pg% pause_interval > 0) then
    1378            0 :          do_pause = (mod(s% model_number, s% pg% pause_interval) == 0)
    1379              :       else
    1380            0 :          do_pause = s% pg% pause_flag
    1381              :       end if
    1382              : 
    1383            0 :       if (do_pause .and. s% pg% pgstar_interval > 0) &
    1384            0 :          do_pause = (mod(s% model_number, s% pg% pgstar_interval) == 0)
    1385              : 
    1386            0 :       if (do_pause) then
    1387            0 :          write(*, '(A)')
    1388            0 :          write(*, *) 'model_number', s% model_number
    1389            0 :          write(*, *) 'PGSTAR: paused -- hit RETURN to continue'
    1390            0 :          read(*, *)
    1391              :       end if
    1392              : 
    1393            0 :       if (s% pg% pgstar_sleep > 0) then
    1394            0 :          time0 = s% system_clock_at_start_of_step
    1395            0 :          do
    1396            0 :             call system_clock(time1, clock_rate)
    1397            0 :             if (dble(time1 - time0) / dble(clock_rate) >= s% pg% pgstar_sleep) exit
    1398              :          end do
    1399              :       end if
    1400              : 
    1401              :       !write(*,2) 'PGSTAR: done', s% model_number
    1402              : 
    1403              :    contains
    1404              : 
    1405            0 :       logical function failed(str)
    1406              :          character (len = *), intent(in) :: str
    1407            0 :          failed = (ierr /= 0)
    1408            0 :          if (failed) then
    1409            0 :             write(*, *) trim(str) // ' ierr', ierr
    1410              :          end if
    1411            0 :       end function failed
    1412              : 
    1413              :    end subroutine do_pgstar_plots
    1414              : 
    1415              : 
    1416              :    ! PGSTAR driver, called after each timestep
    1417            0 :    subroutine onScreen_Plots(s, must_write_files_in, ierr)
    1418              :       use utils_lib
    1419              :       use chem_def
    1420              :       use net_def
    1421              :       use net_lib, only: get_net_reaction_table
    1422              :       use const_def, only: Msun, Rsun
    1423              : 
    1424              :       type (star_info), pointer :: s
    1425              :       logical :: must_write_files_in
    1426              :       integer, intent(out) :: ierr
    1427              : 
    1428              :       integer :: i
    1429              :       type (pgstar_win_file_data), pointer :: p
    1430              :       logical, parameter :: dbg = .false.
    1431              :       real(dp) :: dlgL, dlgTeff, dHR
    1432              :       logical :: must_write_files, show_plot_now, save_plot_now
    1433              : 
    1434              :       include 'formats'
    1435            0 :       ierr = 0
    1436              : 
    1437              :       ! initialize pgstar
    1438            0 :       if (.not. have_initialized_pgstar) then
    1439            0 :          call init_pgstar(ierr)
    1440            0 :          if (failed('init_pgstar')) return
    1441              :       end if
    1442              : 
    1443              :       ! request files if sufficient movement in HR diagram
    1444            0 :       must_write_files = must_write_files_in
    1445              : 
    1446              :       if (s% pg% delta_HR_limit_for_file_output > 0 .and. &
    1447            0 :          s% L_phot_old > 0 .and. s% Teff_old > 0 .and. .not. must_write_files) then
    1448            0 :          dlgL = log10(s% L_phot / s% L_phot_old)
    1449            0 :          dlgTeff = log10(s% Teff / s% Teff_old)
    1450            0 :          dHR = sqrt(pow2(s% delta_HR_ds_L * dlgL) + pow2(s% delta_HR_ds_Teff * dlgTeff))
    1451            0 :          sum_dHR_since_last_file_write = sum_dHR_since_last_file_write + dHR
    1452              :          must_write_files = &
    1453            0 :             (sum_dHR_since_last_file_write >= s% pg% delta_HR_limit_for_file_output)
    1454              :       end if
    1455            0 :       if (must_write_files) sum_dHR_since_last_file_write = 0
    1456              : 
    1457            0 :       show_plot_now = .false.
    1458            0 :       if (s% pg% pgstar_interval > 0) then
    1459            0 :          if(mod(s% model_number, s% pg% pgstar_interval) == 0) then
    1460            0 :             show_plot_now = .true.
    1461              :          end if
    1462              :       end if
    1463              : 
    1464              :       ! retrieve extra profile data
    1465            0 :       s% num_extra_profile_cols = 0
    1466            0 :       if (associated(s% how_many_extra_profile_columns) .and. &
    1467              :          associated(s% data_for_extra_profile_columns)) then
    1468            0 :          i = s% how_many_extra_profile_columns(s% id)
    1469            0 :          if (i > 0) then
    1470            0 :             if (associated(s% extra_profile_col_names)) &
    1471            0 :                deallocate(s% extra_profile_col_names)
    1472            0 :             if (associated(s% extra_profile_col_vals)) &
    1473            0 :                deallocate(s% extra_profile_col_vals)
    1474            0 :             allocate(s% extra_profile_col_names(i))
    1475            0 :             allocate(s% extra_profile_col_vals(s% nz, i))
    1476            0 :             ierr = 0
    1477              :             call s% data_for_extra_profile_columns(&
    1478              :                s% id, i, s% nz, &
    1479              :                s% extra_profile_col_names, &
    1480            0 :                s% extra_profile_col_vals, ierr)
    1481            0 :             if (ierr == 0) s% num_extra_profile_cols = i
    1482            0 :             ierr = 0
    1483              :          end if
    1484              :       end if
    1485              : 
    1486              :       ! loop through all plots
    1487            0 :       do i = 1, num_pgstar_plots
    1488            0 :          p => s% pg% pgstar_win_file_ptr(i)
    1489              : 
    1490            0 :          if (show_plot_now) then
    1491              :             ! call to check_window opens device
    1492            0 :             call check_window(s, p, ierr)
    1493            0 :             if (failed('check_window')) return
    1494              : 
    1495              :             ! make the plot (window)
    1496            0 :             if (p% do_win) then
    1497            0 :                call p% plot(s% id, p% id_win, ierr)
    1498            0 :                if (failed(p% name)) return
    1499              :             end if
    1500              :          end if
    1501              : 
    1502            0 :          save_plot_now = must_write_files
    1503            0 :          if (p% file_interval > 0) then
    1504            0 :             if(mod(s% model_number, p% file_interval) == 0) then
    1505              :                save_plot_now = .true.
    1506              :             end if
    1507              :          end if
    1508              : 
    1509            0 :          if(save_plot_now)then
    1510              :             ! call to check_file opens device and does mkdir
    1511            0 :             call check_file(s, p, ierr)
    1512              : 
    1513              :             ! make the plot (file)
    1514            0 :             if (p% do_file) then
    1515            0 :                call p% plot(s% id, p% id_file, ierr)
    1516            0 :                if (failed(p% name)) return
    1517            0 :                call pgclos
    1518            0 :                if (s% pg% pgstar_report_writing_files) &
    1519            0 :                   write(*, *) trim(p% most_recent_filename)
    1520            0 :                p% id_file = 0
    1521            0 :                p% do_file = .false.
    1522              :             end if
    1523              :          end if
    1524              :       end do
    1525              : 
    1526              :    contains
    1527              : 
    1528            0 :       logical function failed(str)
    1529              :          character (len = *), intent(in) :: str
    1530            0 :          failed = (ierr /= 0)
    1531            0 :          if (failed) then
    1532            0 :             write(*, *) trim(str) // ' ierr', ierr
    1533              :          end if
    1534            0 :       end function failed
    1535              : 
    1536              :    end subroutine onScreen_Plots
    1537              : 
    1538              : 
    1539            0 :    subroutine update_pgstar_history_file(s, ierr)
    1540              :       use utils_lib
    1541              :       type (star_info), pointer :: s
    1542              :       integer, intent(out) :: ierr
    1543              : 
    1544              :       integer :: iounit, n
    1545              :       character (len = 1024) :: fname
    1546              :       type (pgstar_hist_node), pointer :: pg
    1547              : 
    1548              :       logical, parameter :: dbg = .false.
    1549              : 
    1550              :       include 'formats'
    1551              : 
    1552            0 :       ierr = 0
    1553            0 :       pg => s% pg% pgstar_hist
    1554            0 :       if (.not. associated(pg)) return
    1555              : 
    1556            0 :       n = s% number_of_history_columns
    1557              : 
    1558            0 :       if(.not. folder_exists(trim(s% log_directory))) call mkdir(trim(s% log_directory))
    1559            0 :       fname = trim(s% log_directory) // '/pgstar.dat'
    1560              : 
    1561            0 :       if (associated(pg% next)) then
    1562              :          open(newunit = iounit, file = trim(fname), action = 'write', &
    1563            0 :             position = 'append', form = 'unformatted', iostat = ierr)
    1564              :       else
    1565              :          open(newunit = iounit, file = trim(fname), action = 'write', &
    1566            0 :             status = 'replace', form = 'unformatted', iostat = ierr)
    1567            0 :          if (ierr == 0) write(iounit) n
    1568              :       end if
    1569            0 :       if (ierr /= 0) then
    1570            0 :          write(*, *) 'save_pgstar_data: cannot open new file'
    1571            0 :          return
    1572              :       end if
    1573              : 
    1574            0 :       if (associated(pg% vals)) then
    1575            0 :          if (size(pg% vals, dim = 1) >= n) then
    1576            0 :             write(iounit) pg% age, pg% step, pg% vals(1:n)
    1577              :          end if
    1578              :       end if
    1579              : 
    1580            0 :       close(iounit)
    1581              : 
    1582              :    end subroutine update_pgstar_history_file
    1583              : 
    1584              : 
    1585            0 :    subroutine read_pgstar_data(s, ierr)
    1586              :       use utils_lib
    1587              :       type (star_info), pointer :: s
    1588              :       integer, intent(out) :: ierr
    1589              : 
    1590              :       logical :: fexist
    1591              :       integer :: iounit, n
    1592              :       character (len = 1024) :: fname
    1593              :       type (pgstar_hist_node), pointer :: pg
    1594              : 
    1595              :       logical, parameter :: dbg = .false.
    1596              : 
    1597              :       include 'formats'
    1598            0 :       ierr = 0
    1599              : 
    1600            0 :       fname = trim(s% log_directory) // '/pgstar.dat'
    1601            0 :       inquire(file = trim(fname), exist = fexist)
    1602            0 :       if (.not.fexist) then
    1603              :          if (dbg) write(*, *) 'failed to find ' // trim(fname)
    1604            0 :          return
    1605              :       end if
    1606              : 
    1607              :       open(newunit = iounit, file = trim(fname), action = 'read', &
    1608            0 :          status = 'old', iostat = ierr, form = 'unformatted')
    1609            0 :       if (ierr /= 0) then
    1610              :          if (dbg) write(*, *) 'failed to open ' // trim(fname)
    1611              :          return
    1612              :       end if
    1613              : 
    1614            0 :       read(iounit, iostat = ierr) n
    1615            0 :       if (ierr == 0) then
    1616            0 :          if (s% number_of_history_columns < 0) then
    1617            0 :             s% number_of_history_columns = n
    1618            0 :          else if (s% number_of_history_columns /= n) then
    1619            0 :             ierr = -1
    1620              :          end if
    1621              :       end if
    1622              : 
    1623            0 :       if (ierr /= 0) then
    1624              :          if (dbg) write(*, *) 'failed read pg_star history ' // trim(fname)
    1625              :       else
    1626            0 :          do  ! keep reading until reach end of file so take care of restarts
    1627            0 :             allocate(pg)
    1628            0 :             allocate(pg% vals(n))
    1629            0 :             read(iounit, iostat = ierr) pg% age, pg% step, pg% vals(1:n)
    1630            0 :             if (ierr /= 0) then
    1631            0 :                ierr = 0
    1632            0 :                deallocate(pg% vals)
    1633            0 :                deallocate(pg)
    1634            0 :                exit
    1635              :             end if
    1636            0 :             call add_to_pgstar_hist(s, pg)
    1637              :          end do
    1638              :       end if
    1639              : 
    1640            0 :       close(iounit)
    1641              : 
    1642              :    end subroutine read_pgstar_data
    1643              : 
    1644              : 
    1645            0 :    subroutine update_pgstar_data(s, ierr)
    1646              :       use star_utils, only: eval_csound
    1647              : 
    1648              :       type (star_info), pointer :: s
    1649              :       integer, intent(out) :: ierr
    1650              : 
    1651              :       integer :: num
    1652              :       type (pgstar_hist_node), pointer :: pg
    1653              : 
    1654              :       include 'formats'
    1655              : 
    1656            0 :       ierr = 0
    1657            0 :       allocate(pg)
    1658            0 :       pg% step = s% model_number
    1659            0 :       pg% age = s% star_age
    1660            0 :       num = s% number_of_history_columns
    1661            0 :       allocate(pg% vals(num))
    1662            0 :       call get_hist_values(num, ierr)
    1663            0 :       if (ierr /= 0) then
    1664            0 :          write(*, *) 'failed in get_hist_values'
    1665            0 :          return
    1666              :          call mesa_error(__FILE__, __LINE__, 'pgstar')
    1667              :       end if
    1668            0 :       call add_to_pgstar_hist(s, pg)
    1669              : 
    1670              :    contains
    1671              : 
    1672            0 :       subroutine get_hist_values(num, ierr)
    1673              :          use history, only: do_get_data_for_history_columns
    1674              :          integer, intent(in) :: num
    1675              :          integer, intent(out) :: ierr
    1676              :          integer :: i
    1677            0 :          ierr = 0
    1678            0 :          if (s% need_to_set_history_names_etc .or. &
    1679              :             s% model_number_of_history_values /= s% model_number) then
    1680              :             call do_get_data_for_history_columns(&
    1681              :                s, &
    1682            0 :                ierr)
    1683            0 :             if (ierr /= 0) return
    1684              :          end if
    1685            0 :          do i = 1, num
    1686            0 :             pg% vals(i) = s% history_values(i)
    1687              :          end do
    1688              :       end subroutine get_hist_values
    1689              : 
    1690              :    end subroutine update_pgstar_data
    1691              : 
    1692              : 
    1693            0 :    subroutine do_set_xaxis_bounds(&
    1694              :       s, xaxis_by, win_xmin_in, win_xmax_in, xmargin, &
    1695              :       xvec, xmin, xmax, xleft, xright, dx, &
    1696              :       grid_min, grid_max, npts, ierr)
    1697              :       type (star_info), pointer :: s
    1698              :       character (len = *), intent(in) :: xaxis_by
    1699              :       real, intent(in) :: win_xmin_in, win_xmax_in, xmargin
    1700              :       real, allocatable, dimension(:) :: xvec
    1701              :       real, intent(out) :: xmin, xmax, xleft, xright, dx
    1702              :       integer, intent(out) :: grid_min, grid_max, npts
    1703              :       integer, intent(out) :: ierr
    1704              :       call set_xaxis_bounds(&
    1705              :          s, xaxis_by, win_xmin_in, win_xmax_in, .false., xmargin, &
    1706              :          xvec, xmin, xmax, xleft, xright, dx, &
    1707            0 :          grid_min, grid_max, npts, ierr)
    1708            0 :    end subroutine do_set_xaxis_bounds
    1709              : 
    1710              : 
    1711            0 :    subroutine do_show_xaxis_by(s, by, ierr)
    1712              :       type (star_info), pointer :: s
    1713              :       character (len = *), intent(in) :: by
    1714              :       integer, intent(out) :: ierr
    1715            0 :       call show_xaxis_name(s, by, ierr)
    1716            0 :    end subroutine do_show_xaxis_by
    1717              : 
    1718            1 :    subroutine shutdown_pgstar(s)
    1719              :       use pgstar_support
    1720              :       type (star_info), pointer :: s
    1721              : 
    1722            1 :       if(have_initialized_pgstar) then
    1723            0 :          call dealloc(hydrogen_burn_logT)
    1724            0 :          call dealloc(hydrogen_burn_logRho)
    1725            0 :          call dealloc(helium_burn_logT)
    1726            0 :          call dealloc(helium_burn_logRho)
    1727            0 :          call dealloc(carbon_burn_logT)
    1728            0 :          call dealloc(carbon_burn_logRho)
    1729            0 :          call dealloc(oxygen_burn_logT)
    1730            0 :          call dealloc(oxygen_burn_logRho)
    1731            0 :          call dealloc(psi4_logT)
    1732            0 :          call dealloc(psi4_logRho)
    1733            0 :          call dealloc(elect_data_logT)
    1734            0 :          call dealloc(elect_data_logRho)
    1735            0 :          call dealloc(gamma_4_thirds_logT)
    1736            0 :          call dealloc(gamma_4_thirds_logRho)
    1737            0 :          call dealloc(kap_rad_cond_eq_logT)
    1738            0 :          call dealloc(kap_rad_cond_eq_logRho)
    1739            0 :          call dealloc(opal_clip_logT)
    1740            0 :          call dealloc(opal_clip_logRho)
    1741            0 :          call dealloc(scvh_clip_logT)
    1742            1 :          call dealloc(scvh_clip_logRho)
    1743              :       end if
    1744              : 
    1745            1 :       call pgstar_clear(s)
    1746              : 
    1747            1 :       have_initialized_pgstar = .false.
    1748              : 
    1749              :    contains
    1750              : 
    1751            0 :       subroutine dealloc(x)
    1752              :          real, dimension(:), allocatable :: x
    1753              : 
    1754            0 :          if(allocated(x))then
    1755            0 :             deallocate(x)
    1756              :          end if
    1757              : 
    1758              :       end subroutine dealloc
    1759              : 
    1760              :    end subroutine shutdown_pgstar
    1761              : 
    1762              : end module pgstar
        

Generated by: LCOV version 2.0-1