anchor.diff:  
       ! name list to drive model
       namelist /driver/ nloop, ntime, input_forcing, output, validation 
  +
  +#if MPI
  +    integer :: ierr, num_procs, my_id
  +
  +    ! MPI directives
  +    call MPI_INIT ( ierr )
  +    !     find out MY process ID, and how many processes were started.
  +
  +    call MPI_COMM_RANK (MPI_COMM_WORLD, my_id, ierr)
  +    call MPI_COMM_SIZE (MPI_COMM_WORLD, num_procs, ierr)
  +#endif
   
       write(*,*) "\x1B[32mrun_particles:\x1B[0m start particle calculation."
       prog_name = "run_particles"
  
positive.code:       
      use utils
      use surface_physics
  
      implicit none
  
  
negative.code:     allocate(state%melt(ntime))
      allocate(state%acc(ntime))
  
  #if MPI
      do i = i0+my_id,i1,num_procs
  #else
      do i = i0, i1
  #endif
          write(nml_file,"(A,I6.6,A)") trim(prefix), i, ".nml"
          inquire(file=nml_file, exist=file_exists)
          if (.not. file_exists) then
              write(*,*) "file '", trim(nml_file), "' not found, exiting loop"
  