SSfluxLink_resolution_from_and_to_ports Subroutine

public subroutine SSfluxLink_resolution_from_and_to_ports(me)

Arguments

Type IntentOptional Attributes Name
type(SSfluxLink_t), intent(inout) :: me

Called by

proc~~ssfluxlink_resolution_from_and_to_ports~~CalledByGraph proc~ssfluxlink_resolution_from_and_to_ports SSfluxLink_resolution_from_and_to_ports proc~main_loop main_loop proc~main_loop->proc~ssfluxlink_resolution_from_and_to_ports program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

subroutine SSfluxLink_resolution_from_and_to_ports(me)
    type(SSfluxLink_t), intent(inout) :: me

    real(dp) :: TempS(me%NbSolLk), lambdS(me%NbSolLk), DerlambdS(me%NbSolLk), AreaMS(me%NbSolLk), sgn(me%NbSolLk), dxLoc(me%NbSolLk)
    real(dp) :: FlxS, DerFlxSdT1, DerFlxSdT2, Tint, num, den, DerTint(me%NbSolLk)
    integer :: NbSolLk, ibr

    NbSolLk=me%NbSolLk
    do ibr=1,NbSolLk
      TempS(ibr)=me%solLk(ibr)%p%TempS
      lambdS(ibr)=me%solLk(ibr)%p%lambdS
      DerlambdS(ibr)=me%solLk(ibr)%p%DerlambdS
      AreaMS(ibr)=me%solLk(ibr)%p%AreaS
      sgn(ibr)=me%solLk(ibr)%p%Sgn4lk 
      dxLoc(ibr)=me%solLk(ibr)%p%dxLoc
    enddo

    Tint=(lambdS(1)*dxLoc(2)*TempS(1)+lambdS(2)*dxLoc(1)*TempS(2))/(lambdS(1)*dxLoc(2)+lambdS(2)*dxLoc(1))
    num=lambdS(1)*dxLoc(2)*TempS(1)+lambdS(2)*dxLoc(1)*TempS(2)
    den=lambdS(1)*dxLoc(2)+lambdS(2)*dxLoc(1)
    DerTint(1)=dxLoc(2)*((DerlambdS(1)*TempS(1)+lambdS(1))*den-num*DerlambdS(1))/(den**2)
    DerTint(2)=dxLoc(1)*((DerlambdS(2)*TempS(2)+lambdS(2))*den-num*DerlambdS(2))/(den**2)

    FlxS=-2.0_dp*lambdS(1)*(Tint-TempS(1))/dxLoc(1)
    DerFlxSdT1=-(2.0_dp/dxLoc(1))*(DerlambdS(1)*(Tint-TempS(1))+lambdS(1)*(DerTint(1)-1.0_dp))
    DerFlxSdT2=-(2.0_dp/dxLoc(1))*lambdS(1)*DerTint(2)

    me%solLk(1)%p%Flx=sgn(1)*FlxS
    me%solLk(1)%p%derFlx_derCon=sgn(1)*DerFlxSdT1
    me%solLk(2)%p%Flx=-sgn(2)*FlxS
    me%solLk(2)%p%derFlx_derCon=-sgn(2)*DerFlxSdT2

    me%derFlx_derOth12=sgn(1)*DerFlxSdT2
    me%derFlx_derOth21=-sgn(2)*DerFlxSdT1
   
end subroutine SSfluxLink_resolution_from_and_to_ports