write_rdm_est_file_header Subroutine

public subroutine write_rdm_est_file_header(write_unit, nrdms_standard, nrdms_transition, filename)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: write_unit
integer, intent(in) :: nrdms_standard
integer, intent(in) :: nrdms_transition
character(len=255), intent(in) :: filename

Contents


Source Code

    subroutine write_rdm_est_file_header(write_unit, nrdms_standard, nrdms_transition, &
                                         filename)

        ! Open a new RDMEstimates file (overwriting any existing file), and
        ! write a header to it, appropriate for when we are sampling nrdms RDMs.

        use CalcData, only: tEN2
        use LoggingData, only: tCalcPropEst, iNumPropToEst

        integer, intent(in) :: write_unit, nrdms_standard, nrdms_transition
        character(255), intent(in) :: filename

        integer :: irdm, iprop

        open(write_unit, file=trim(filename), status='unknown', position='append')

        write(write_unit, '("#", 4X, "Iteration")', advance='no')

        do irdm = 1, nrdms_standard
            write(write_unit, '(4x,"Energy numerator",1x,i2)', advance='no') irdm
            if (.not. tGUGA) then
                write(write_unit, '(4x,"Spin^2 numerator",1x,i2)', advance='no') irdm
            end if
            if (tEN2) then
                write(write_unit, '(7x,"EN2 numerator",1x,i2)', advance='no') irdm
                write(write_unit, '(3x,"Var+EN2 numerator",1x,i2)', advance='no') irdm
            end if
            if (tCalcPropEst) then
                do iprop = 1, iNumPropToEst
                    write(write_unit, '(4x,"Property(",i2,")",1x,i2)', advance='no') iprop, irdm
                end do
            end if
            write(write_unit, '(7x,"Normalisation",1x,i2)', advance='no') irdm
        end do

        do irdm = nrdms_standard + 1, nrdms_standard + nrdms_transition
            if (tCalcPropEst) then
                do iprop = 1, iNumPropToEst
                    write(write_unit, '(4x,"Property(",i2,")",1x,i2)', advance='no') iprop, irdm
                end do
            end if
        end do

        write(write_unit, '()')

    end subroutine write_rdm_est_file_header