average.f90

Path: src/util/average.f90
Last Update: Sat Apr 23 00:01:52 JST 2005

    Copyright (C) GFD Dennou Club, 2004. All rights reserved.

begin

Module Average

  * Developer: SUGIYAMA Ko-ichiro (sugiyama@gfd-dennou.org)
  * Version: $Id: average.f90,v 1.2 2005/04/22 15:01:52 sugiyama Exp $
  * Tag Name: $Name:  $
  * Change History:

Overview

物理量の平均操作を行うための一連の関数をまとめたパッケージ型モジュール. 水平 Arakawa-C, 鉛直 Lorentz グリッドとする.

Error Handling

Known Bugs

Note

Future Plans

end

Methods

Included Modules

gridset

Public Instance methods

ff_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! ! ff 格子点位置での平均操作 !

[Source]




function ff_avr_fs(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ff_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ff_avr_fs = 0.0d0 
  ff_avr_fs(DimXMin : DimXMax, DimZMin : DimZMax-1) =         (                                                 var(DimXMin : DimXMax, DimZMin+1 : DimZMax)     + var(DimXMin : DimXMax, DimZMin   : DimZMax-1)    ) * 5.0d-1
end function ff_avr_fs
ff_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! ! ff 格子点位置での平均操作 !

[Source]




function ff_avr_sf(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ff_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ff_avr_sf = 0.0d0 
  ff_avr_sf(DimXMin : DimXMax-1 , DimZMin : DimZMax) =         (                                                 var(DimXMin+1 : DimXMax,   DimZMin : DimZMax)     + var(DimXMin   : DimXMax-1, DimZMin : DimZMax)    ) * 5.0d-1
end function ff_avr_sf
ff_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! ! ff 格子点位置での平均操作 !

[Source]


function ff_avr_ss(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ff_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ff_avr_ss = 0.0d0 
  ff_avr_ss(DimXMin : DimXMax-1, DimZMin : DimZMax-1) =         (                                     var(DimXMin+1 : DimXMax,   DimZMin+1 : DimZMax   )     + var(DimXMin+1 : DimXMax,   DimZMin   : DimZMax-1 )     + var(DimXMin   : DimXMax-1, DimZMin+1 : DimZMax   )     + var(DimXMin   : DimXMax-1, DimZMin   : DimZMax-1 )    ) * 2.5d-1
end function ff_avr_ss
fs_avr_ff(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 u の位置での平均操作 !

[Source]




function fs_avr_ff(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: fs_avr_ff(DimXMin:DimXMax, DimZMin:DimZMax)
  
  fs_avr_ff = 0.0d0 
  fs_avr_ff(DimXMin : DimXMax, DimZMin+1 : DimZMax) =         (                                                 var(DimXMin : DimXMax, DimZMin+1 : DimZMax  )     + var(DimXMin : DimXMax, DimZMin   : DimZMax-1)    ) * 5.0d-1
end function fs_avr_ff
fs_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 u の位置での平均操作 !

[Source]




function fs_avr_fs(var) 

  implicit none

  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: fs_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax)
  
  fs_avr_fs = var

end function fs_avr_fs
fs_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 u の位置での平均操作 !

[Source]




function fs_avr_sf(var) 

  implicit none

  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: fs_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax)
  
  fs_avr_sf = 0.0d0 
  fs_avr_sf(DimXMin : DimXMax-1, DimZMin+1 : DimZMax) =           (                                                          var(DimXMin+1 : DimXMax,   DimZMin+1 : DimZMax  )     + var(DimXMin+1 : DimXMax,   DimZMin   : DimZMax-1)     + var(DimXMin   : DimXMax-1, DimZMin+1 : DimZMax  )     + var(DimXMin   : DimXMax-1, DimZMin   : DimZMax-1)    ) * 2.5d-1
end function fs_avr_sf
fs_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 u の位置での平均操作 !

[Source]


function fs_avr_ss(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: fs_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax)
  
  fs_avr_ss = 0.0d0 
  fs_avr_ss(DimXMin : DimXMax-1, DimZMin : DimZMax) =           (                                                        var(DimXMin+1 : DimXMax   , DimZMin : DimZMax)      + var(DimXMin   : DimXMax-1 , DimZMin : DimZMax)     ) * 5.0d-1
end function fs_avr_ss
sf_avr_ff(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 w の位置での平均操作 !

[Source]




function sf_avr_ff(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: sf_avr_ff(DimXMin:DimXMax, DimZMin:DimZMax)
  
  sf_avr_ff = 0.0d0 
  sf_avr_ff(DimXMin+1 : DimXMax, DimZMin : DimZMax) =         (                                                 var(DimXMin+1 : DimXMax,   DimZMin : DimZMax)     + var(DimXMin   : DimXMax-1, DimZMin : DimZMax)    ) * 5.0d-1
end function sf_avr_ff
sf_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 w の位置での平均操作 !

[Source]



  
function sf_avr_fs(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: sf_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax)
  
  sf_avr_fs = 0.0d0 
  sf_avr_fs(DimXMin+1 : DimXMax, DimZMin : DimZMax-1 ) =         (                                     var(DimXMin+1 :DimXMax,   DimZMin+1 : DimZMax  )     + var(DimXMin+1 :DimXMax,   DimZMin   : DimZMax-1)     + var(DimXMin   :DimXMax-1, DimZMin+1 : DimZMax  )     + var(DimXMin   :DimXMax-1, DimZMin   : DimZMax-1)    ) * 2.5d-1
end function sf_avr_fs
sf_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 w の位置での平均操作 !

[Source]




function sf_avr_sf(var) 

  implicit none

  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: sf_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax)
  
  sf_avr_sf = var
end function sf_avr_sf
sf_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !速度 w の位置での平均操作 !

[Source]

  
function sf_avr_ss(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: sf_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax)
  
  sf_avr_ss = 0.0d0 
  sf_avr_ss(DimXMin : DimXMax, DimZMin : DimZMax-1) =           (                                     var( DimXMin : DimXMax, DimZMin+1 :DimZMax   )       + var( DimXMin : DimXMax, DimZMin   :DimZMax-1 )      ) * 5.0d-1
end function sf_avr_ss
ss_avr_ff(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !スカラーの位置での平均操作 !

[Source]


  
  
function ss_avr_ff(var)

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ss_avr_ff(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ss_avr_ff = 0.0d0 
  ss_avr_ff(DimXMin+1 : DimXMax, DimZMin+1 : DimZMax) =             (                                                            var(DimXMin+1 : DimXMax,   DimZMin+1 : DimZMax   )      + var(DimXMin+1 : DimXMax,   DimZMin   : DimZMax-1 )      + var(DimXMin   : DimXMax-1, DimZMin+1 : DimZMax   )      + var(DimXMin   : DimXMax-1, DimZMin   : DimZMax-1 )     ) * 2.5d-1
end function ss_avr_ff
ss_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !スカラーの位置での平均操作 !

[Source]




function ss_avr_fs(var) 

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ss_avr_fs(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ss_avr_fs = 0.0d0 
  ss_avr_fs(DimXMin+1 : DimXMax, DimZMin : DimZMax) =            (                                                         var(DimXMin+1 : DimXMax,   DimZMin : DimZMax)        + var(DimXMin   : DimXMax-1, DimZMin : DimZMax)       ) * 5.0d-1
end function ss_avr_fs
ss_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !スカラーの位置での平均操作 !

[Source]


  
  
function ss_avr_sf(var)

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ss_avr_sf(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ss_avr_sf = 0.0d0 
  ss_avr_sf(DimXMin : DimXMax, DimZMin+1 : DimZMax) =            (                                                         var(DimXMin : DimXMax, DimZMin+1 : DimZMax   )       + var(DimXMin : DimXMax, DimZMin   : DimZMax-1 )      ) * 5.0d-1
end function ss_avr_sf
ss_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax) :real(8)
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

! !スカラーの位置での平均操作 !

[Source]

function ss_avr_ss(var)

  implicit none
  
  real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8)              :: ss_avr_ss(DimXMin:DimXMax, DimZMin:DimZMax)
  
  ss_avr_ss = var

end function ss_avr_ss

[Validate]