anchor.diff:  	DO WHILE ((n<nmax))
   	 n=n+1
        DO l=1,ss
  -     ! Solve first nonlinear part
  +      ! Solve first nonlinear part
         CALL nonlinear1(dt,aa(l),uhigh,vhigh,decomp)
         ! Solve second nonlinear part
         CALL nonlinear2(dt,bb(l),uhigh,vhigh,decomp)
  -	  ! solve linear part exactly in Fourier space
  -	  CALL linear(a,b,Du,Dv,dt,modescalereal,cc(l),kx,ky,kz,uhigh,vhigh,uhat,vhat,decomp)
  -	 !end loop on stages for splitting method indexed by l
  -	 END DO 		
  -	 time(n)=time(n-1)+dt
  +      ! solve linear part exactly in Fourier space
  +      CALL linear(a,b,Du,Dv,dt,modescalereal,cc(l),kx,ky,kz,uhigh,vhigh,uhat,vhat,decomp)
  +      !end loop on stages for splitting method indexed by l
  +     END DO 		
  +     time(n)=time(n-1)+dt
   
     !write data		
   	  IF (time(n).ge.plottime) THEN
  
positive.code: 
  	!initial condition
  	CALL MPI_BARRIER(MPI_COMM_WORLD,ierr)
    CALL initialdata(Nx,Ny,Nz,x,y,z,uhigh,vhigh,decomp)
  	n=1
  	time(n)=0.0
  	plotnum=10000000
  	!Write initial data to disc
      CALL savedata(Nx,Ny,Nz,plotnum,name,savefield,uhigh,vhigh,decomp)
  	IF (myid.eq.0) THEN
  	 PRINT *,'Got initial data, starting timestepping'
  	END IF
  
negative.code:  	DEALLOCATE(uhigh,vhigh,&
  		        uhat,vhat,&
     		        kx,ky,x,y,savefield,&	
     		        time,stat=AllocateStatus)	
  	IF (AllocateStatus .ne. 0) STOP 
  
  	IF (myid.eq.0) THEN
  