📄 departuresum_mod.f90
字号:
!#######################################################
!## ------求序列的累积距平序列(2005-03-31)------
!## ------结果返回,同时可选择是否直接输出------
!##
!## ---虚参说明---
!## staStep : 序列起始时刻
!##
!## inSeries : 输入用于求距平累加的序列
!##
!## outSeries : 输出距平累加序列
!##
!## filepath : 输出文件路径,可选
!##
!## filename : 结果输出文件名,可选
!##
!#######################################################
module DepartureSum_mod
implicit none
contains
subroutine DepSum ( staStep, inSeries, outSeries, filepath, filename )
integer, intent ( in ) :: staStep
real, dimension ( : ), intent ( in ) :: inSeries
real, dimension ( : ), intent ( out ) :: outSeries
character ( len = * ), intent ( in ), optional :: filepath, filename
integer :: i, n
real :: ave=0
n = size( inSeries )
ave = sum( inSeries(1:n) ) / real( n ) !如果用传入序列的部分均值做基本均值,则可在此修改
do i = 1, n
outSeries( i ) = inSeries( i ) - ave
end do
do i = 2, n
outSeries( i ) = outSeries( i ) + outSeries( i-1 )
end do
!#####################################################
! OUTPUT
if ( present( filepath ) .and. present( filename ) ) then
open ( 1, file=trim( adjustl( filepath ) ) // filename // ".txt", status="unknown" )
write ( *, * ) " Call DepSum function and output " // filename
write ( *, * ) trim( adjustl( filepath ) ) // filename // ".txt"
write ( *, * )
do i = 1, n
write ( 1, "(i4,2f10.1)" ) staStep+i-1, inSeries( i ), outSeries( i )
end do
close ( 1 )
end if
end subroutine DepSum
end module DepartureSum_mod
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -