做Heating试验的时候,何老师提示将Profile中的最大值放在500-600hPa附近。但是CAM中采用的是σ-P混合坐标系统,需要进行坐标转换。之所以采用这种坐标系统,是因为底层为了描述好地形的作用采用σ坐标系统,而高层则采用P坐标系统。而我们通常关心的是P坐标系统下某一层面的情况,比如500hPa位势高度场等。CAM3.0的users’ guide 上提供了CAM坐标系统向P坐标系统转化的方法
p(i,j,k)= Ak P0+ Bk Ps(i,j)
其中p(i,j,k)为指定点处的气压,A,B,P0均为常数。Ps是模式当前地表气压;P0在模式源码中已被给定。AB在模式输出数据中已经存在,界面处系数分别为hyai和hybi,层面中间点为hyam和hybm。其中主要关注的U V T等变量应该使用hyam和hybm(对应下图Level Index),而通量场变量则多位于交界面(对应下图Interface Index)。引用CAM 3.0 ug中的图如下
在CAM4和CAM5下,中间点对应的气压如下表所示(假设PS=1000hPa,Hard Coded P0=1000hPa)
CAM4 Vertical Transform | |||
Num | byam | hybm | presure |
1 | 0.003544638 | 0.000000000 | 3.544638 |
2 | 0.007388814 | 0.000000000 | 7.3888135 |
3 | 0.013967214 | 0.000000000 | 13.967214 |
4 | 0.023944625 | 0.000000000 | 23.944625 |
5 | 0.037230290 | 0.000000000 | 37.23029 |
6 | 0.053114605 | 0.000000000 | 53.114605 |
7 | 0.070059150 | 0.000000000 | 70.05915 |
8 | 0.077912570 | 0.007526545 | 85.439115 |
9 | 0.076607010 | 0.023907685 | 100.514695 |
10 | 0.075071085 | 0.043179250 | 118.250335 |
11 | 0.073264150 | 0.065851245 | 139.115395 |
12 | 0.071138385 | 0.092523685 | 163.66207 |
13 | 0.068637535 | 0.123902400 | 192.539935 |
14 | 0.065695415 | 0.160817850 | 226.513265 |
15 | 0.062234155 | 0.204247000 | 266.481155 |
16 | 0.058162165 | 0.255339100 | 313.501265 |
17 | 0.053371680 | 0.315446300 | 368.81798 |
18 | 0.047735925 | 0.386159300 | 433.895225 |
19 | 0.041105755 | 0.469349500 | 510.455255 |
20 | 0.033305700 | 0.567218500 | 600.5242 |
21 | 0.024968440 | 0.671827850 | 696.79629 |
22 | 0.017095910 | 0.770606150 | 787.70206 |
23 | 0.010214710 | 0.856946050 | 867.16076 |
24 | 0.004803175 | 0.924845700 | 929.648875 |
25 | 0.001260680 | 0.969294150 | 970.55483 |
26 | 0.000000000 | 0.992556100 | 992.5561 |
CAM5 Vertical Transform | |||
Num | byam | hybm | presure |
1 | 0.003643466 | 0.000000000 | 3.643465694 |
2 | 0.007594820 | 0.000000000 | 7.594819646 |
3 | 0.014356632 | 0.000000000 | 14.35663225 |
4 | 0.024612220 | 0.000000000 | 24.61222 |
5 | 0.038268300 | 0.000000000 | 38.26829977 |
6 | 0.054595480 | 0.000000000 | 54.59547974 |
7 | 0.072012451 | 0.000000000 | 72.01245055 |
8 | 0.087821230 | 0.000000000 | 87.82123029 |
9 | 0.103317127 | 0.000000000 | 103.3171266 |
10 | 0.121547241 | 0.000000000 | 121.5472408 |
11 | 0.142994039 | 0.000000000 | 142.9940388 |
12 | 0.168225080 | 0.000000000 | 168.2250798 |
13 | 0.178230673 | 0.019677414 | 197.9080867 |
14 | 0.170324326 | 0.062504293 | 232.828619 |
15 | 0.161022909 | 0.112887908 | 273.9108168 |
16 | 0.150080286 | 0.172161616 | 322.2419024 |
17 | 0.137206860 | 0.241894044 | 379.1009039 |
18 | 0.122061938 | 0.323930636 | 445.9925741 |
19 | 0.104244713 | 0.420442462 | 524.6871747 |
20 | 0.084979154 | 0.524799541 | 609.7786948 |
21 | 0.066501696 | 0.624887735 | 691.3894303 |
22 | 0.050196789 | 0.713207692 | 763.4044811 |
23 | 0.037188658 | 0.783669710 | 820.8583687 |
24 | 0.028431948 | 0.831102818 | 859.5347665 |
25 | 0.022208977 | 0.864811271 | 887.0202489 |
26 | 0.016407382 | 0.896237165 | 912.6445469 |
27 | 0.011074558 | 0.925123841 | 936.1983985 |
28 | 0.006254954 | 0.951230526 | 957.4854795 |
29 | 0.001989409 | 0.974335998 | 976.3254074 |
30 | 0.000000000 | 0.992556095 | 992.5560951 |
今天腾讯弹出新闻看到一线城市房价整体现下跌,http://finance.qq.com/a/20140819/010416.htm?pgv_ref=aio2012&ptlang=2052
有人说,十年涨了1000%跌了1%,没用。下面有一则长评倒是说得事实:
贪官和炒房客都在低价抛售,想忽悠老百姓接盘好脱身上岸,开发商市面上一手房存量巨大,售楼处门可罗雀,空城鬼城遍地都是,还有海量新建及待建楼盘蜂拥上 市,加之老百姓买涨不买跌的心理作祟,房产登记为房产税的征收铺平道路,前几天的倒楼事件又为房产的使用寿命大打折扣,现在当降价的多米诺骨牌轰然倒下, 崩盘将势如破竹,一发不可收拾(毕竟房地产这十年来上涨了十倍,早就不是一般工薪阶层所能企及,开发商除了赚取不菲的利润,银行的利息及高利贷,就连贪官 包二奶的钱都是购房者出)崩盘也只是让房价回归到原始价值,就看谁是最后一个接棒者了,房价没有最低,只有更低!
在physpkg.F90引入理想加热廓线,设定为第32个calday(2月1日)在整个垂直层面上加入0.2K/kg/s的加热率,随同深对流update入环境场,结果运行到第46天某个时候down掉了,log输出为
BalanceCheck: soil balance error nstep = 2176 point = 4646 imbalance = -0.000000 W/m2 QNEG3 from vertical diffusion/SO2:m= 8 lat/lchnk= 682 Min. mixing ratio violated at 1 points. Reset to 1.0E-36 Worst =-5.1E-12 at i,k= 4 30 QNEG3 from convtran2/DMS:m= 9 lat/lchnk= 825 Min. mixing ratio violated at 1 points. Reset to 1.0E-36 Worst =-1.8E-12 at i,k= 9 30 filew failed, worst i, j, qtmp, q = 1 66 -21885.3982648784 5.567182215867588E-009 QNEG3 from TPHYSBCb:m= 4 lat/lchnk= 220 Min. mixing ratio violated at 2 points. Reset to 0.0E+00 Worst =-3.9E+00 at i,k= 12 17 urban net longwave radiation balance error -4.05656153273048 clm model is stopping
城市长波出问题?小怀疑了一下。后面clm先停掉了,莫非与surface交换有问题,想起来这个加热率其实下面几层都是没有的,第一次尝试将下面几10层的加热强迫情况设置为0,结果还是不行,不到45day就down掉了。后来发现居然是有个北纬30°以南的判定条件忘了化成弧度制!!坑爹啊,换弧度后,为了响应较快,将强迫加入时间调整为day3到day30,居然没有断掉。Okay!3day后全年加入!
#Up to 20140802#
接上回。全年加入后断掉了。ncl看前一组3-30day强迫的响应,发现加热源位置强度都没问题,但是T的响应位置有点偏北,很奇怪。U风看到了气旋式响应貌似正常。何老师也对此表示奇怪,但是认为基本问题不大,可能是量级太高造成,大气层顶响应都到了20+℃了,后面太高可能因此崩掉。建议减小量级,并且把400-500hPa左右设置为最大值,关注injection的位置分别在deep convection前后有什么不同。简单起见我先把量级缩小到0.05K/kg/s,从day3到day365加了接近一整年,居然没有出问题,顺利积分完成。打算回学校再按照何老师的说法试试。
#Up to 20140815#
继续接上回。会学校后各种杂事,倒是正巧超算各种不稳定。这两天终于的空,机器可用了。将加热量级最大值缩小到0.05K/kg/s,最大值固定在500ha附近,两侧线性递减到0。分别测试将这个forcing profile加在deep convection前后以及shallow convection后,强迫时间JJA,区域90-120E,0-30N;除了加在deep convection前模式SIGFAULT崩溃外(没有找到原因,可能进入物理包后模式才会进行tendency变量分配?所以加前面会造成数组越 界?),加在shallow后或deep后仅一年月平均的结果就无本质区别,可以确信做ensemble后更相差更小,与我们之前讨论时的预想一致,结果 详见附件。目前在测试加在PBL过程后,预料差别应该也不会大。终于看到期望中的结果啦~
加在deep convection与shallow convection后6月响应的对比如下图
总结一下修改方法。
1.输出,按照addfld add_default outfld 三个步骤来,在cam_diagnostics.F90中依葫芦画瓢,在physpkg.F90中响应的位置outfld。
2.加热强迫的加入在physpkg.F90中做injection,有两个module记得引入,一个是time_manager,应用get_curr_calday返回日序数,控制加热强迫的作用时间。另一个就是outfld对应的cam_history的module。
physics_state里的lon和lat成员控制空间位置,注意弧度制。其所在的physics_types这一module物理包运算时一定会引入,因此不必再做重复工作。
3.pver控制垂直层面,chunk目前还是可以当黑箱的,知道它是若干columns的集合即可,作用时需要遍历chunk中的每个column。
core injction code:
1499 calday = get_curr_calday(); 1500 if (calday > 151 .and. calday < 244) then 1501 do i = 1,ncol 1502 if ((state%lon(i) < (2._r8/3._r8)*3.14159265 ) .and. & 1503 (state%lon(i) >0.5*3.14159265) .and. & 1504 (state%lat(i) > 0._r8) .and. & 1505 (state%lat(i) < 3.14159265/6._r8)) then 1506 ptend%s(i,17) = ptend%s(i,17) + 0.01 1507 ptend%s(i,18) = ptend%s(i,18) + 0.03 1508 ptend%s(i,19) = ptend%s(i,19) + 0.05 1509 ptend%s(i,20) = ptend%s(i,20) + 0.03 1510 ptend%s(i,21) = ptend%s(i,21) + 0.01 1511 end if 1512 end do 1513 end if
#Up to 20140825#
前两天终于把SEN和CON两组试验跑完,终于可以把真正的试验廓线差求出来,正式做HEATING试验了。还没有画图,看了下数值大概分布,基本合理。具体试验设计
incSCS组
0-30N, 105-150E, JJA, CON SST & CO2
outSCS组
0-30N, 120-150E, JJA, CON SST & CO2
承诺下周给何老师结果。囧zn
#Up to 20140903#