no_optimisation Subroutine

public subroutine no_optimisation()

Arguments

None

Contents

Source Code


Source Code

  subroutine no_optimisation()
    use constants, only: mfile, nout
    use numerics, only: neqns, nineqns, ipeqns, icc, lablcc, rcm, norm_objf
    use process_output, only: int_to_string3, ovarre, ocmmnt, oblnkl, osubhd, &
      oheadr
    use constraints, only: constraint_eqns
    use function_evaluator, only: funfom

    implicit none

    integer :: inn
    real(dp), dimension(ipeqns) :: con1, con2, err
    character(len=1), dimension(ipeqns) :: sym
    character(len=10), dimension(ipeqns) :: lab


    call oheadr(nout,'Numerics')
    call ocmmnt(nout,'PROCESS has performed a run witout optimisation.')
    call oblnkl(nout)

    ! Evaluate objective function
    call funfom(norm_objf)
    call ovarre(mfile,'Normalised objective function','(norm_objf)',norm_objf)

    ! Print the residuals of the constraint equations
    call constraint_eqns(neqns+nineqns,-1,con1,con2,err,sym,lab)
    write(nout,120)
    120 format(t48,'physical',t73,'constraint',t100,'normalised')
    write(nout,130)
    130 format(t47,'constraint',t74,'residue',t101,'residue')
    call oblnkl(nout)
    do inn = 1,neqns
      write(nout,140) inn,lablcc(icc(inn)),sym(inn),con2(inn), &
      lab(inn),err(inn),lab(inn),con1(inn)
      call ovarre(mfile,lablcc(icc(inn))//' normalised residue', &
      '(eq_con'//int_to_string3(icc(inn))//')',con1(inn))
    end do

    140 format(t2,i4,t8,a33,t46,a1,t47,1pe12.4,t60,a10,t71,1pe12.4,t84,a10,t98,1pe12.4)

    if (nineqns > 0) then
      call osubhd(nout, &
      'The following inequality constraint residues should be greater than or approximately equal to zero :')

      do inn = neqns+1,neqns+nineqns
        write(nout,140) inn,lablcc(icc(inn)),sym(inn),con2(inn), &
        lab(inn), err(inn), lab(inn)
        call ovarre(mfile,lablcc(icc(inn)),'(ineq_con'//int_to_string3(icc(inn))//')',con1(inn))
      end do
    end if
  end subroutine no_optimisation