From 31cab2248c82411f538fc7f76e1222cd2a004a1d Mon Sep 17 00:00:00 2001 From: Chiel van Heerwaarden Date: Mon, 12 Dec 2016 15:20:08 +0100 Subject: [PATCH] Included the option of having an buffer layer that updates against the mean profile --- doc/input.pdf | Bin 72768 -> 73051 bytes doc/input.tex | 10 +++-- include/buffer.h | 1 + src/buffer.cxx | 103 +++++++++++++++++++++++++++++------------------ src/fields.cxx | 2 +- 5 files changed, 72 insertions(+), 44 deletions(-) diff --git a/doc/input.pdf b/doc/input.pdf index 461eac9580a8b42caeddb2913836154b69fc60f8..165cfa0e18f3b78a6efd67bc9c434857c6c34276 100644 GIT binary patch delta 27282 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 ~?z+2Qyk+$o2ClhM-#sC<7AKMq_8F zW1=bq053(BR?prLXI4v*q==pCHfEhoVeJKFUo~qzQiE^4%|7;Sg9oND26EPz*SP|&cby;e7`0O} zThQ{lJo8L3EG_50E11p^VP($%N6d-#gor|n+{a;h720Rr=V-A??F2Co{x4)D7_VISaEHQ5f_CF0rnSL$7WxYU z%(7ePZ^o#biJp$VqI!6k8z=CS)vAVXFN$7VBtm1hPw~|{_CdpU6trV^-^@AUS|qKD z^H&vIb}wflX%FP(G%B)M;M!L0KI((Vdb))?*1DBHHbK#Xm=y?2tJ*K&zrcEn>tM|{ z@q9cd&d$SHLzslp-vW|iz-p&Gg9D}=FIR{12dhKsrTxOg3Qo^o1z{+GfaJz9ICf=S zDmwX;25ds5;PR7pYo;3yH~ksqkh}QlfK8QSh8P&%6SJ-u-jhKi;8m8{Ma>J6zJJ61 zjF7J}gqsOBVn-=%@!wI-Ha#&@0bx}HWH|rDY zG&1Q*2YuF4-Iz)|XDQ<~#Me!jb_5Rfo^a54=0WK1s9fIUBvy-x> zjbt*pt1>0PV}ZM?tL~^>IGg8PXn~c4nCr&;pobh&?sG@SrS2k`d7roq+bzOJGBHv3 zQr>(zl(IXf=Hy+5_!p(`FYcu=&WBGY<9m^OYwuSwsCTNCTAy|+ z16I%#O)0$1=x>9=HG6%{A=DmKrAR54PS!WkHnzT8hs;k)FF;vKlhPTUj7*WnADty7 z)|{27T+0kLwD>!hOA1qpRy>lIsL#?~dzBZ-sPB>{@8xiaW2WUj3A466yaUnY6TeJT ze|hJ4ac$=NdKNl`Kk!d;vS$lFf`a+o@oe8{6N~6l~G2nICiAl4lQ|)`FFTwq;??$e$;I=G4 z4wth18bk9k-=a)(@!Lx|1oAl@IAbHoQ;%k-$W37*RO}bx<~IEk@Xe0A8p4UCqnRc) zs+wA#AALxBv~IC&_JT=#4n{G-YRU&31J{-@hF^zZ*6d@wtbuz#su|N44L?ZFR%&a7 z)K3`OCaQcOb}# zI1YT1r}bn7C}+AT8YmSr3+sQy!NSeVL&wZQ&CE;U^pxB@+>6qyMWkGQ8{BMdxIuIQc63B_+|5~?q z7(RH+1ppffq^Mafx?G`hSS5vl8qu_`iT^G8kao3ttFNj^L9M82?~e}_p8Do~BXDZC zs4CAq5p1Q(f{T!nTv3qOED!y}eFDbIKSlq+8jJRZoq>k*!@NQ(pqd46JP)$jCnU;f z#rqCAmp8^7ioMJ8wv5F>04lA(TV~!j3$kT4(VJ;Xvn6{m^$hS%)6#!mtw;9tb<*Gf zv*%(^g~~M@8f@{)fkqSC@){Q13^wO*KzGmnr$MypnL=+2N<5KGnTFSqEu3 z%Gdx0XT$-K`118MzAv%&Q47KmM7BO8S6QGmYUr9D3h0Va3e|(Vz?J2va_e=LK*4l2nCd<=;=@w`^|BBC*LOMxNBei6l5f%7o#Ga6+CJHbp4 zx9AV%CJf-wU0D>1J7LW_Y^h^oX-Cv0mm&v8?GCaNTuGCLHqNq^Ou8x$-a({$Nq z&Cd}ll&;>`fVsh#4Hg)QR$TP9cl7#KeF-B!#cwJqv8^#V)_W?nG47@@|H!~Zp)Nbi zAzK3FF-F*uuT-V$RB8AqP}NLHqoNpP57}i9`wMM!$_}huLL$v~$)F3W6@n*8M3OsM zD#2wO%Ohx{n@dG+iz+x(@W+&iJJ6cg+I`f<1(Hs#fx(XgkK+EiRYqjjJ)$BFh5lVA zwQEQ&%Hx)DXy~j9{PY<5S&5Ko{8VU}C@S3sXJ-}+MbqN)xKvB`acRFiosyK2JW}PK z@DjFZw8!zK(Ra)njMSKuPUX=Wqj%IQsC3+1iD=mkEntt!a4u2Cd7;9=Eu{t|gEdHf zhRHRofT=|&Zg^zR)_Pvtfey&PL@$8DD4rS3vI?_zth=;T(28UtPYL%!3{*DWfJn>b zEMeoqXkbBVhAmx`!f(~uw1ot9dUe?f)_yJ|*vNYB5>@=ON-3XVZYHz<*+c2z_7xT7 zyeCFUH&1Uv_NC5l>nh%Di-6g=g~xx-UFj(yKx%aT#K|I}zKP9|x3i0{W?fF4*6CA3 zHk+@2Zl*YsE$((44Kyz5gv&)kw$e+qWO7EM_mQch941{V$(+^_B6g#e_r{!?nv<#E zxKhIV;#Te-7+=Y+rJ2wW3Bx7Gb3Vbkm~IB!Uiz%?{PZgKNB>|JKtnLz)-+M0^X-Tu z@Y69N&(FFlhL!kMYifPFOeXY7TW699rkccHj?>|@m6X}B8lSEv0xCMrdvTKR<@(+~ zpg;c+_9vZH`+m7oxOLI?6@DNhy(26qu5zpqLC8^GiZoZ6Hy!0?;-Inn~BuB>xDI6C~}*%z?EeP5qZ zm+sv&m7sGfWosew^nLaj@H8kmnJ~b=H;V0aME8%E_rdBPe2zEH_InU8RPGVC*?`@` zwa@j>a-;74&$~AfA>r%cNVs0J28xA@xS7U~`SrkIL4}ZVvqUm(*nA)}h#1qBy1Ae7Q)qXe9`Gpj9d9=6# z>R6e17B^D@kt=S&E|Qoav_s@EljwX5PlMR~dBR~{${DS49D zkvJcG>nSVN7el(EsdsS~lfZ;KsWjJc_Lhr_p1ZM+|Hi14PgIk!kYn^4>3&d%CyCAn z0)~*D{A8z%47EHj{fpX;008v+OLuldV(2IyrX6`I7y1Ybq6bmr8AO`W5hRq|rI`7H z`*}IiBbQUJ;L5+Ce-=@;{7ML;_zEF>ox;^E9Uo>gyRi52MMy&mM%`KBIY76I@PDcO=568*F0!K+Hp(F|SKkqcae*gdg delta 27023 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 z%0AsfUi?(Gd@#dAmVpMxebriwxN*Z7SFUp<>TU5WXN>(x?l;aMR}NWR0ziLkm7dat zYf|*`u9XRSV`tlYj~@QdKJp+Zi1J9IZH5DN^rdQ(>1C0Qk*wPcmRv%%w-1Ock@0@9Dv7ny$O1)t=W+;B2WJ|7Fm#eJPR_{-^bo9;RnY$Nt zN!!LLfak|}R7G;Q_*`e7s-&?Ba!{w4HjV%b&pq{g2lpVR%9f6fHU5A>otR(1RvT(T zQq3^7Zug;fxn_KsDQT7NmG=iq}b$u>iH~Y{g zqB)Ah#pY&k8C*;S7AdMJ7r^~9huVpj{9 zfTuroWR?>64WA0Ree~m7O-CoZTKsyoN9fII0l};)S%22d$a>COVo^hpVfpMXW&gQ2 z%;KRxk+1)*SBP$LG?U^J=nX{!ycjK;Xt1ep{a6Z%R26z3$vuNfyHXr4A1we>1`9z^ zW>BXvifUtDLl=Uno;)$Ov_oqt)R4;tth~k^g%7{?A+AzcoHx{THFQ1Ho3_eMppN*A zyEZ$_NBuLaqeqz2O>krKodMbJYVh0+Bi=4{xac@DpGZ)1*z?D!Jt9{pN(o1F7KP3A zn3vkI8Y}DxN5TX#R85PQY>Uutb%Ck^_#aoeAc6}RH;i#5^5e9Ho~)rDGLWJGMd)jV z71T&lRqS>M9OE`VZau05I+hM~?Y0+G$sHG%WfUQ( zft6N%e|=`1?P97ld)Y<-mC@t}w128%d24AMby|v$rC=`Y> z+KtW0xY#O&C1&QmWw1N}oyUg!=tk}I8kD|qWlu3BVX}pgTdk(lxLPu;$>D_YX5Ef9 zIbHU*@XP1mfiUFX6Ps8vyb^tVNnV)?8-_$SDgEa+w)8i~24ApkK4KiokM}PJbwWXU z{5?i@hHKok_dL1l$&>wNU5u$apU)9 z{(l8o{kJh#5jb$Ez_uEkpG>QLzF~eJM;}Fom}n{%%kJ_L8Gku0ujDhBSQD9=?PDYw ztH^kJJ3$>3F*XEN@VeJ|FNuFQ#w13hbwY)nF*w;u$G_joFlx`)*{PrtBl=5DmP@$S zF=90~kVCVjYlHFcfFR6d|G^fdP-F8x#^HA2l*XkuE^H$ghg7gguxfsPg3#$Rb$ubOY3=wG__wX$TzvZG_ zIccORqPz%pj2AA}944sF>bWmGQuZ32HXKwfAXfqByEx2qQQYT5L)$KM3RC!3RMf^g zC6M7pLrA);?Mdg=rxLMg?FP@z#Dr9EhO4e5Ke|PQPY%pBZXxYZ;VZwI9*9mI7ON zb)f*OcP8FdK||f%HpwO1UJ!g_L&E4|V(092gPawrAF(+oYIlphCYip29+V+uuu40D zi=?L6l<61Fr8^nMXWJ|m3o%V_Y@Bv}RSV6BDexMnYQ9{DH@IBXh1$QXg@iN*{tXMU zNB)@|Tzn{@yIg#1dY?~-FDyi-;+>_QSz-aieEm&uqaAESr@E7$mDf}sxW6DORUr@} zLEoefpuW$)@JPPuPzwZ^hYZw4#Tz824jjd@YC&P zlH@U+edDD1wL=e^P+e1pn1(!N6l{1#)Zm{zImes;j{JRnY&-fbQrclFu^6r(^(alr0lP_(p|Vs z#r~}+Abcp-t3wACztjXW;HOgRSdwGnNi6OBaT~~1Q;fR%yd6h!IGHc1vIPSGG-^C` zP532WvUKdor;{7CT`VEnGZ?bS&SV_62!6q_yDtnZ;$_hbwwttKbz4HWFdz^T{k@g5 z3EOZdYUP%|wQF07I_5ngA2>MCQIwvhT&1mY4yo4(05|nCbKq z5Ml{#*SV4N8g|889m0IYYvBj%mvN9WR3Z7m?V$>-VZ@qM9r3AdQHPYWu)ZPbbBDuU zuC09A5C2Ectn0A(WSTX}Hv&Fnu2U~+D3+^H_h44Q6TqC*XCx4=BQrWoS)>*~@)@w0 zyqcJ!SwyT07qA(dXyt~dJq%; zRA3#G-z0X`B6+754*3|}(~OPC#1cj)8&*%SR(N!AtYUo!JHkUrIdC^5^ zVQH`_6|Y|4#c0AA@3J))x`tf(4)wd>iI>M}JGLHDO*BACuP-6nygwtDMB+h1+F;;5 z0OVtCqW4|Q4!T18^~nM_EUaF{T1510UpCk+{IujKKIYzkr`%r|t8(+bCt8I%Yd1ImptId4O%QKoZX}doYxS+sdPt`b|Cf_mMBiT3_e}T zFiqI+4r`gWW^!GMO}wYypZ7e9bW6M~psJT<$rc!L>5^DDqYwwmBR`1OA0y*S?{2yW zX%XZg>I9K&4YgUCq}3ZP=IZLH=ndYAg!~gpvSdH{ARq2B)umu(@lqY{GyfLqm73#d zOBN&OfuYY3`7_Y~9@??Gu6MdQtw#~>(vGJA-CP$)RA7Ok^r85zE*` z@OCAnD=-eu>Y)Irz{xw6u%WL-m15BMEh%b$&kTb~pxvFlN+3_%`4Q^BFDj+_@18@N zjL9~$P0X$`=+QN*H+3DV5>w7rid>zWAp>%QevItCltirWKMO79om+fXhXD?H+V7@8712J>pvw|(kK)G2K1PD;IXE$h4gbuQ% zb=VIei(eBti-D&$T*)q1O&Z>Dx)Vj?zTS!F`9xRo2jFo8{vPwXyWfsoQ%fSj@&R4h z0pmO_SL1z?Ei<6hOTIkX3x%sIJwnG3gCJE(Ti{qAC7yCNR`D%ijgmi{==s7%E>CJ3 zH_{RIkD4|4l}M?7|K0>M`vwoL?uGm6a$>v3_6ru*+~3C||6?|yG!iuSBr>NEgGNIX z&OTkdSgw04MUB@(KbxT6V#jD>E!`~_p}8J{&r}UT(Xk$>3 zJOH?ipCaHSkT?j9R zCWTPrbizA4B!dcp0(O;!G$^$sc2w+n4|s*dG*gBeylG%E=867BQvpKr(H;ONBxbbv zA({Dn4LQBu_!2%vn&2qB@F?9HPl?b!BqKv)E3I0~!8y`Qeu7gl zGIIXM)#75|VqvFcWTs?fq@;#tkaI8mh4O|d{o%8>MCZy$|fkOeD7=BN+yMMn!6Ziw*!(ejjwo$U? z8)TQRD3A!l>b94h>NMjlr=PD}X~`y_h$M^+KOHPq>I9P6?&D1v=}0&Vt$SG-ib5l0 zW^}fs)YEW+QC-pB7X1YbhRJ;frqZ16MpbIwMXV~@3s8##KDvx{F@2)4FvJY!($;`6#%E1ArG?ojJ=py+%HQKdy;1sA1YYYv zU&{fH`aOcx79`wBX!cE=$0j7qiNIel^7pIgI10nwP6n*e*YT-~saz07P=j4CV0-CE zL0&QESn1GIc2F)De;fnFg5Q>|&_*8F{%MhB1Vj3X##oS|9i#pG-G`S|7#Pf`lFbP0 zYC)k3*E^aUQgo>5jH!q$sPB1!KN$0)O9Ie;Nu#i?$_OXi6??@5K*miF>Pa^UhLGx# zFV3!eYWfk@4gY}_v(Jq3cdoVJ6JYq+pW8`7)n6QJxOe_yp%JkPZ@Hi+59(cq8dCPE zFpWVUuXoX$YNDPEh)5Y+o`-(9GCp?n8Ly4S!#<57ZtfTU>2khj4=ersQR)=WQoNR70ox|cRqbn-kF|iTkQdh5>x^xCUgs%i>R;&2eJPtxbh9eI8zQH0vn#3-tWbZQSKT9PIJu<*A91Gzd zk+YvZ{v{f9BrVb3ZtIMcf-UljKT9>=0W?4jt?&|+^3Nj^x^gzCz(81V%utW8IS(T~ zqM%74Q4hXc6W**@TssV{$2Ska2LU5KoKFdjm2#aswVGQP+@`b=m6 z|BM)(*{*%A+q7bOsf20izg^SNB6y8Hrn5qUSF0g_oKrUIf+SPmr$|M$(sYF}kg~31 zkKO=E9CCD(WOcxVrQbb^ffGkmWxrdC(P&}<_f>_KAPZ3xD{giHD6P8)xm>wRht{eqVwbOrx7}pLS zRyv}+C2>ua>u?`Z!oSEkUs*Z@rN>E9Fl3lGWnEH&Z-I2gE8#{3M*?-IJ~rsq*^#lJ zak8=@n|0YvgX4wn&IWJ_&bj;h9w3@R5F6-SzEtS)K&kbMV_t6wu=KP;I2{s7|WAiG(?+8UfJFZp=P2Ba3%Q!GBi; z{7=p{DzFHbqE7#oNQGQzYE3Y}R#9#BvD^J_A!g)QiAh=6fR1eTTA1K_>^^{bkMG@= zc)xl_`U=gx_IQuZy$dq9sVqr<*LRP)?a*n({S&D0oSgRl$3Vk(ST4z(%+2%EHx19ZN+On5Co|ARiy@Ye!3I`DPW8ys7u?buKyIL^m(ubr?W zSKVbjyK+3Fp|f@4uGDnrbJQVVQ`f33KUtE!BnLJa-B*H!2I`{JWd?~O4tmV7- zwos*R^%mWInHZ1WXqhATZ)jit2MLt%mDnb`==??5<}iV1k-MGSrOQJMv1!7!o%gmG z;M#514uBdqz3z$*m3K1fAJhHg7y3q?y&@gcdo-IBCyv#&QWh(RxraQ+6CoQ8ldtEf zYtxdvwSQUkY3mt~a;M%0`Q|51VXj60OY28DQaUvjnGJXDyCt!y0!9=!f2BHgEG)#X>kPuJITJ597VX5pk-XZDlwG(X--r1OK3-uV?< zQF19sDa$SUC^K(B4gT@2F4yTbd5{C^2|roLbMPIq8$k#OOp=@f%$T5E9m_BK)m-$= zT_qD=@sV25&;o+S7e>)%VfcGVTa;9$U(W3g_|jd3FHG*vu*D`uPhj$e#%^Jp{VzW^ z9dM*gKv#}Bt|(5QS&b*qNwd%C!8SP;&)4h?;o?{-Fl`SP+*XByi9=M3m5qgsja8KW zzaGsgBr3wm#?HhcEG)tz#>UJ~#QXo1=)p6{n%P^pS`slaauEIBs3ZJ|dXylrAENWU zR73?qL=h~|WTy9G$f|}gsfN%WKQ!TI^ly)5FTpS1(3oLqber2VM^sBv*7;X{bES*A z?zC-9%@L@W2)SzmtiJtC2IR XtEaP>IXnk5D-#nuIk}jEIQ;(tyL+jy diff --git a/doc/input.tex b/doc/input.tex index ff79b641c..ba17c42e1 100644 --- a/doc/input.tex +++ b/doc/input.tex @@ -22,7 +22,7 @@ \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \begin{document} -\section*{\huge MicroHH 1.0 cheat sheet} +\section*{\huge MicroHH 1.6 cheat sheet} \subsection*{[advec] Advection} \tablefirsthead{\hline NAME & DEFAULT VALUE & OPTIONS & DESCRIPTION \\ \hline} @@ -85,13 +85,13 @@ \subsection*{[buffer] Buffer layer} \begin{supertabular}{|L{\wname} C{\wdef} C{\wopt} L{\wdesc}|} swbuffer & 0 & 0 & disable buffer layer at the top of the domain \\ & & 1 & enable buffer layer at the top of the domain \\ +swupdate & 0 & 0 & use the initial profile as the buffer reference \\ + & & 1 & take the actual mean profile as the buffer reference \\ zstart & n/a & & starting height for buffer zone [m]\\ sigma & n/a & & damping time scale of the buffer layer [s$^{-1}$]\\ -beta & 2. & & exponent of the damping increase with height [-] \\ +beta & 2. & & exponent of the damping increase with height [-]\\ \end{supertabular} -\newpage - \subsection*{[cross] Cross-section} \tablefirsthead{\hline NAME & DEFAULT VALUE & OPTIONS & DESCRIPTION \\ \hline} \tablehead{\multicolumn{4}{l}{\small\sl ... continued from previous page} \\ \hline NAME & DEFAULT VALUE & OPTIONS & DESCRIPTION \\ \hline} @@ -153,6 +153,8 @@ \subsection*{[fields] Fields} vortexaxis & x & & axis around which the vortices are evolving \\ \end{supertabular} +\clearpage + \subsection*{[force] Large scale forcings} \tablefirsthead{\hline NAME & DEFAULT VALUE & OPTIONS & DESCRIPTION \\ \hline} \tablehead{\multicolumn{4}{l}{\small\sl ... continued from previous page} \\ \hline NAME & DEFAULT VALUE & OPTIONS & DESCRIPTION \\ \hline} diff --git a/include/buffer.h b/include/buffer.h index ba613acfc..039f87e00 100644 --- a/include/buffer.h +++ b/include/buffer.h @@ -63,6 +63,7 @@ class Buffer std::map bufferprofs; ///< Map containing the buffer profiles. std::string swbuffer; ///< Switch for buffer. + std::string swupdate; ///< Switch for enabling runtime updating of buffer profile. void buffer(double* const, const double* const, const double* const, const double* const); ///< Calculate the tendency. diff --git a/src/buffer.cxx b/src/buffer.cxx index cdca1b564..5aaa596a5 100644 --- a/src/buffer.cxx +++ b/src/buffer.cxx @@ -43,13 +43,17 @@ Buffer::Buffer(Model* modelin, Input* inputin) if (swbuffer == "1") { - nerror += inputin->get_item(&zstart, "buffer", "zstart", ""); - nerror += inputin->get_item(&sigma , "buffer", "sigma" , "", 2.); - nerror += inputin->get_item(&beta , "buffer", "beta" , "", 2.); + nerror += inputin->get_item(&swupdate, "buffer", "swupdate", "", "0"); + nerror += inputin->get_item(&zstart , "buffer", "zstart" , ""); + nerror += inputin->get_item(&sigma , "buffer", "sigma" , "", 2.); + nerror += inputin->get_item(&beta , "buffer", "beta" , "", 2.); } if (nerror) throw 1; + + if (swbuffer == "1" && swupdate == "1") + fields->set_calc_mean_profs(true); } Buffer::~Buffer() @@ -57,21 +61,25 @@ Buffer::~Buffer() for (std::map::const_iterator it=bufferprofs.begin(); it!=bufferprofs.end(); ++it) delete[] it->second; -#ifdef USECUDA + #ifdef USECUDA clear_device(); -#endif + #endif } void Buffer::init() { if (swbuffer == "1") { - // allocate the buffer arrays - for (FieldMap::const_iterator it=fields->mp.begin(); it!=fields->mp.end(); ++it) - bufferprofs[it->first] = new double[grid->kcells]; - - for (FieldMap::const_iterator it=fields->sp.begin(); it!=fields->sp.end(); ++it) - bufferprofs[it->first] = new double[grid->kcells]; + if (swupdate == "1") + { + bufferprofs["w"] = new double[grid->kcells]; + } + else + { + // Allocate the buffer arrays. + for (FieldMap::const_iterator it=fields->ap.begin(); it!=fields->ap.end(); ++it) + bufferprofs[it->first] = new double[grid->kcells]; + } } } @@ -81,44 +89,48 @@ void Buffer::create(Input* inputin) if (swbuffer == "1") { - // set the buffers according to the initial profiles of the variables - nerror += inputin->get_prof(&bufferprofs["u"][grid->kstart], "u", grid->kmax); - nerror += inputin->get_prof(&bufferprofs["v"][grid->kstart], "v", grid->kmax); - - // in case of u and v, subtract the grid velocity - for (int k=grid->kstart; kkend; ++k) - { - bufferprofs["u"][k] -= grid->utrans; - bufferprofs["v"][k] -= grid->vtrans; - } - - // allocate the buffer for w on 0 - for (int k=0; kkcells; ++k) - bufferprofs["w"][k] = 0.; - - for (FieldMap::const_iterator it=fields->sp.begin(); it!=fields->sp.end(); ++it) - nerror += inputin->get_prof(&bufferprofs[it->first][grid->kstart], it->first, grid->kmax); - - // find the starting points + // Find the starting points. bufferkstart = grid->kstart; bufferkstarth = grid->kstart; for (int k=grid->kstart; kkend; ++k) { - // check if the cell center is in the buffer zone + // Check if the cell center is in the buffer zone. if (grid->z[k] < this->zstart) ++bufferkstart; - // check if the cell face is in the buffer zone + // Check if the cell face is in the buffer zone. if (grid->zh[k] < this->zstart) ++bufferkstarth; } - // check whether the lowest of the two levels is contained in the buffer layer + // Check whether the lowest of the two levels is contained in the buffer layer. if (bufferkstarth == grid->kend) { ++nerror; master->print_error("buffer is too close to the model top\n"); } + + // Allocate the buffer for w on 0. + for (int k=0; kkcells; ++k) + bufferprofs["w"][k] = 0.; + + if (swupdate == "0") + { + // Set the buffers according to the initial profiles of the variables. + nerror += inputin->get_prof(&bufferprofs["u"][grid->kstart], "u", grid->kmax); + nerror += inputin->get_prof(&bufferprofs["v"][grid->kstart], "v", grid->kmax); + + // In case of u and v, subtract the grid velocity. + for (int k=grid->kstart; kkend; ++k) + { + bufferprofs["u"][k] -= grid->utrans; + bufferprofs["v"][k] -= grid->vtrans; + } + + + for (FieldMap::const_iterator it=fields->sp.begin(); it!=fields->sp.end(); ++it) + nerror += inputin->get_prof(&bufferprofs[it->first][grid->kstart], it->first, grid->kmax); + } } if (nerror) @@ -130,13 +142,26 @@ void Buffer::exec() { if (swbuffer == "1") { - // calculate the buffer tendencies - buffer(fields->mt["u"]->data, fields->mp["u"]->data, bufferprofs["u"], grid->z ); - buffer(fields->mt["v"]->data, fields->mp["v"]->data, bufferprofs["v"], grid->z ); - buffer(fields->mt["w"]->data, fields->mp["w"]->data, bufferprofs["w"], grid->zh); + if (swupdate == "1") + { + // Calculate the buffer tendencies. + buffer(fields->mt["u"]->data, fields->mp["u"]->data, fields->mp["u"]->datamean, grid->z ); + buffer(fields->mt["v"]->data, fields->mp["v"]->data, fields->mp["v"]->datamean, grid->z ); + buffer(fields->mt["w"]->data, fields->mp["w"]->data, bufferprofs["w"] , grid->zh); - for (FieldMap::const_iterator it=fields->sp.begin(); it!=fields->sp.end(); ++it) - buffer(fields->st[it->first]->data, it->second->data, bufferprofs[it->first], grid->z); + for (FieldMap::const_iterator it=fields->sp.begin(); it!=fields->sp.end(); ++it) + buffer(fields->st[it->first]->data, it->second->data, it->second->datamean, grid->z); + } + else + { + // Calculate the buffer tendencies. + buffer(fields->mt["u"]->data, fields->mp["u"]->data, bufferprofs["u"], grid->z ); + buffer(fields->mt["v"]->data, fields->mp["v"]->data, bufferprofs["v"], grid->z ); + buffer(fields->mt["w"]->data, fields->mp["w"]->data, bufferprofs["w"], grid->zh); + + for (FieldMap::const_iterator it=fields->sp.begin(); it!=fields->sp.end(); ++it) + buffer(fields->st[it->first]->data, it->second->data, bufferprofs[it->first], grid->z); + } } } #endif diff --git a/src/fields.cxx b/src/fields.cxx index 8f09dea2b..d963f289f 100644 --- a/src/fields.cxx +++ b/src/fields.cxx @@ -263,7 +263,7 @@ void Fields::exec() // calculate the means for the prognostic scalars if (calc_mean_profs) { - for (FieldMap::iterator it=sp.begin(); it!=sp.end(); ++it) + for (FieldMap::iterator it=ap.begin(); it!=ap.end(); ++it) grid->calc_mean(it->second->datamean, it->second->data, grid->kcells); } }