subroutine write_trial_space() use FciMCData, only: trial_space, trial_space_size integer :: i, j, k, iunit, ierr logical :: texist character(len=*), parameter :: t_r = 'write_trial_space' write(stdout, '("Writing the trial space to a file...")'); iunit = get_free_unit() ! Let each processor write its trial states to the file. Each processor waits for ! the processor before it to finish before starting. do i = 0, nProcessors - 1 if (iProcIndex == i) then if (i == 0) then open(iunit, file='TRIALSPACE', status='replace') else inquire (file='TRIALSPACE', exist=texist) if (.not. texist) call stop_all(t_r, '"TRIALSPACE" file not found') open(iunit, file='TRIALSPACE', status='old', position='append') end if do j = 1, trial_space_size do k = 0, nifd write(iunit, '(i24)', advance='no') trial_space(k, j) end do write(iunit, *) end do close(iunit) end if call MPIBarrier(ierr) if (i == 0) call MPIBCast(iunit, 0) end do end subroutine write_trial_space