ogssst Subroutine

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

NEAR-LINEAR OPTIMIZATION TOOL SENSITIVITY ANALYSIS

Function to set 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(in) :: Varsen(me%Numvar)

STORED VARIABLES VALUE

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

STORED CONSTRAINTS CORRECTION VECTOR

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

STORED CONSTRAINTS VALUE

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

STORED CONSTRAINTS ACTIVE

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

STORED DERIVATIVE

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

STORED ACTIVE CONSTRAINTS

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

STORED ACTIVE CONSTRAINTS

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

STORED DERIVATIVE

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

STORED DERIVATIVE

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

Source Code

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

      !! NEAR-LINEAR OPTIMIZATION TOOL SENSITIVITY ANALYSIS
      !!
      !! Function to set 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(in)    :: Varsen(me%Numvar) !! STORED VARIABLES VALUE
      real(wp),intent(in)    :: Quasen(me%Numcon+1) !! STORED CONSTRAINTS CORRECTION VECTOR
      real(wp),intent(in)    :: Consen(me%Numcon+1) !! STORED CONSTRAINTS VALUE
      integer(ip),intent(in) :: Actsen(me%Numcon+1) !! STORED CONSTRAINTS ACTIVE
      real(wp),intent(in)    :: Dersen(me%Numcon+1,me%Numvar) !! STORED DERIVATIVE
      integer(ip),intent(in) :: Actsav(me%Numcon+1) !! STORED ACTIVE CONSTRAINTS
      integer(ip),intent(in) :: Consav(me%Numcon+4) !! STORED ACTIVE CONSTRAINTS
      real(wp),intent(in)    :: Redsav(me%Numcon+3,me%Numvar) !! STORED DERIVATIVE
      real(wp),intent(in)    :: Dersav(me%Numcon+3,me%Numvar) !! STORED DERIVATIVE
      integer(ip),intent(in) :: Actnum

      integer(ip) :: var , con

      ! Variable values saved for sensitivity
      me%Numact = Actnum

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

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

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

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

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

      do con = 1 , me%Numcon
         do var = 1 , me%Numvar
            me%Conder(con,var) = Dersav(con,var)
         end do
      end do
   end subroutine ogssst