diff options
-rw-r--r-- | fortran/navy_four_levels/FourLevelPulseProp_Double.f95 | 19 |
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) |