Class StoreMom
In: setup/storemom.f90

運動量に関する積算値を保管するための変数型モジュール.

Methods

Included Modules

gridset TimeSet

Public Instance methods

Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

移流項の保管

[Source]

  subroutine StoreMomAdv( Work )
    !移流項の保管

    implicit none

    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)

    Work2  = pz_MomAdv + Work
    pz_MomAdv = Work2

  end subroutine StoreMomAdv
Subroutine :

保管した値のクリアー

[Source]

  subroutine StoreMomClean( )
    !保管した値のクリアー
    
    z_MomAdv  = 0.0d0
    z_MomTurb = 0.0d0
    z_MomDiff = 0.0d0
    z_MomFlux = 0.0d0

    pz_MomAdv  = 0.0d0
    pz_MomTurb = 0.0d0
    pz_MomDiff = 0.0d0
    pz_MomFlux = 0.0d0
   
!    CalNum  = 1.0d-40    !ゼロ割を禁止. 
  end subroutine StoreMomClean
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

数値拡散項の保管

[Source]

  subroutine StoreMomDiff( Work )
    !数値拡散項の保管

    implicit none
    
    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)

    Work2   = pz_MomDiff + Work
    pz_MomDiff = Work2

  end subroutine StoreMomDiff
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

運動量フラックスの保管

[Source]

  subroutine StoreMomFlux( Work )
    !運動量フラックスの保管

    implicit none

    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)

    Work2  = pz_MomFlux + Work
    pz_MomFlux = Work2

  end subroutine StoreMomFlux
Subroutine :

保管した値の水平平均値 [kg.m/s^2]

[Source]

  subroutine StoreMomMeanX( )
    !保管した値の水平平均値 [kg.m/s^2]
    real(8) :: CalNum

    CalNum = TimeDisp / DelTimeLong 
    
    z_MomAdv  = a_MeanX_aa( pz_MomAdv )   / CalNum
    z_MomTurb = a_MeanX_aa( pz_MomTurb )  / CalNum
    z_MomDiff = a_MeanX_aa( pz_MomDiff )  / CalNum
    z_MomFlux = a_MeanX_aa( pz_MomFlux )  / CalNum

  end subroutine StoreMomMeanX
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

乱流項の保管

[Source]

  subroutine StoreMomTurb( Work )
    !乱流項の保管

    implicit none

    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
    
    Work2   = pz_MomTurb + Work
    pz_MomTurb = Work2

  end subroutine StoreMomTurb
Subroutine :

初期化ルーチン

[Source]

  subroutine StoreMom_Init( )
    !初期化ルーチン

    allocate( z_MomAdv(DimZMin:DimZMax), z_MomTurb(DimZMin:DimZMax), z_MomDiff(DimZMin:DimZMax), z_MomFlux(DimZMin:DimZMax), pz_MomAdv(DimXMin:DimXMax, DimZMin:DimZMax), pz_MomTurb(DimXMin:DimXMax, DimZMin:DimZMax), pz_MomDiff(DimXMin:DimXMax, DimZMin:DimZMax), pz_MomFlux(DimXMin:DimXMax, DimZMin:DimZMax) )

    call StoreMomClean

  end subroutine StoreMom_Init
pz_MomAdv
Variable :
pz_MomAdv(:,:) :real(8), allocatable
pz_MomDiff
Variable :
pz_MomDiff(:,:) :real(8), allocatable
pz_MomFlux
Variable :
pz_MomFlux(:,:) :real(8), allocatable
pz_MomTurb
Variable :
pz_MomTurb(:,:) :real(8), allocatable
z_MomAdv
Variable :
z_MomAdv(:) :real(8), allocatable
z_MomDiff
Variable :
z_MomDiff(:) :real(8), allocatable
z_MomFlux
Variable :
z_MomFlux(:) :real(8), allocatable
z_MomTurb
Variable :
z_MomTurb(:) :real(8), allocatable