由于我的工作中需要强调瞬变扰动对东亚季风的影响,因此最近抱着目的再次重读 Schneider 2008年的两篇文章。虽然他的文章更强调空间尺度上的中尺度涡旋对季风爆发以及Hadley环流转变的作用,但我觉得中尺度涡旋只要不是定常的,只要他在移动,他就是瞬变扰动的一部分,两者应该是相通的。
Schneider, T. and S. Bordoni (2008). “Eddy-mediated regime transitions in the seasonal cycle of a Hadley circulation and implications for monsoon dynamics.” Journal of the Atmospheric Sciences 65(3): 915-934.
在一个没有水循环、有纬向对称边界条件的理想干实验模拟中,发现Hadley环流在一年中有两个明显不同的阶段,根据大尺度扰动动量通量的强度划分。
经涡旋通量、高层平均纬向风以及平均经圈环流三者之间的相互作用调节,Hadley环流中心的纬向动量平衡由夏季涡旋主导动量通量过渡到冬季由平均经圈环流主导
在过渡期间,包括底层温度平流强度变化以及冬夏季环流边界的纬度变化间的反馈影响着冬季越赤道环流的强度
这个转变有些类似于季风的爆发与衰退。
因此模拟实验中这种与海陆对比及其他纬向不均一无关的动力机制或许与大气大尺度季风动力学有关
看完摘要后,希望在文中了解到的问题:
由于实验需要,最近想跑一个有地形的干模式。然后发现CESM刚好有两种理想干模式实验,这是其官网介绍。
首先,这两种干动力核模式只有在 2018年发布的CESM2 中可以运行,均属于欧拉谱变换动力核(不知道谱模式的代码该如何修改呢?)
Dry Adiabatic Baroclinic Instability (DABI) test case。
该算例的编写是依据下面这篇文献:
Polvani, L. M., et al. (2004). “Numerically converged solutions of the global primitive equations for testing the dynamical core of atmospheric GCMs.” Monthly Weather Review 132(11): 2539-2552.
它的目的是通过对一个微扰动、斜压不稳定的中纬度急流进行12天的短积分,得到一个干燥、绝热、原始方程的收敛解。其初始条件包括简单的纬向流和中纬度的局域温度扰动,每一个都是解析指定的。
该算例有三种精度设置,T42L30, T85L30 and T85L60,第一个跑得比较快,但其结果难以收敛,适用于快速检查动力核是否正常运行;后两种的运行时间较长。
该算例的初始状况是用ncl代码生成的,可以利用该代码修改初始状况。
运行流程与其他算例类似:
./create_newcase --compset FDABIP04 --res T42z30_T42_mg17 --case $CASEDIR
./xmlchange --file env_run.xml --id STOP_N --val 12
./case.setup
./case.build
./case.submit
在该算例下,CAM的动力包被以下过程所替代,一个简单的牛顿松弛法使温度场趋于纬向均一的辐射平衡温度场,在边界层采用简单线性拖曳力。该设置与下面这篇文章类似。感觉这个实验是没有年循环的。
Held, I. M. and M. J. Suarez (1994). “A proposal for the intercomparison of the dynamical cores of atmospheric general circulation models.” Bulletin of the American Meteorological Society 75(10): 1825-1830.
该算例的默认初始场是等温、静止的状态,并通过在温度场中加入扰动来引入不稳定。生成初始场的脚本与上面那个算例的脚本写在了同一个ncl文件中。可以通过修改该文件来修改初始文件。
默认的初始状态文件存放在 /HOME/sysu_hjkx_ys/WORKSPACE/cesm/input/atm/cam/inic/gaus/HS1994.64x128.L30_c061616.nc
,存有纬度、经度、高度、时间、地表气压、各个高度的温度和风速(四个维度:时间,高度,纬度,经度)。
T42L30(lat=64,lon=128), T85L30(lat=128,lon=256) and T85L60 当采用这三种默认精度之一时,初始条件会自动设置。
但当采用其他精度时,则需要自己通过修改ncl文件来生成初始文件。然后在 $CASEDIR/user_nl_cam 中加入初始文件的地址:
ncdata='myfilepath'
该设置的常用精度同上述干绝热斜压不稳定算例,但官网说他也适用于其他精度,同时也可以用有限体积和谱元动力核。但并没有介绍怎么修改为这个。
It is recommended that an initial simulation of length 1200 days be performed to ensure the model is set up correctly.
./create_newcase --case $CASEDIR --compset FHS94 --res T42z30_T42_mg17
./xmlchange STOP_OPTION=ndays,STOP_N=1200
./xmlchange STOP_OPTION=ndays,STOP_N=300,RESUBMIT=3 #可以没有
./case.setup
./case.build
./case.submit
默认情况下,该模式会输出月平均和逐6小时的资料。其中一些变量的注意点:
官网还提供了NCL脚本来画 eddy temperature variance, northward eddy momentum flux and northward eddy heat flux,这里的eddy是相对于纬向平均的异常。
此外,在这个算例下面还介绍了很多如何修改默认设置的方法,竟然有动力核、地形的修改方法。
当选用欧拉谱模式动力核,必须考虑水平扩散系数的选择。
默认设置是用了四阶超扩散,最小尺度上的阻尼时间标度为0.5天。选择这个时间尺度是因为它被发现是在水平分辨率为T42和T85的涡度场中仍然能产生光滑结构的最弱阻尼强度之一。
决定水平扩散的阶数与强度的参数是 eul_hdif_order 和 eul_hdif_coef。这两个参数与阻尼时间标度之间的关系是:
eul_hdif_coef = (1/tau)(a^2/(n(n+1)))^(eul_hdif_order/2.)
where tau is the required damping timescale, a is the radius of the Earth and n is the total wavenumber of the smallest scale
该参数的修改是在 $CASEDIR/user_nl_cam 文件中
可以通过修改精度来修改干模式的动力核。
# run the finite volume dynamical core at 2 degree resolution
./create_newcase --case $CASEDIR --compset FHS94 --res f19z30_f19_mg17 --mach $MACH --run-unsupported
# run for a 1 degree with the spectral element dynamical core
./create_newcase --case $CASEDIR --compset FHS94 --res ne30z30_ne30_g16 --mach $MACH --run-unsupported
如果希望将垂直分辨率更改为不受官方支持的分辨率,只需要一个包含垂直级别的初始条件文件。
在CESM2.0版本中,当使用有限元FV或谱元素SE动力核时,需要关闭 the energy fixer(能量固定器或调整器),在CESM2.1及后续版本中,当采用上述两个动力核时,会默认关闭该功能。
the energy fixer是用来保证能量守恒的,因为在干模式的物理过程不能像完整的大气环流模式GCM那样使能量保持守恒,因此需要关闭该功能。
手动关闭the energy fixer的方法:
cp $CESM/components/cam/src/physics/simple/physpkg.F90 $CASEDIR/SourceMods/src.cam/physpkg.F90
vi $CASEDIR/SourceMods/src.cam/physpkg.F90
修改physpkg.F90中下面这部分代码, To turn off the energy fixer, the call to physics_update must be commented out
!===================================================
! Global mean total energy fixer
!===================================================
call t_startf('energy_fixer')
if (dycore_is('LR') .or. dycore_is('SE')) then
call check_energy_fix(state, ptend, nstep, flx_heat)
call physics_update(state, ptend, ztodt, tend) ! it should be commented out to turn of the energy fixer
call check_energy_chng(state, tend, "chkengyfix", nstep, ztodt, zero, zero, zero, flx_heat)
call outfld( 'EFIX', flx_heat , pcols, lchnk )
call physics_ptend_dealloc(ptend)
end if
在 $CASEDIR/user_nl_cam 文件中加入下面两句话即可,使用的地形文件中必须包含变量 PHIS(surface geopotential)in units of m2/s2 ,使用与模式相同的精度。如果使用的是真实的地形,可以直接使用CESM的地形资料(文件地址可能是 $INPUTDIR/atm/cam2/topo/)
use_topo_file = .true.
bnd_topo = "location_of_your_topo_file"
最近想着用WRFDA做《数据同化》的作业,因此了解了一下 WRFDA。
其实除了WRFDA外,还有 全球/区域同化预报系统 Global/Regional Assimilation and Prediction System (简称 GRAPES,葡萄),是我国气象局自主研发的数值预报系统,1999年开始研发,截至2017年产品数量已增至70种,包括23种欧洲中期天气预报中心所没有的但在内地气象预报业务中有需求的产品
参考资料
数据同化是一种将观测与数值天气预报结果(第一次猜测或背景预测)及其各自统计误差相结合的技术,以得到对大气真实情况的估计,也就是得到再分析资料。
变分同化通过指定罚函数的迭代最小化来实现这一点。分析情况与观测(或模式)间的差异根据其感知到的误差进行修正。
三维同化与四维同化的区别在于后者采用了数值预报模型。
感觉百度百科对数据同化的解释比较好理解:
数据同化是一种最初来源于数值天气预报,为数值天气预报提供初始场的数据处理技术。已广泛应用于大气海洋领域。
数据同化的主要任务——将各种不同来源,不同误差信息,不同时空分辨率的观测资料融合进入数值动力模式,依据严格的数学理论,在模式解与实际观测之间找到一个最优解,这个最优解可以继续为动力模式提供初始场,以此不断循环下去,使得模式的结果不断地向观测值靠拢,提高模型预测能力。
数据同化的应用:
WRFDA是一个统一的模型空间数据同化系统,可以全球或区域,多模型,3/4D-Var。其组成及各组成间的联系如图所示
三读该文的一些想法:
为解密耦合气候系统中年际变化的物理过程,本文希望构建一个合乎逻辑的框架。 最感兴趣的则是北半球的春季预报障碍SPB——即观测与预报的相关系数在春季急剧下降。 很多模式都会出现该障碍,无论预报的初始时间从何时开始。 很多用于年际预报的模式都会通过封装ENSO结构来强调太平洋的耦合作用。
猜测造成春季预报障碍的因素有: (question:这个预报障碍,是针对什么得预报障碍呢?)
相关系数急剧下降时期,赤道气压梯度最小(question:是经向气压梯度还是纬向气压梯度呢?且为什么气压梯度弱海气相互作用就弱呢?),表明此时海气间的相互作用最弱从而受误差的影响增加。且此时南亚夏季风快速发展。由于季风环流在位相和强度上存在明显的年际变化,故海气系统在春季可能受任意变化的外力驱动。
夏季风指数的变化与大尺度的向外长波辐射场变化一致。值得注意的是,强季风时期,夏季信风也增强(question:但这里不能说谁先谁后,谁影响谁),从而改变太平洋海表面的风应力。因此可以在太平洋检测到异常季风的信号。
基于夏季风指数,将强季风年和弱季风年环境场做合成。
观测中季风与walker环流存在正交性,表明两者可能存在选择性相互作用。春夏季,季风控制了近赤道地区的walker环流。秋冬季,季风减弱,对流靠近赤道地区,随后Walker环流增强同时控制冬季风。(question:秋冬季,对流靠近赤道地区,这应该不是季风的影响吧,不应该是太阳直射点移动使赤道地区加热增强的原因吗?)
科学问题:
文章结构
存在预报障碍的原因可能有:
如果这个噪音是季风环流的变化或者是其他大尺度的确定现象,且可以证明有一个确定的关系在季风和ENSO的周期之间,那么可以寻求一个物理过程来解释它,从而提高可预报性。
然而,如果不能证明季风位相、振幅与ENSO特征之间存在线性关系,或者似乎不可预测的事件(例如温带天气噪声)是ENSO周期的主要摄动因子,那么春季预报障碍就是一个自然存在的现象,不管模式越来愈好,也无法克服这个年际预报障碍。也就是说年际变化的预测会被年循环限制。
很奇怪,这篇文章中DKQ竟然是通讯作者。问了其本人,才知道原来综述类文章一般都是由导师为一作。
文章先是介绍了提高季风可预报性的重要性。随后又讲了发现ENSO的历史,此处很有意思,罗列如下:
接着论述了季风与ENSO相互作用研究的历史。
为什么SPB出现在春季而不是秋季?SPB是一种自然现象还是模式误差导致的结果?关于 SPB 物理机制的研究大致可以分为三类。
主要介绍了数据同化的必要性、含义、开创(丑纪范、Charney)、常用的数据同化方法:
数据同化的必要性
一维同化:指用用一个格点的计算来研究模式和分析的某些特征。例如将观测数据( 一个数据或者几个数据的加权平均) 直接替代离它最近的模式网格点处的预报值
二维同化:在作数值预报时, 凡是在模式不同层次上独立进行客观分析、并在时间维上未做任何同化的动力同化。例如用质量场、运动场观测的统计加权和地转关系来更新预报场
三维同化:Flattery(1970)将大气变量表为一种正交函数的三维级数, 并让它们满足动力约束。Lewis(1972)利用变分方法, 把热成风关系和流体静力方程作为动力约束, 成功地开发了一个三维变分同化方案。
数据同化的研究是从模拟研究开始的。通常做法是:先用一个数值式向前积分数日, 并把积分的结果作为大气的真值, 以便用来检验同化和预报的精度,把这种积分称为控制实验。“观测”数据则是从控制积分的结果里随机抽取的(有时还要加上一定的误差)。同化过程则从不同的初始状态开始。同化方法使用的是前面已经说过的动力同化方法。在同化积分过程中, 周期性地插入“观测”。如果经过一段时间的积分, 模式逼近了控制状态, 我们则认为“观测”被同化了。 用这样的办法我们可以认识观测系统的不同结构、观测误差的大小和分布对于模式预报究竟有多大的影响。
由于跑理想实验,不需要前处理WPS,因此此处不记录关于 WPS 的内容。由于所用的服务器已安装好WRF,因此这里不涉及环境变量的设置。
将 WRF的整个安装包拷贝至准备跑case的目录下,解压后内部各文件的说明如下:
./configure #安装
./compile case_name >& log.compile #编译,花费时间较长
# 若运行真实数据,则 case_name 为 em_real
For any of the ./configure
commands, a list of choices for your computer should appear. These choices range from compiling for a single processor job (serial), to using OpenMP shared-memory (smpar), distributed-memory parallelization (dmpar) options for multiple processors, or a combination of shared-memory and distributed-memory options (dm+sm). When a selection is made, a second choice for compiling nesting will appear.
compile
后得到的运行程序 real.exe or ideal.exe and wrf.exe 在 main/
目录下(这也是检验编译是否成功的标准),并在 test/case_name
或 run/
目录下产生运行程序的链接文件,即可以在上述两个目录下运行模式。
如果编译失败,请先回到 WRFV3 目录下,输入 ./clean –a
,再重新查找问题,重新安装