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

Generated by: LCOV version 2.0-1