subroutine writeinfo(lat) use bmad use ramp_parameters implicit none type (lat_struct) lat integer i integer, save :: lun lun = lunget() open(unit=lun,file=trim(directory)//'/'//'twissparam.dat') write(lun,'(a)')'Ring branch' write(lun,'(a,es12.4)')'horizontal tune = ',lat%a%tune/twopi write(lun,'(a,es12.4)')'vertical tune = ',lat%b%tune/twopi write(lun,'(a8,a16,1x, 6a14)')'element', 'name', 's', 'beta x', 'phi x', 'eta', 'beta y', 'phi y' do i=1,lat%n_ele_track write(lun,'(i5,4x,a16,1x, 6es14.6)')i, lat%branch(0)%ele(i)%name, lat%ele(i)%s, lat%ele(i)%a%beta, lat%ele(i)%a%phi, lat%ele(i)%x%eta, lat%ele(i)%b%beta, lat%ele(i)%b%phi end do write(lun,'(/,a1,a,/)')'#','Extraction line branch' do i=1,lat%branch(1)%n_ele_track write(lun,'(i5,1x,a16,1x, 8es14.6)')i,lat%branch(1)%ele(i)%name, lat%branch(1)%ele(i)%s, lat%branch(1)%ele(i)%a%beta, lat%branch(1)%ele(i)%a%alpha, lat%branch(1)%ele(i)%a%phi,& lat%branch(1)%ele(i)%x%eta, lat%branch(1)%ele(i)%b%beta, lat%branch(1)%ele(i)%b%alpha, lat%branch(1)%ele(i)%b%phi end do close(unit=lun) return end ! write details at extraction septa to file subroutine write_septa_info(lat,ix_inj, ix_essep, ix_l3, ie_from, ix_magsept1, ix_magsept2, ix_extraction_fork,ix_sext) use bmad use ramp_parameters implicit none type (lat_struct) lat type (ele_struct) ele integer ix_inj, ix_essep, ix_l3, ie_from, ix_magsept1, ix_magsept2, ix_extraction_fork, ix_sext integer ix(8) integer lun integer i ix(1)= ix_inj; ix(2)=ix_essep; ix(3)= ix_l3; ix(4)= ie_from; ix(5)= ix_magsept1; ix(6)= ix_magsept2; ix(7) = ix_extraction_fork; ix(8) = ix_sext lun = lunget() open(unit=lun, file = trim(directory)//'/'//'septa_info.dat') write(lun, '(a10,1x,a16,1x,8a12)')'index','name','s','beta x','beta y','eta x','phi x','phi y','length','kick' do i=1,lat%n_ele_max ele = lat%ele(i) ! if(any(/ix_inj, ix_essep, ix_l3, ie_from, ix_magsept1, ix_magsept2, ix_extraction_fork/ == i))then if(any(ix == i) .or. index(ele%name,'POS')/=0)then write(lun,'(i10,1x,a16,1x,8es12.4)')i,ele%name, ele%s, ele%a%beta,ele%b%beta,ele%x%eta,ele%a%phi,ele%b%phi,ele%value(l$),ele%value(kick$) endif end do close(unit = lun) return end