- 积分
- 36
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-4-7
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
左场为OLR场,右场为降水场,原资料是正确的,但做了SVD,结果是有问题的,而且两个原始数据场很小,在自己的电脑上都转不出来,需要在大型机上转,求各位大神指出我的错误
下面为SVD前半部分程序,就是需要改格点和改路径部分
program svd_test
implicit none
cccccccc---Parameters that you can modify---cccccccc
integer,parameter::NY=25*13
integer,parameter::NZ=21*13
integer,parameter::NT=35
integer,parameter::NMIN=NZ
integer,parameter::NP=3
real,parameter::YMV=-9.99e+33
real,parameter::ZMV=-9.99e+33
cccccccc---The main variables for input and output---cccccccc
c-----------------------------------INPUT-----------------------------------------c
c Y :Left data field that consists of NT observations with missing values c
c ,each of which has NY grid points. c
c Z :Right data field that contains of the same number of c
c observations, each of which has NZ grid points. c
real ::Y(NY,NT),Z(NZ,NT)
real ::A(NT,NP),B(NT,NP)
real ::cekma(NMIN)
real ::scfk(NP)
real ::cscfk(NP)
real ::rab(NP)
real ::lcovf(NP)
real ::rcovf(NP)
real ::vara(NP)
real ::varb(NP)
real ::lhomo(NY,NP),lhete(NY,NP)
real ::rhomo(NZ,NP),rhete(NZ,NP)
integer::i,j,k,l,m,n
CHARACTER FL1*60,FL2*60,LT*60,RT*60,LVHO*60,RVHO*60,LVHE*60
CHARACTER RVHE*60,IN*60
!FL1='oceanolr.grd'
!FL2='australiaprecip.grd'
!LT='ltime1.grd'
!RT='Rtime1.grd'
!LVHO='lhomo.grd'
!RVHO='Rhomo.grd'
!LVHE='lhete.grd'
!RVHE='Rhete.grd'
!IN="d:\city_heat3\svd\data\ljp_out\850\jan12_svd_info.txt"
ccccccccc---Main program---cccccccc
!----Read the left field----!
open(unit=1,file=
$'g:/paper/epiolr.grd',form='binary')
n=0
do j=1,NT
do i=1,NY
n=n+1
read(1)Y(i,j)
enddo
enddo
close(1)
print*,"OK1"
!----Read the right field----!
open(unit=1,file=
$'g:/paper/australiaprecip.grd',form='binary')
$
n=0
do j=1,NT
do i=1,NZ
n=n+1
read(1)Z(i,j)
enddo
enddo
close(1)
print*,"OK2"
!----Call the subroutine meteo_miss_svd----!
call svd(NY,NZ,NMIN,NT,Y,Z,YMV,ZMV,NP,A,B,cekma,
$ scfk,cscfk,rab,lcovf,rcovf,vara,varb,lhomo,lhete,rhomo,rhete)
print*,"OK3"
!----Output the left and right time coeffecient series matrices-------!
open(unit=2,file='g:/paper/result/ltime.grd',form='binary')
open(unit=3,file='g:/paper/result/rtime.grd',form='binary')
n=0
do j=1,NT
do i=1,NP
n=n+1
write(2)a(j,i)
write(3)b(j,i)
enddo
enddo
close(2);close(3)
print*,"OK3"
!----Output the left homogeneous and heterogeneous correlation maps----!
open(unit=2,file='g:/paper/result/lhomo.grd',form='binary')
open(unit=3,file='g:/paper/result/lhete.grd',form='binary')
n=0
do j=1,NP
do i=1,NY
n=n+1
write(2)lhomo(i,j)
write(3)lhete(i,j)
enddo
enddo
close(2)
close(3)
print*,"OK4"
!----Output the right homogeneous and heterogeneous correlation maps----!
open(unit=2,file='g:/paper/result/rhomo.grd',form='binary')
open(unit=3,file='g:/paper/result/rhete.grd',form='binary')
n=0
do j=1,NP
do i=1,NZ
n=n+1
write(2)rhomo(i,j)
write(3)rhete(i,j)
enddo
enddo
close(2);close(3)
print*,"OK5"
end program svd_test
|
-
左场olr
-
右场precip
-
SVD在个人电脑上运行的结果
|