爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2641|回复: 1

[混合编程] 补充fortran和grads

[复制链接]

新浪微博达人勋

发表于 2023-3-14 10:40:26 | 显示全部楼层 |阅读模式
15金钱
本帖最后由 HFTq 于 2023-3-14 10:42 编辑

数值预报生产实习

数值预报生产实习.zip

1.29 MB, 下载次数: 2, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2023-3-18 21:21:42 | 显示全部楼层
本帖最后由 HFTq 于 2023-3-18 21:24 编辑

c     请补充计算地图投影放大系数mm 和科氏参数 ff子程序
c     mm:the amplification factor of map projection
c     ff:coriolis parameter
        subroutine mf(mm,ff,m0,n0)
                real mm(m0,n0),ff(m0,n0),vl(m0,n0)
                vk=0.7156
                vle=11423370
                va=6371000
                omege=7.292e-5
                vd=300000
                in=-4
                jn=25
                do j=1,n0
                        do i=1,m0
                                vl(i,j)=sqrt(((in-1+i)*vd)**2+((jn+1-j)*vd)**2)
                                mm(i,j)=(vk*vl(i,j))/(va*sqrt(1-((vle**(2/vk)-vl(i,j)**(2/vk))/(vle**(2/vk)+vl(i,j)**(2/vk)))**2))
                                ff(i,j)=2*omege*((vle**(2/vk)-vl(i,j)**(2/vk))/(vle**(2/vk)+vl(i,j)**(2/vk)))
                        end do
          end do

c-----------------------------------------------------------------c
c-----------------------------------------------------------------c
c     请补充计算绝对涡度平流子程序
        subroutine abv(av,af,h,mm,ff,m0,n0)
                real av(m0,n0),af(m0,n0),hh(m0,n0),mm(m0,n0),ff(m0,n0)
                real,parameter::d=300000,f=1.0e-4,g=9.8
                integer i,j
                do j=2,n0-1
                        do i=2,m0-1
                                av(i,j)=(g*mm(i,j))/(d**2.0*f)*(hh(i+1,j)+hh(i,j+1)+hh(i-1,j)+hh(i,j-1)-4*hh(i,j))+ff(i,j)
                        end do
        end do
                do j=3,n0-2
                        do i=3,m0-3
                                af(i,j)=-0.25*((hh(i+1,j)-hh(i-1,j))*(av(i,j+1)-av(i,j-1))-(hh(i,j+1)-hh(i,j-1))*(av(i+1,j)-av(i-1,j)))
                        end do
                end do
                end

c-----------------------------------------------------------------c
c-----------------------------------------------------------------c
c     请补充计算位势高度倾向子程序
        subroutine pzpt(zt,af,m0,n0)
                parameter(rer=1.5,rps=1.0e-5)
                dimension
                rn(m0,n0),zt(m0,n0),f(m0,n0),hh(m0,n0),af(m0,n0)
                do i=1,m0
                        do j=1,n0
                                hh(i,j)=0.0
                                zt(i,j)=hh(i,j)
                        end do
                end do
                do i=4,m0-3
                        do j=4,n0-3
                                rn(i,j)=zt(i+1,j)+zt(i,j+1)+zt(i-1,j)+zt(i,j-1)-4*zt(i,j)-af(i,j)
                                f(i,j)=zt(i,j)+rer*rn(i,j)/4
                                zt(i,j)=f(i,j)
                        end do
                end do
                m=1
                n=1
                do i=2,m0-1
                        do j=2,n0-1
                                if(abs(f(i,j)-f(m,n))>eps)then
                                        m=i
                                        n=j
                                end if
                        end do
                end do
                if(abs(f(i,j)-f(m,n))<eps)then
                        exit
                end if
                end do
                return
                end subroutine
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表