爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: dengxiaohua_121

[其他] 计算温度平流

  [复制链接]

新浪微博达人勋

发表于 2020-4-21 20:51:36 | 显示全部楼层
本帖最后由 ABCD 于 2020-4-21 20:52 编辑

通过一天的折腾,发现楼主你的程序应该是不对的,dX,dY理应进行中央差分,但你这里却是一个常数
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-6 09:32:23 | 显示全部楼层
function  TempAdvection(T,u0,v0,tau,lev,lat,lon) ;计算温度平流
begin
       ntau   = dimsizes(tau)   
       nlon   = dimsizes(lon)
       nlat   = dimsizes(lat)
       nlev   = dimsizes(lev)
       Tadv   = T
       dlon = (lon(2)-lon(1))*0.0174533 ; convert to radians
       dTdX = new((/ntau,nlev,nlat,nlon/), typeof(T), T@_FillValue)

       do nl=0,nlat-1                      ; loop over each latitude
         dX = 6378388.*cos(0.0174533*lat(nl))*dlon  ; constant at this latitude
         dTdX(:,:,nl:nl,:) = center_finite_diff_n (T(:,:,nl:nl,:), dX ,False,0,3)
       end do

       dlat = (lat(2)-lat(1))*0.0174533 ; convert to radians
       dTdY = new((/ntau,nlev,nlat,nlon/), typeof(T), T@_FillValue)
       do ml=0,nlon-1
          dY = 6378388.*dlat ; constant at this latitude
          dTdY(:,:,:,ml:ml) = center_finite_diff_n(T(:,:,:,ml:ml),dY,False,0,2)
       end do
       Tadv  =  -(/ u0*dTdX + v0*dTdY /)  
       Tadv  =   (/ Tadv  * 1e5       /)
       return(Tadv)
end
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-8-18 21:18:38 | 显示全部楼层
ABCD 发表于 2020-4-21 20:51
通过一天的折腾,发现楼主你的程序应该是不对的,dX,dY理应进行中央差分,但你这里却是一个常数

你好,请问你这里弄懂了吗?我也没想懂,想请教一下,拜托!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-10 20:59:46 | 显示全部楼层
码温度平流
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-17 10:25:47 | 显示全部楼层
342901wzx 发表于 2020-5-6 09:32
function  TempAdvection(T,u0,v0,tau,lev,lat,lon) ;计算温度平流
begin
       ntau   = dimsizes(tau) ...

哇 这个是温度平流子程序么   
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-6-20 16:38:43 | 显示全部楼层
请问楼主: 用此代码算温度平流时, 温度需要从南到北排序吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-5 15:08:36 | 显示全部楼层
342901wzx 发表于 2020-5-6 09:32
function  TempAdvection(T,u0,v0,tau,lev,lat,lon) ;计算温度平流
begin
       ntau   = dimsizes(tau) ...

请问一下,tau是什么变量呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-3-22 19:12:43 | 显示全部楼层
验证过,和ncl函数advect_variable结果一致,算法可以作为求偏导的参考
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2023-8-8 16:57:07 | 显示全部楼层
感谢楼主!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2023-9-25 16:04:35 | 显示全部楼层
wsx 发表于 2022-3-22 19:12
验证过,和ncl函数advect_variable结果一致,算法可以作为求偏导的参考

我用两个方法算了一遍,结果对不上啊。以哪个为主。求解答
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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