! input time in seconds, output voltages as KV subroutine bad_resistor_voltages(time, q1Lbottom, q1Ltop) use precision_def use sim_utils implicit none real(rp) time !seconds real(rp) q1Lbottom, q1ltop real(rp) t_dum, q1lt_dum,q1lb_dum real(rp), save, allocatable ::q1lt(:), q1lb(:),t(:) integer time_ind character*130 file_name/'badHVs_recon_from_trackers_v2_HV_18300V_maps_measuredBrad2016_avg_0ppm_60h_yavglim_m0pt04mm_goodearlyfit.dat'/ character*100 string logical first/.true./ integer i,k, lun if(first)then lun=lunget() open(unit = lun, file = file_name) i=0 k=0 do while(k == 0) read(lun, '(a)', iostat=k) string if(index(string,'t[us]')/= 0)cycle read(string, *) t_dum, Q1LT_dum, Q1LB_dum !time in us, voltage in kV i=i+1 !print '(3es12.4)',t_dum,Q1LT_dum,Q1LB_dum end do allocate(t(0:i), q1lt(0:i), q1lb(0:i)) rewind(lun) i=0 k=0 do while(k == 0) read(lun, '(a)', iostat=k) string if(index(string,'t[us]')/= 0)cycle i=i+1 read(string, *) t(i), Q1LT(i), Q1LB(i) if(i == 1) t(0)=t(1); Q1LT(0) = Q1LT(1); Q1LB(0)=Q1LB(1) end do close(unit=lun) first = .false. endif time_ind = time/149.e-9 + 0.5 q1Lbottom = q1lb(time_ind) q1Ltop = q1lt(time_ind) return end