| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | ✗ | program test_collis | |
| 2 | ✗ | use collis_alp | |
| 3 | use util, only: p_mass, ev | ||
| 4 | |||
| 5 | implicit none | ||
| 6 | |||
| 7 | double precision, dimension(5) :: z | ||
| 8 | double precision :: am1,am2,Z1,Z2,densi1,densi2,tempi1,tempi2,tempe,ealpha | ||
| 9 | double precision :: v0,dchichi,slowrate,dchichi_norm,slowrate_norm,dtau | ||
| 10 | double precision :: n_d=4.0d0, n_e=2.0d0 ! Test particle mass and charge no. | ||
| 11 | double precision :: trace_time = 1.0d-1 ! Total trace time in seconds | ||
| 12 | |||
| 13 | integer, parameter :: ntimstep=100000 | ||
| 14 | integer :: i,j,k,ierr,npart,ipart | ||
| 15 | double precision, dimension(ntimstep) :: enoftim | ||
| 16 | |||
| 17 | ! namelist /config/ n_d, n_e, ealpha, trace_time, ntimstep | ||
| 18 | ! namelist /collisions/ am1,am2,Z1,Z2,densi1,densi2,tempi1,tempi2,tempe | ||
| 19 | |||
| 20 | ! open(1, file='collis.in') | ||
| 21 | ! read(nml=config, unit=1) | ||
| 22 | ! read(nml=collisions, unit=1) | ||
| 23 | ! close(1) | ||
| 24 | |||
| 25 | ✗ | ealpha=3.5d6 | |
| 26 | ✗ | trace_time=1.d0 | |
| 27 | |||
| 28 | ✗ | am1=2.0d0 | |
| 29 | ✗ | am2=3.0d0 | |
| 30 | ✗ | Z1=1.0d0 | |
| 31 | ✗ | Z2=1.0d0 | |
| 32 | ✗ | densi1=0.5d14 | |
| 33 | ✗ | densi2=0.5d14 | |
| 34 | ✗ | tempi1=1.0d4 | |
| 35 | ✗ | tempi2=1.0d4 | |
| 36 | ✗ | tempe=1.0d4 | |
| 37 | |||
| 38 | call loacol_alpha(am1,am2,Z1,Z2,densi1,densi2,tempi1,tempi2,tempe,ealpha, & | ||
| 39 | ✗ | v0,dchichi,slowrate,dchichi_norm,slowrate_norm) | |
| 40 | |||
| 41 | ✗ | print *, 'v0 = ', v0, ' = ', sqrt(2.d0*ealpha*ev/(n_d*p_mass)) | |
| 42 | |||
| 43 | ✗ | dtau = trace_time*v0/dble(ntimstep-1) | |
| 44 | |||
| 45 | ✗ | print *, 'dtau = ', dtau | |
| 46 | |||
| 47 | ✗ | enoftim=0.d0 | |
| 48 | ✗ | npart=10000 | |
| 49 | ✗ | do ipart=1,npart | |
| 50 | ✗ | z = 0.0d0 | |
| 51 | ✗ | z(4) = 1.0d0 | |
| 52 | ✗ | enoftim(1)=enoftim(1)+1.d0 | |
| 53 | ✗ | do i = 2, ntimstep | |
| 54 | ✗ | call stost(z, dtau, 1, ierr) | |
| 55 | ! if(ierr.ne.0) print *,ierr | ||
| 56 | ✗ | enoftim(i)=enoftim(i)+z(4)**2 | |
| 57 | enddo | ||
| 58 | ✗ | print *,ipart | |
| 59 | enddo | ||
| 60 | ✗ | enoftim=enoftim/dble(npart) | |
| 61 | ✗ | open(1, file='energyslow_aver.dat') | |
| 62 | ✗ | do i = 1, ntimstep | |
| 63 | ✗ | write (1,*) dble(i-1)*dtau/v0, enoftim(i) | |
| 64 | enddo | ||
| 65 | ✗ | close(1) | |
| 66 | ✗ | end program test_collis | |
| 67 |