气象统计实习(防止丢失)

 

一、Fortran程序

   program main

    implicit none

    integer,parameter :: nt=30,nx=32,ny=7

    integer ix,iy,it,y1,y2

    real:: sst(nx,ny,nt)=0.0,ave(nx,ny)=0.0,sx(nx,ny)=0.0,jvping(nx,ny,nt)=0.0

    open(1,file='C:\lianxi\2021\practice1\NCEP_TPSST_30y_Wt.dat',form='binary')

      do it=1,nt

          read(1) ((sst(ix,iy,it),ix=1,nx),iy=1,ny)

      end do

      close(1)

 !计算平均气候场

          do ix=1,nx

              do iy=1,ny

                  do it=1,nt

                  ave(ix,iy)=ave(ix,iy)+sst(ix,iy,it)/30.0

                  end do 

              end do

          end do

 !计算均方差场 

        do iy=1,ny

            do ix=1,nx

                do it=1,nt

                   if(sst(ix,iy,it) .GT. 1000)continue             !若该点的值为缺测值,则跳过该值

            sx(ix,iy)=sx(ix,iy)+((sst(ix,iy,it)-ave(ix,iy))**2)

                end do

                sx(ix,iy)=sqrt(sx(ix,iy)/30.0)

        enddo

        end do

       

        open(3,file='C:\lianxi\2021\practice1\ave.grd',form='binary')

          write(3)((ave(ix,iy),ix=1,nx),iy=1,ny)

         close(3)

         

         open(4,file='C:\lianxi\2021\practice1\junfangcha.grd',form='binary')

           write(4)((sx(ix,iy),ix=1,nx),iy=1,ny)

         close(4)

      

!距平场

       do ix=1,nx

           do iy=1,ny

               do it=1,nt

                      if(sst(ix,iy,it) .LE.1000) then      

                   jvping(ix,iy,it)=sst(ix,iy,it)-ave(ix,iy)

                   endif

               enddo

           enddo

       enddo

       open (2,file='C:\lianxi\2021\practice1\jvping.grd',form='binary')

         write(2) (((jvping(ix,iy,it),ix=1,nx),iy=1,ny),it=1,nt)

         close(2)

         end program

二、ctl文件与gs文件

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值