summaryrefslogtreecommitdiff
path: root/fortran/navy_four_levels/FourLevelPulseProp_Double.f95
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/navy_four_levels/FourLevelPulseProp_Double.f95')
-rw-r--r--fortran/navy_four_levels/FourLevelPulseProp_Double.f9519
1 files changed, 12 insertions, 7 deletions
diff --git a/fortran/navy_four_levels/FourLevelPulseProp_Double.f95 b/fortran/navy_four_levels/FourLevelPulseProp_Double.f95
index 881dccb..ddd5dd1 100644
--- a/fortran/navy_four_levels/FourLevelPulseProp_Double.f95
+++ b/fortran/navy_four_levels/FourLevelPulseProp_Double.f95
@@ -29,9 +29,10 @@ program FourLevelPulseProp_v3_Double
integer nmat,npts,Nfrac,Nframe,Nframemax,NSkip,NWrite,tpts,zpts
parameter (nmat=3,npts=100) !matrix size, number of detuning points in dispersion curve
!tpts is the number of temporal points in the cell
- parameter (tpts=10,zpts=tpts+1) !Caution: funny things happened when tpts=200 (and presumably greater)
+ !zpts is the number of z output slices - 1
+ parameter (tpts=200,zpts=10) ! evrything fails with tpts = 100
parameter (Nframemax=2000000)
- parameter (NWrite=100) !number of frames to actually write
+ parameter (NWrite=1) !number of frames to actually write
integer i,j,k,m,n
complex*16 a1,a2,a3,a4,a5,a6
complex*16 b1,b2,b3,b4,b5,b6,b7
@@ -154,11 +155,13 @@ program FourLevelPulseProp_v3_Double
!
tshift=2*tp
write (*,*) 'peak center at the cell begining i.e. tshift = ', tshift
- tmax=Lcell !Length of time to pass cell (no c because we're dimensionless)
- dt=tmax/tpts
- dz=dt !(no c because we're dimensionless)
+ tmax=Lcell*20 !Length of time to pass cell (no c because we're dimensionless)
+ write(*,*) 'tmax = ', tmax
+ write(*,*) 'Lcell = ', Lcell
+ dt=tmax/(tpts-1)
+ dz=Lcell/(zpts-1) !(no c because we're dimensionless)
!write (*,*)'tp = ',tp
- Nframe=zpts+int(4*tp/dt)+1 !Change the number 4 to anything you want to see longer pulse evolution
+ Nframe=tpts !Change the number 4 to anything you want to see longer pulse evolution
if (Nframe.ge.Nframemax) write (*,*)'Error!!!!Nframe>Nframemax'
!
! Initialize matrices
@@ -331,8 +334,10 @@ program FourLevelPulseProp_v3_Double
345 end do
do m=zpts,2,-1
- z(m)=float(m)*dz
+ z(m)=float(m-1)*dz
+ Om_vac(m)=a1*Om_vac(m-1)
+
Om1(m)=a1*Om1(m-1)+a2*rho31_last(m)+a3*rho31_last(m-1)
Om2(m)=b1*Om2(m-1)+b2*rho32_last(m)+b3*rho32_last(m-1)