35 real(8) av0(3),t0,d,w,phi,rc
37 real(8) av(3),s0,sv(3)
43 open(50,file=
'TD_INFO.OUT',form=
'FORMATTED')
45 write(50,
'("(All units are atomic unless otherwise specified)")')
47 write(50,
'("1 atomic unit of time is ",G18.10," attoseconds")')
t_si*1.d18
49 write(50,
'("Total simulation time : ",G18.10)')
tstime 50 write(50,
'(" in attoseconds : ",G18.10)')
tstime*
t_si*1.d18
52 write(50,
'("Time step length : ",G18.10)')
dtimes 53 write(50,
'(" in attoseconds : ",G18.10)')
dtimes*
t_si*1.d18
55 write(50,
'("Number of time steps : ",I8)')
ntimes 57 write(50,
'("Number of laser pulses : ",I6)')
npulse 58 write(50,
'("Number of ramps : ",I6)')
nramp 59 write(50,
'("Number of steps : ",I6)')
nstep 87 s=d/(2.d0*sqrt(2.d0*log(2.d0)))
90 write(50,
'("Pulse : ",I6)') i
91 write(50,
'(" vector amplitude : ",3G18.10)') av0(:)
92 write(50,
'(" laser frequency : ",G18.10)') w
93 write(50,
'(" in eV : ",G18.10)') w*
ha_ev 94 write(50,
'(" laser wavelength (Angstroms) : ",G18.10)') 1.d10/(w*
ha_im)
95 write(50,
'(" phase (degrees) : ",G18.10)') phi
96 write(50,
'(" chirp rate : ",G18.10)') rc
97 write(50,
'(" peak time : ",G18.10)') t0
98 write(50,
'(" full-width at half-maximum : ",G18.10)') d
99 write(50,
'(" Gaussian σ = FWHM / 2√(2ln2) : ",G18.10)') s
100 t1=av0(1)**2+av0(2)**2+av0(3)**2
102 write(50,
'(" peak laser power density : ",G18.10)') ppd
103 write(50,
'(" in W/cm² : ",G18.10)') ppd*cpd
106 sv(1:3)=
pulse(10:12,i)
107 write(50,
'(" spin components for σ_0, σ_x, σ_y, σ_z : ")')
108 write(50,
'(4G18.10)') s0,sv(:)
115 t3=w*t1+phi*
pi/180.d0+0.5d0*rc*t**2
117 if (abs(ft) < 1.d-20) ft=0.d0
122 afspt(1:3,j,its)=
afspt(1:3,j,its)+av(1:3)*sv(j)
147 write(50,
'("Ramp : ",I6)') i
148 write(50,
'(" vector amplitude : ",3G18.10)') av0(:)
149 write(50,
'(" ramp start time : ",G18.10)') t0
150 write(50,
'(" coefficients : ",4G18.10)') t1,t2,t3,t4
153 sv(1:3)=
ramp(10:12,i)
154 write(50,
'(" spin components for σ_0, σ_x, σ_y, σ_z : ")')
155 write(50,
'(4G18.10)') s0,sv(:)
161 ft=t*(t1+t*(t2+t*(t3+t*t4)))
165 afspt(1:3,j,its)=
afspt(1:3,j,its)+av(1:3)*sv(j)
185 write(50,
'("Step : ",I6)') i
186 write(50,
'(" vector amplitude : ",3G18.10)') av(:)
187 write(50,
'(" step start and stop times : ",2G18.10)') t0,t1
191 write(50,
'(" spin components for σ_0, σ_x, σ_y, σ_z : ")')
192 write(50,
'(4G18.10)') s0,sv(:)
202 afspt(1:3,j,its)=
afspt(1:3,j,its)+av(1:3)*sv(j)
210 open(50,file=
'AFIELDT.OUT',form=
'FORMATTED')
211 write(50,
'(I8," : number of time steps")')
ntimes 218 open(50,file=
'AFSPT.OUT',form=
'FORMATTED')
219 write(50,
'(I8," : number of time steps")')
ntimes 221 write(50,
'(I8,10G18.10)') its,
times(its),
afspt(:,:,its)
226 write(*,
'("Info(genafieldt):")')
227 write(*,
'(" Time-dependent A-field written to AFIELDT.OUT")')
229 write(*,
'(" Time- and spin-dependent A-field written to AFSPT.OUT")')
231 write(*,
'(" Laser pulse, ramp and step parameters written to TD_INFO.OUT")')
233 write(*,
'(" 1 atomic unit of time is ",G18.10," attoseconds")')
t_si*1.d18
234 write(*,
'(" Total simulation time : ",G18.10)')
tstime 235 write(*,
'(" in attoseconds : ",G18.10)')
tstime*
t_si*1.d18
real(8), dimension(:,:), allocatable ramp
real(8), dimension(:,:), allocatable pulse
real(8), dimension(:,:), allocatable afieldt
real(8), dimension(:,:), allocatable step
real(8), dimension(:), allocatable times
real(8), dimension(:,:,:), allocatable afspt