oggsst Subroutine

private subroutine oggsst(me, Varsen, Quasen, Consen, Actsen, Dersen, Actsav, Consav, Redsav, Dersav, Actnum)

NEAR-LINEAR OPTIMIZATION TOOL SENSITIVITY ANALYSIS

Function to get sensitivity state data, necessary for serialization. Do not use this directly except in serialization routines

2021/07/19 | M. von Looz | NEW

Type Bound

optgra

Arguments

Type IntentOptional Attributes Name
class(optgra), intent(inout) :: me
real(kind=wp), intent(out) :: Varsen(me%Numvar)

STORED VARIABLES VALUE

real(kind=wp), intent(out) :: Quasen(me%Numcon+1)

STORED CONSTRAINTS CORRECTION VECTOR

real(kind=wp), intent(out) :: Consen(me%Numcon+1)

STORED CONSTRAINTS VALUE

integer(kind=ip), intent(out) :: Actsen(me%Numcon+1)

STORED CONSTRAINTS ACTIVE

real(kind=wp), intent(out) :: Dersen(me%Numcon+1,me%Numvar)

STORED DERIVATIVE

integer(kind=ip), intent(out) :: Actsav(me%Numcon+1)

STORED ACTIVE CONSTRAINTS

integer(kind=ip), intent(out) :: Consav(me%Numcon+4)

STORED ACTIVE CONSTRAINTS

real(kind=wp), intent(out) :: Redsav(me%Numcon+3,me%Numvar)

STORED DERIVATIVE

real(kind=wp), intent(out) :: Dersav(me%Numcon+3,me%Numvar)

STORED DERIVATIVE

integer(kind=ip), intent(out) :: Actnum

NUMBER OF ACTIVE CONSTRAINTS


Source Code

   subroutine oggsst(me,Varsen,Quasen,Consen,Actsen,Dersen,Actsav,Consav,Redsav,Dersav,Actnum)

      !! NEAR-LINEAR OPTIMIZATION TOOL SENSITIVITY ANALYSIS
      !!
      !! Function to get sensitivity state data, necessary for serialization.
      !! Do not use this directly except in serialization routines
      !!
      !! 2021/07/19 | M. von Looz | NEW

      class(optgra),intent(inout) :: me
      real(wp),intent(out) :: Varsen(me%Numvar) !! STORED VARIABLES VALUE
      real(wp),intent(out) :: Quasen(me%Numcon+1) !! STORED CONSTRAINTS CORRECTION VECTOR
      real(wp),intent(out) :: Consen(me%Numcon+1) !! STORED CONSTRAINTS VALUE
      integer(ip),intent(out) :: Actsen(me%Numcon+1) !! STORED CONSTRAINTS ACTIVE
      real(wp),intent(out) :: Dersen(me%Numcon+1,me%Numvar) !! STORED DERIVATIVE
      integer(ip),intent(out) :: Actsav(me%Numcon+1) !! STORED ACTIVE CONSTRAINTS
      integer(ip),intent(out) :: Consav(me%Numcon+4) !! STORED ACTIVE CONSTRAINTS
      real(wp),intent(out) :: Redsav(me%Numcon+3,me%Numvar) !! STORED DERIVATIVE
      real(wp),intent(out) :: Dersav(me%Numcon+3,me%Numvar) !! STORED DERIVATIVE
      integer(ip),intent(out) :: Actnum !! NUMBER OF ACTIVE CONSTRAINTS

      integer(ip) :: var , con

      ! Variable values saved for sensitivity
      Actnum = me%Numact

      do var = 1 , me%Numvar
         Varsen(var) = me%Senvar(var)
      end do

      do con = 1 , me%Numcon + 1
         Quasen(con) = me%Senqua(con)
         Consen(con) = me%Sencon(con)
         Actsen(con) = me%Senact(con)
         do var = 1 , me%Numvar
            Dersen(con,var) = me%Sender(con,var)
         end do
      end do

      ! Temporary status saved of which constraints are active
      do con = 1 , me%Numcon + 1
         Actsav(con) = me%Actcon(con)
      end do

      do con = 1 , me%Numcon + 4
         Consav(con) = me%Conact(con)
      end do

      do con = 1 , me%Numcon + 3
         do var = 1 , me%Numvar
            Redsav(con,var) = me%Conred(con,var)
            Dersav(con,var) = me%Conder(con,var)
         end do
      end do

   end subroutine oggsst