第四章:蒙古高壓特征分析
4.1
實(shí)驗(yàn)實(shí)習(xí)目的(1)掌握氣象要素氣候及異常特征的基本研究方法。
(2)進(jìn)一步鞏固FORTRAN順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法和變量、函數(shù)、數(shù)組的使用方法,重點(diǎn)掌握外部文件對(duì)數(shù)據(jù)進(jìn)行輸入輸出操作的方法。
(3)了解并掌握GrADS的使用流程。
(4)學(xué)習(xí)并掌握數(shù)據(jù)描述文件(*.ctl文件)的書寫方法。
(5)學(xué)習(xí)書寫簡(jiǎn)單的“*.gs”文件。
(6)掌握GrADS中open、reinit、d、c、quit、q、run等基本命令的使用方法。
(7)掌握GrADS維數(shù)環(huán)境設(shè)置方法。
(8)掌握GrADS繪制“l(fā)ine”、“bar”圖形類型的方法,繪制1951-2010年蒙古高壓強(qiáng)度異常的時(shí)間序列圖。
(9)掌握保存GrADS繪制圖形的一種方法。
4.2
實(shí)驗(yàn)實(shí)習(xí)內(nèi)容
4.2.1
問題描述
已知1951-2010年一月蒙古高壓強(qiáng)度、面積、位置指數(shù)序列,計(jì)算蒙古高壓各指數(shù)的氣候值、變率和距平,繪制蒙古高壓的強(qiáng)度、面積、位置指數(shù)序列的時(shí)間序列圖,分析冬季蒙古高壓的異常規(guī)律。
4.2.2
問題分析
已知:1951-2010年一月蒙古高壓強(qiáng)度、面積、經(jīng)度、緯度指數(shù)序列資料p.dat、s.dat、lon.dat、lat.dat。
計(jì)算:蒙古高壓各指數(shù)的氣候、變率和距平值。
繪制:1951-2010年一月蒙古高壓強(qiáng)度、面積、位置指數(shù)序列圖。
通過分析,根據(jù)公式(4.1)、公式(4.2),求得蒙古高壓一月環(huán)流指數(shù)氣候及異常值。根據(jù)GrADS中l(wèi)ine和bar兩種圖形格式繪制方法,繪制蒙古高壓環(huán)流指數(shù)距平的時(shí)間序列圖。
4.3
實(shí)驗(yàn)實(shí)習(xí)步驟
4.3.1
蒙古高壓環(huán)流指數(shù)的氣候和異常值計(jì)算
(1)分析問題,理清算法和程序,設(shè)計(jì)程序流程圖并編寫程序。
(2)啟動(dòng)軟件開發(fā)環(huán)境Microsoft
Developer
Studio。
(3)在I盤上創(chuàng)建新工作區(qū)
shixi04。
(4)在工作區(qū)shixi04內(nèi)創(chuàng)建新項(xiàng)目shixi04。
(5)在項(xiàng)目shixi04內(nèi)創(chuàng)建源程序文件“mh.f90”,編輯輸入源程序文本。
(6)在源程序文本中打開數(shù)據(jù)文件“p.dat”、“s.dat”、“l(fā)on.dat”、“l(fā)at.dat”,并將其值讀入到相應(yīng)的數(shù)組中。
(7)編寫計(jì)算均值、變率和距平的子程序。
(8)調(diào)用子程序分別計(jì)算強(qiáng)度、面積、經(jīng)度、緯度環(huán)流指數(shù)的均值、變率和距平。
(9)將蒙古高壓環(huán)流指數(shù)的均值和變率寫入到“mh1.dat”和“mh1.grd”兩個(gè)文件中。將蒙古高壓環(huán)流指數(shù)的距平值寫入到“mh2.dat”和“mh2.grd”兩個(gè)文件中。
(10)編譯、構(gòu)建、運(yùn)行、調(diào)試FORTRAN程序。
4.3.2
蒙古高壓環(huán)流指數(shù)距平時(shí)間序列圖繪制
GrADS是對(duì)數(shù)據(jù)進(jìn)行分析、處理和顯示的軟件,所以在使用該軟件進(jìn)行繪圖時(shí),必須有相應(yīng)的數(shù)據(jù)文件,并且這些數(shù)據(jù)必須滿足GrADS所要求的數(shù)據(jù)格式,否則就要進(jìn)行數(shù)據(jù)處理;另外,GrADS并不是直接使用這些數(shù)據(jù)文件進(jìn)行操作,而是通過一個(gè)對(duì)應(yīng)的“數(shù)據(jù)描述文件”間接使用數(shù)據(jù)文件;對(duì)數(shù)據(jù)的處理和顯示是通過GrADS系統(tǒng)提供的命令完成的;操作完成后,可以在圖形輸出窗口觀察所繪圖形,并將圖形保存和輸出。具體使用流程如1.3.3.3所述,此處不再贅述。
按1.3.3.3
所述的使用流程,完成蒙古高壓環(huán)流指數(shù)距平時(shí)間序列圖繪制,需要按以下步驟進(jìn)行:
(1)為蒙古高壓環(huán)流指數(shù)距平數(shù)據(jù)文件“mh2.grd”書寫數(shù)據(jù)描述文件“mh2.ctl”,在此文件中定義四個(gè)變量pa,sa,lona,lata.(2)編寫“mh2.gs”可執(zhí)行文件,利用GrADS基本操作命令和line、bar兩種繪圖類型的繪圖要素設(shè)置,以不同顏色和線性顯示蒙古高壓強(qiáng)度和面積距平時(shí)間序列圖(曲線),分別以不同顏色顯示蒙古高壓經(jīng)度和緯度距平時(shí)間序列圖(柱狀)。
(3)將蒙古高壓強(qiáng)度和面積距平時(shí)間序列圖(曲線)保存到“mhline.gmf”,將蒙古高壓經(jīng)度和緯度距平時(shí)間序列圖(柱狀)分別保存到“mhlonbar.gmf”和“mhlatbar.gmf”中。
(4)啟動(dòng)GrADS,調(diào)試、執(zhí)行“mh2.gs”。
(5)分析蒙古高壓氣候及其異常特征。
4.4
實(shí)驗(yàn)實(shí)習(xí)關(guān)鍵技術(shù)及方法
某數(shù)據(jù)資料時(shí)間序列的距平為數(shù)據(jù)資料
與其平均值
之差
(4.1)
某數(shù)據(jù)資料的變率
為其均方差,反應(yīng)變量圍繞平均值的平均變化程度,其計(jì)算公式為
(4.2)
4.5
實(shí)驗(yàn)實(shí)習(xí)程序編寫
4.5.1
FORTRAN程序編寫
以下程序用于蒙古高壓環(huán)流指數(shù)氣候及異常值計(jì)算。
PROGRAM
mh
IMPLICIT
none
integer,parameter::
ny=60
!p(ny)、pa(ny)、pav和pd分別為強(qiáng)度指數(shù)原序列、距平序列、均值和標(biāo)準(zhǔn)差,其他參數(shù)量類似定義
real
p(ny),s(ny),lon(ny),lat(ny),pa(ny),sa(ny),lona(ny),lata(ny),pav,sav,lonav,latav,pd,sd,lond,latd
integer
i,j,k
open(1,file='i:\shixi\p.dat')
open(2,file='i:\shixi\s.dat')
open(3,file='i:\shixi\lon.dat')
open(4,file='i:\shixi\lat.dat')
do
i=1,ny
read(1,*)
p(i)
read(2,*)
s(i)
read(3,*)
lon(i)
read(4,*)
lat(i)
end
do
close(1)
close(2)
close(3)
close(4)
call
cha(ny,p,pa,pav,pd)
call
cha(ny,s,sa,sav,sd)
call
cha(ny,lon,lona,lonav,lond)
call
cha(ny,lat,lata,latav,latd)
open(5,file='i:\shixi\mh1.dat')
write(5,'(2f10.2)')
pav,pd
write(5,'(2f10.2)')
sav,sd
write(5,'(2f10.2)')
lonav,lond
write(5,'(2f10.2)')
latav,latd
close(5)
open(6,file='i:\shixi\mh1.grd',form='binary')
write(6)
pav,pd
write(6)
sav,sd
write(6)
lonav,lond
write(6)
latav,latd
close(6)
!下面兩種書寫數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)不同,注意區(qū)分。
open(7,file='i:\shixi\mh2.dat')
write(7,'(f10.2)')
(pa(i),i=1,ny)
write(7,'(f10.2)')
(sa(i),i=1,ny)
write(7,'(f10.2)')
(lona(i),i=1,ny)
write(7,'(f10.2)')
(lata(i),i=1,ny)
close(7)
open(8,file='i:\shixi\mh2.grd',form='binary')
do
i=1,ny
write(8)
pa(i)
write(8)
sa(i)
write(8)
lona(i)
write(8)
lata(i)
end
do
close(8)
end
!!!!!!!!!!!!求特征值
subroutine
cha(ny,x,xa,xav,xd)
integer::ny
integer
i
real::x(ny),xa(ny),xav,xd,sum
sum=0
do
i=1,ny
sum=sum+x(i)
enddo
xav=sum/ny
xd=0
do
i=1,ny
xa(i)=x(i)-xav
xd=xa(i)*xa(i)+xd
enddo
xd=sqrt(xd/ny)
return
end
4.5.2
GrADS程序編寫
(1)蒙古高壓環(huán)流指數(shù)距平數(shù)據(jù)文件“mh2.grd”書寫數(shù)據(jù)描述文件“mh2.ctl”.dset
i:\shixi\mh2.grd
undef
-9.99E+33
title
Mongolia
high
pressure
circulation
index
departure
xdef
linear
ydef
linear
zdef
linear
tdef
linear
Jan1951
1yr
vars
pa
0
sa
0
lona
0
lata
0
endvars
(2)繪制蒙古高壓異常時(shí)間序列圖,書寫可執(zhí)行文件“mh2.gs”。
'reinit'
'open
i:\shixi\mh2.ctl'
'enable
i:\shixi\mhline.gmf'
'set
lat
1'
'set
lon
1'
'set
lev
1'
'set
t
60'
'set
gxout
line'
'set
ccolor
2'
'set
cstyle
1'
'set
cthick
4'
'set
cmark
2'
'd
pa'
'set
ccolor
4'
'set
cstyle
3'
'set
cthick
6'
'set
cmark
2'
'd
100*sa'
'print'
'disable
print'
'c'
'enable
i:\shixi\mhlonbar.gmf'
'set
gxout
bar'
'set
barbase
0'
'set
bargap
0'
'set
ccolor
2'
'd
lona'
'print'
'disable
print'
'c'
'enable
i:\shixi\mhlatbar.gmf'
'set
gxout
bar'
'set
barbase
0'
'set
bargap
0'
'set
ccolor
4'
'd
lata'
'print'
'disable
print'
4.6
實(shí)驗(yàn)實(shí)習(xí)結(jié)果
圖1
1951-2010年1月蒙古高壓強(qiáng)度與面積距平時(shí)間序列圖
圖2
1951-2010年1月蒙古高壓經(jīng)度距平時(shí)間序列圖
圖3
1951-2010年1月蒙古高壓緯度距平時(shí)間序列圖
4.7
實(shí)驗(yàn)實(shí)習(xí)結(jié)果分析
從圖1可以看出,1月蒙古高壓強(qiáng)度與面積呈現(xiàn)顯著的正相關(guān)關(guān)系。存在年際及年代際的周期震蕩,震蕩周期大約為3~4年以及20年,在1956年、1977年以及2008年出現(xiàn)較高值,20世紀(jì)60年代中期開始下降,大約1975年達(dá)到最低值,之后快速上升。
從圖2、3可以看出,1月蒙古高壓的位置存在年代際的變化,周期大約為30~40年。在20世紀(jì)50年代初由南轉(zhuǎn)北,由東轉(zhuǎn)西,20世紀(jì)70年代末80年代初,蒙古高壓位置由北轉(zhuǎn)南。