From d69bf6a2dcd80df4131af4694de22276e83abb20 Mon Sep 17 00:00:00 2001 From: SallyDa Date: Thu, 18 Jul 2019 10:49:57 +0200 Subject: [PATCH 1/9] Correct order of arguments --- climt/_components/rrtmg/sw/component.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/climt/_components/rrtmg/sw/component.py b/climt/_components/rrtmg/sw/component.py index 6865963f..c374f4fa 100644 --- a/climt/_components/rrtmg/sw/component.py +++ b/climt/_components/rrtmg/sw/component.py @@ -515,8 +515,8 @@ def array_call(self, state): self._liq_props, self._aerosol_type, self._solar_var_flag, - self._random_number_generator, - self._permute_seed) + self._permute_seed, + self._random_number_generator) _rrtmg_sw.rrtm_calculate_shortwave_fluxes_mcica( self.rrtm_iplon, From 02fe9b53a76bd06e828872ee20988871060f31fe Mon Sep 17 00:00:00 2001 From: SallyDa Date: Tue, 23 Jul 2019 09:45:34 +0200 Subject: [PATCH 2/9] Add dictionary for random number generator options --- climt/_components/rrtmg/lw/component.py | 14 ++++++++------ climt/_components/rrtmg/rrtmg_common.py | 10 ++++++++++ climt/_components/rrtmg/sw/component.py | 17 ++++++++++------- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/climt/_components/rrtmg/lw/component.py b/climt/_components/rrtmg/lw/component.py index d01f4c88..1d0ccddc 100644 --- a/climt/_components/rrtmg/lw/component.py +++ b/climt/_components/rrtmg/lw/component.py @@ -8,7 +8,8 @@ from numpy import pi as PI from ..rrtmg_common import ( rrtmg_cloud_overlap_method_dict, rrtmg_cloud_props_dict, - rrtmg_cloud_ice_props_dict, rrtmg_cloud_liquid_props_dict) + rrtmg_cloud_ice_props_dict, rrtmg_cloud_liquid_props_dict, + rrtmg_random_number_dict) import logging try: from . import _rrtmg_lw @@ -166,7 +167,7 @@ def __init__( cloud_liquid_water_properties='radius_dependent_absorption', calculate_interface_temperature=True, mcica=False, - random_number_generator=0, + random_number_generator='kissvec', **kwargs): """ @@ -227,10 +228,10 @@ def __init__( * mcica = True: use the McICA version of the longwave component of RRTMG * mcica = False: use the nomcica version of the longwave component of RRTMG - random_number_generator (int): + random_number_generator (string): Different methods of generating random numbers for McICA. - * random_number_generator = 0: kissvec - * random_number_generator = 1: Mersenne Twister + * :code:`kissvec` + * :code:`mersenne_twister` .. _[Ebert and Curry 1992]: http://onlinelibrary.wiley.com/doi/10.1029/91JD02472/abstract @@ -251,7 +252,8 @@ def __init__( self._mcica = mcica if mcica: self._permute_seed = None - self._random_number_generator = random_number_generator + self._random_number_generator = rrtmg_random_number_dict[ + random_number_generator.lower()] if type(cloud_overlap_method) is str: if cloud_overlap_method.lower() == 'clear_only': logging.info( diff --git a/climt/_components/rrtmg/rrtmg_common.py b/climt/_components/rrtmg/rrtmg_common.py index 7d3915b5..ac47adca 100644 --- a/climt/_components/rrtmg/rrtmg_common.py +++ b/climt/_components/rrtmg/rrtmg_common.py @@ -53,3 +53,13 @@ 'ecmwf': 6, 'all_aerosol_properties': 10 } + +""" +Dictionary mapping input options of RRTMG radiative +components to integers accepted by the RRTMG fortran +code +""" +rrtmg_random_number_dict = { + 'kissvec': 0, + 'mersenne_twister': 1 +} diff --git a/climt/_components/rrtmg/sw/component.py b/climt/_components/rrtmg/sw/component.py index c374f4fa..04d3c3d1 100644 --- a/climt/_components/rrtmg/sw/component.py +++ b/climt/_components/rrtmg/sw/component.py @@ -10,7 +10,9 @@ from ..rrtmg_common import ( rrtmg_cloud_overlap_method_dict, rrtmg_cloud_props_dict, rrtmg_cloud_ice_props_dict, rrtmg_cloud_liquid_props_dict, - rrtmg_aerosol_input_dict) + rrtmg_aerosol_input_dict, + rrtmg_random_number_dict, +) import logging try: from . import _rrtmg_sw @@ -202,8 +204,8 @@ def __init__( solar_variability_by_band=None, aerosol_type='no_aerosol', mcica=False, - random_number_generator=0, - permute_seed=112, **kwargs): + random_number_generator='kissvec', + **kwargs): """ Args: @@ -312,10 +314,10 @@ def __init__( * mcica = True: use the McICA version for the shortwave component of RRTMG * mcica = False: use the nomcica version for the shortwave component of RRTMG - random_number_generator (int): + random_number_generator (string): Different methods of generating random numbers for McICA. - * random_number_generator = 0: kissvec - * random_number_generator = 1: Mersenne Twister + * :code:`kissvec` + * :code:`mersenne_twister` .. _[Ebert and Curry 1992]: http://onlinelibrary.wiley.com/doi/10.1029/91JD02472/abstract @@ -330,7 +332,8 @@ def __init__( if mcica: self._permute_seed = None - self._random_number_generator = random_number_generator # TODO: make dictionary + self._random_number_generator = rrtmg_random_number_dict[ + random_number_generator.lower()] if type(cloud_overlap_method) is str: if cloud_overlap_method.lower() == 'clear_only': logging.info( From 1902aa9b98059e7dbf35b6126e365ac5032c1aa1 Mon Sep 17 00:00:00 2001 From: SallyDa Date: Tue, 23 Jul 2019 10:27:40 +0200 Subject: [PATCH 3/9] Update cached output for testing --- .../TestRRTMGShortwaveMCICA-3d-0.cache | Bin 920 -> 920 bytes .../TestRRTMGShortwaveMCICA-3d-1.cache | Bin 5516 -> 5516 bytes ...estRRTMGShortwaveMCICA-3d_stepping-0.cache | Bin 5516 -> 5516 bytes ...estRRTMGShortwaveMCICA-3d_stepping-1.cache | Bin 91164 -> 91164 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d-0.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d-0.cache index b81e24d6bf2bb93bc2e221f4604cdb17cd5788ad..18e5a4af70d005def3da2b0eeccfba3ef63aef54 100644 GIT binary patch literal 920 zcmZ>EabseD04^ZK48&ZynJMu(sb#4-#b613ka$jF35Wwy%bb&+2V#TN!T>jr!3f0s ziJ3+5C8@ausYQt;rA4VAd6+toJV-welx8i>%PfId0T$;@Nlo`wNJ*@W(=`MtVc?2) z%go6MOUx++8^gc`6l1La0g?g(AfM?1lzqZ}gL?UufGl_7Y1v4}tlrc18;GS@*6eDU zTxP$4NP7M9cg^2q_3VkJwJWl?BqQzD6G^Wt708+eO z>9fk7XnITBgbw{w`!z(;Yv26~egE~XJ(0A7gz%yza~V2_rd8V~y?w`R<3J>B|D$Qv fVeZs7#L^A|-z=4mP4Xm~)-?U_bg6=q1CcZUO=57P delta 731 zcmV<10wn#I2bc$t$$z=3Iw2@ck3Xz#F#&i|SU;0oxOIXW`9HQZED!UnSwF6xHC^`B z+CQ2_HV`K~DnGfik$l8{yFaW|cWm4ojz5!<;t%O=hd;I|jMi5%Xg{wLwlcLu89$n! zdvX|ca6h@s6sHH4g+HtsxPt(tOrP2oSQs>l^KxRO7Vs@@^eR5d@f?wWmm50gK!04wiF1vo#Pk4}u?FUvo= zW%JX7JS9J?7{aK0^N2r{ntP!rY9K$g!*z)iS};Gdl7H}ev3Eb7Mse;Qx4l2RMu_M> zNvl7qN7lq4Vt)lcmk$tI=9$7jwTYi9p5}u;wJxe6Df@UopkuW|g}{?Py)q7Av{bY| zsbg3Wkor+SnKeyD`lQ%DwPy>-cM^|3xp}iE%^Yt(qAMHKw^8Xoz)8QDPRiatsC>SO z2SnOGoS{#CXb7o4wQG|&5_;u7zx)Uz9{!9!q__?S%70mBKf<~Lm zKo)Ob9)HYrs6ZG@nNAAp1V9ZX?BV7;FhDEu8%oAWNj8vFH%4cbBKg8Lk~a> z*{35c>ySVZhe2rO{p3I?e>ffHDJeiG`XsNZe561q+hMnb9G*ZZt%5~StYbhZq!{o` Np=dxUi+LILZ~CNGNBjT) diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d-1.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d-1.cache index c9e2a51cd9cf6482826631a7dfb241b610154e90..1a86f0365198916550b3dde58be9e00921f67bd2 100644 GIT binary patch literal 5516 zcmcK4dr(wW90zb7f&vPNMZiWPL8t_hlQ1&M`JsfMXp$f=W4XeGUA()??1N>SX-P1#{N1cs7O~x4D3;UGR4SR~Gjt}+$hdQCH)kk0iwRe6&Pc@E*qrUwB4Nt2 zN)r=1?uWT%!)nR)m5K}{%`if78eb-mNaac@ljf%~iY&fR%%_A>uAI9U*G$>YJ!9#d z77DRY&V`tpTgJGF5`EUs&aL^OLWbE(F$#Ki&OOUCduDdb9oYHP+nSHC^HnJlrFh;X z&n{Y^ES6lB_4BL=pOVQGB5ui&8Jd#vWd~H;EB*6A3zW@@%l7)b>-690o-XzRWn0Q+ z3uN~TUrviMXelLENNIK~PNBugDt@X|BKp_<`k(dVa?Y30CWTJh;g&+F5`A7{%S{k_ z&CI|RvY!B#(+ioCyMW8Hz?mGrg3aDP9WT~2;1z~b1w4P)j5Ns8r){P~09Z*3FDOiK z9k4=Hl`t)OA7Bm6IFvJx)L73hd3Rbxfg0=0(Y__V z9-u~=ZS{kvN7E~SHc+0Ed^HlXu^wo=AAD*Wvay!rbO)53hHR|gg@||sy^xLc*u$~U z+lR{mtN!GQhcbI#KzpuQ1Xq(mkM(Y`W5V!S&?7z0s}hyBXaVbzbHYuqnu zi!QEW0Bb^^*{{LIlYn(!;dJkbDHULSyGx)*vbzIV6MN$CxhtvxE5G7{_}{Co0Bh2+ z(o&wS1E5{W>y7Vz2a>RQ-3*Rh8~{m3bv_SwmtSZ0KAG`cPhcz$k zEvq259_y#??<~}mf)49>%b)!UuYnG$;YOv)%-5j9I%ZyWG|dupNcFZQLl%!N16tp+ z)9SN2&|}>dIMS(~20d1$_58ZfSkPlVlI0T{)(v{Bbt8L1WEr5x`kT}-@@OUKkz)V% z=jupnUE-uf+>G~9L&lrB0n&=KKR@)baTjSt+U7av&U+9=&^Df{eD%QqX+wIY_VA;L zYKma($k-9#UF$=ze!JaU>#}h-!P<3rtZ2D;4Z&(C=@FjZ-b1inzjARZ)=NvU_In%* zpvprD*75u=lhsKP1Swe6UC2#Ka6;?#UbreM#}AN_CNE|8?(}VVUE_k&^SekB)S?Si!aikIH8HIg%$xtT2+E6P|b|1MdfPlcNMFIIXCtDmBSN>#5O>8f`WKQZkeCNxKa_f)(tiHoA9e!_ltU MFg{T2wgr&>1$dPV*8l(j delta 2236 zcmWO7c{mjK9|!Q<(K=T}N|8boDstufHZ!i7kfIc=N+oI?m4vx8j;YlU#v(^Ho5`JN zoJEHYrRdTv{6tEnY_7EXo4;Pq=ly=3&tISC`J|eqn$>)g@M`_fPuI2`NoZrZ2m zMd6jOL{Ll;+4E-~fs^=SFDGsUXv-h*%9sId%t*zB2RO+#w1&?K1ZBw;wq<8HsQ#g0 zh9M4sV{&`hUJefwgS0Qk-GOk`EH6H()(i5qu7Bp|Sy0iu^?ap1XjNe`)+`@5I~2&u z+#;ZsKIj>Lbq#KQO04MphQQbK^AQ7&Ks!ENJF#j9To>eQtnbJIg%QAJ*=oRrCNX$8 zQU&)a{#|pK0#KAqZcyoLxI8zoTEmf0;FhZXhTl>HYLLP1yPpBqfyTU+z9*ooF(1nL zW`b(;TjV!2d$?JQuJg0)f%`XQ*@}f6Tj$8?vb#U+R z7meW_N4>n^mObc>k%m@$O}GTbWa_j3hDZOeTW<1iVMB5DPfpS8)o`(pxzBp34-b)? zKBn{#V}1HPVg!h`Sr=a7lL7YiH=3h&S`eFSdA;U^5aF3Qr5O|75lad3uHL*7$yquV zMyV>`=UJXJ{~`iEMm}b!K?S_*+L)*lCg4|ldi#hzBgHoK_npnzNIqOS^X*9^_;JrT z3EG}dz~9-@s-z?ak6Rec{NoV#IVxAC(u84B<5AdB& zYE!l;gBNUGQZaZa$kGk#q;6)UY`#A=Or&`CrO>k!uZeqT3Yu7a}L%!q(OT56^k#Z;Z;7RaKpIe!%)QI>@cGC3ZM{u*n zs^S7Ia0P>%%ALbt9-aGiA4>tO2(DEnyB9pp8BMLpKtsg;#rQs^s|Idi*u)-@5x7NF z3v}Mrfq6<>dBgKQuu{deq}}r1m4$wN6txlYP5Ebby;T9X?8m$1rf%TY*;%d7<$_s$ zkF*)B0889j=HGk`yp~DUpZspbzpAtPp->2J^D{ckZ-VdaND^ zy7j3;(UwREU|X$v;06{m|40#WkRE9~JLq0L5bu|p24k-!j@rW-PldfGS6Pwh2M zX#86ku(}$8O8rFji4dgc{mnbinMCrlFcCL zp{{I>u{7riU9;Sz^FIfi4VobAb8M?89a39R(BLms#k+lCk<_ggmmiNv?er`E_*Uw{ zeo`1FzN{>x%xNsMH!$%`BNgFRGRHRglgz+|=;I5fNZlH9^|6X=q^i(*$9VTklILQh zVeGhqG>T6%+t|&d!Y}6F>xBZ6nbEI49G*hzR-|@swc1arf2~_Bq3M#mv+;*?q9aLT zhjyt_b`q&r(7=;TktJEP`tM~|xs$qiY2l&{ed&MEREoLy%TID9XqnTbT>xnuPhrgS z>?7r6cjnqOWRR?~9)m}|)J!4hiH)l70_wc4&rzL&^_V1JGDX&;hn?ddvQ z@|;LQ=CsFXrIE&1vGM(d5#%p3y{Gj)!{n+*YmV359wK74oKT{@B>BbO?ESMZ5Xpf| zTdlZvq;+QYQvH8ZNlAm6;$65e-I$dW$LKriG8(`?yhZ;fO-iJ#`Oqo+gvN_P;7pe?6zG!q17cb1pu9 z8z3gtp&uo0P4zIRQ$D2Q(`C%&7nmr7gg|q${nh0lTg;0H(&uzUi=eY1*GuK2JXDvB z^bM}JgxOa;`YjJSEMD2Qb+CC@VVb^!E^&uRl6LieWf4rzfAM`9tPGP`eX6?$8pu@N z(|vnfUyz9@Pyb6cOUcCMVr!!T1{tR_3Q_|t$#-YFX=V4tWU`TBwKXphn$_=8%$(Ao z5j*C)&fI(xG^`>7mn=3x{V+dqHB}vIFG`o1e@usFiu3-#p93)E*e)70HHFEvQS}98 k2~1w?s!v*22$Ra=Eei&WdHyG diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-0.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-0.cache index c9e2a51cd9cf6482826631a7dfb241b610154e90..1a86f0365198916550b3dde58be9e00921f67bd2 100644 GIT binary patch literal 5516 zcmcK4dr(wW90zb7f&vPNMZiWPL8t_hlQ1&M`JsfMXp$f=W4XeGUA()??1N>SX-P1#{N1cs7O~x4D3;UGR4SR~Gjt}+$hdQCH)kk0iwRe6&Pc@E*qrUwB4Nt2 zN)r=1?uWT%!)nR)m5K}{%`if78eb-mNaac@ljf%~iY&fR%%_A>uAI9U*G$>YJ!9#d z77DRY&V`tpTgJGF5`EUs&aL^OLWbE(F$#Ki&OOUCduDdb9oYHP+nSHC^HnJlrFh;X z&n{Y^ES6lB_4BL=pOVQGB5ui&8Jd#vWd~H;EB*6A3zW@@%l7)b>-690o-XzRWn0Q+ z3uN~TUrviMXelLENNIK~PNBugDt@X|BKp_<`k(dVa?Y30CWTJh;g&+F5`A7{%S{k_ z&CI|RvY!B#(+ioCyMW8Hz?mGrg3aDP9WT~2;1z~b1w4P)j5Ns8r){P~09Z*3FDOiK z9k4=Hl`t)OA7Bm6IFvJx)L73hd3Rbxfg0=0(Y__V z9-u~=ZS{kvN7E~SHc+0Ed^HlXu^wo=AAD*Wvay!rbO)53hHR|gg@||sy^xLc*u$~U z+lR{mtN!GQhcbI#KzpuQ1Xq(mkM(Y`W5V!S&?7z0s}hyBXaVbzbHYuqnu zi!QEW0Bb^^*{{LIlYn(!;dJkbDHULSyGx)*vbzIV6MN$CxhtvxE5G7{_}{Co0Bh2+ z(o&wS1E5{W>y7Vz2a>RQ-3*Rh8~{m3bv_SwmtSZ0KAG`cPhcz$k zEvq259_y#??<~}mf)49>%b)!UuYnG$;YOv)%-5j9I%ZyWG|dupNcFZQLl%!N16tp+ z)9SN2&|}>dIMS(~20d1$_58ZfSkPlVlI0T{)(v{Bbt8L1WEr5x`kT}-@@OUKkz)V% z=jupnUE-uf+>G~9L&lrB0n&=KKR@)baTjSt+U7av&U+9=&^Df{eD%QqX+wIY_VA;L zYKma($k-9#UF$=ze!JaU>#}h-!P<3rtZ2D;4Z&(C=@FjZ-b1inzjARZ)=NvU_In%* zpvprD*75u=lhsKP1Swe6UC2#Ka6;?#UbreM#}AN_CNE|8?(}VVUE_k&^SekB)S?Si!aikIH8HIg%$xtT2+E6P|b|1MdfPlcNMFIIXCtDmBSN>#5O>8f`WKQZkeCNxKa_f)(tiHoA9e!_ltU MFg{T2wgr&>1$dPV*8l(j delta 2236 zcmWO7c{mjK9|!Q<(K=T}N|8boDstufHZ!i7kfIc=N+oI?m4vx8j;YlU#v(^Ho5`JN zoJEHYrRdTv{6tEnY_7EXo4;Pq=ly=3&tISC`J|eqn$>)g@M`_fPuI2`NoZrZ2m zMd6jOL{Ll;+4E-~fs^=SFDGsUXv-h*%9sId%t*zB2RO+#w1&?K1ZBw;wq<8HsQ#g0 zh9M4sV{&`hUJefwgS0Qk-GOk`EH6H()(i5qu7Bp|Sy0iu^?ap1XjNe`)+`@5I~2&u z+#;ZsKIj>Lbq#KQO04MphQQbK^AQ7&Ks!ENJF#j9To>eQtnbJIg%QAJ*=oRrCNX$8 zQU&)a{#|pK0#KAqZcyoLxI8zoTEmf0;FhZXhTl>HYLLP1yPpBqfyTU+z9*ooF(1nL zW`b(;TjV!2d$?JQuJg0)f%`XQ*@}f6Tj$8?vb#U+R z7meW_N4>n^mObc>k%m@$O}GTbWa_j3hDZOeTW<1iVMB5DPfpS8)o`(pxzBp34-b)? zKBn{#V}1HPVg!h`Sr=a7lL7YiH=3h&S`eFSdA;U^5aF3Qr5O|75lad3uHL*7$yquV zMyV>`=UJXJ{~`iEMm}b!K?S_*+L)*lCg4|ldi#hzBgHoK_npnzNIqOS^X*9^_;JrT z3EG}dz~9-@s-z?ak6Rec{NoV#IVxAC(u84B<5AdB& zYE!l;gBNUGQZaZa$kGk#q;6)UY`#A=Or&`CrO>k!uZeqT3Yu7a}L%!q(OT56^k#Z;Z;7RaKpIe!%)QI>@cGC3ZM{u*n zs^S7Ia0P>%%ALbt9-aGiA4>tO2(DEnyB9pp8BMLpKtsg;#rQs^s|Idi*u)-@5x7NF z3v}Mrfq6<>dBgKQuu{deq}}r1m4$wN6txlYP5Ebby;T9X?8m$1rf%TY*;%d7<$_s$ zkF*)B0889j=HGk`yp~DUpZspbzpAtPp->2J^D{ckZ-VdaND^ zy7j3;(UwREU|X$v;06{m|40#WkRE9~JLq0L5bu|p24k-!j@rW-PldfGS6Pwh2M zX#86ku(}$8O8rFji4dgc{mnbinMCrlFcCL zp{{I>u{7riU9;Sz^FIfi4VobAb8M?89a39R(BLms#k+lCk<_ggmmiNv?er`E_*Uw{ zeo`1FzN{>x%xNsMH!$%`BNgFRGRHRglgz+|=;I5fNZlH9^|6X=q^i(*$9VTklILQh zVeGhqG>T6%+t|&d!Y}6F>xBZ6nbEI49G*hzR-|@swc1arf2~_Bq3M#mv+;*?q9aLT zhjyt_b`q&r(7=;TktJEP`tM~|xs$qiY2l&{ed&MEREoLy%TID9XqnTbT>xnuPhrgS z>?7r6cjnqOWRR?~9)m}|)J!4hiH)l70_wc4&rzL&^_V1JGDX&;hn?ddvQ z@|;LQ=CsFXrIE&1vGM(d5#%p3y{Gj)!{n+*YmV359wK74oKT{@B>BbO?ESMZ5Xpf| zTdlZvq;+QYQvH8ZNlAm6;$65e-I$dW$LKriG8(`?yhZ;fO-iJ#`Oqo+gvN_P;7pe?6zG!q17cb1pu9 z8z3gtp&uo0P4zIRQ$D2Q(`C%&7nmr7gg|q${nh0lTg;0H(&uzUi=eY1*GuK2JXDvB z^bM}JgxOa;`YjJSEMD2Qb+CC@VVb^!E^&uRl6LieWf4rzfAM`9tPGP`eX6?$8pu@N z(|vnfUyz9@Pyb6cOUcCMVr!!T1{tR_3Q_|t$#-YFX=V4tWU`TBwKXphn$_=8%$(Ao z5j*C)&fI(xG^`>7mn=3x{V+dqHB}vIFG`o1e@usFiu3-#p93)E*e)70HHFEvQS}98 k2~1w?s!v*22$Ra=Eei&WdHyG diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-1.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-1.cache index d2c4f329ab0a089c0eb78d7aab02dfaeb701de67..9cc342c4cafd463e42ce9bab7944456fbb4ed11f 100644 GIT binary patch delta 740 zcmbPpf_2Ub)(th=>e*MctaK<+U?7@ayrUDWo>+PY8z)#jcDkN{9bKZ~-Bhp!V(H{O zQLuVqX$!-2uzE0E5A->T02V%n<_xd~B5Ag3$J;>aiK6R43eR5s2-ZL(%`TC72J9f> zXr^0@POpLLvC{QeBv_@2D((ZtiKQ8KzT%t&auAU;6VoCWP>6!)Ko|ob&HD4w=II~@ Q5kpT7*r~O-Xy>X`0FbKmIRF3v delta 740 zcmXBQe@GKy7zgm}Zg)4%s}&Pl*=Pl#&B|;D%W~XMFbI}Q(?24Eu&5}?73NSlNEjI` zW5dF-%_j#Z9`||Mg#F(BK6KoAh zg8A)!(PdJxW0uR1I^5)kyvNoJIs3{MNE>zYP$;r2K=xIg0a8vm1^Md*R>+-*pM-S2 zybTJai8y5Y&sRaJKJA8l^FT3CQgQd?v$&vb?hF(hD-DpnB@aOA%7z)ppB`O;TAkPk z=~JF-P-uIz1F{z?l91|XT7|sx&5#MdZz@U#sa7@dX!c2%@xXO^=GP;!Ifr?ywtOu@dvy!R3gvfYnWtHXN>5oCM4 zxg|u-yJ=SxwZ*r2fyjJJcC4Y!?yhY?9lTw?kEohBs=QMT&-lhs2Y)XmV87n+5I(XF z&%wxzE;ErbJRa>Ns#jBCXAp< Date: Wed, 24 Jul 2019 10:45:23 +0200 Subject: [PATCH 4/9] Select seed based on random number generator When using the KISS algorithm the value range for the seed is decreased to prevent performance decrease. --- climt/_components/rrtmg/lw/component.py | 10 +++++++++- climt/_components/rrtmg/sw/component.py | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/climt/_components/rrtmg/lw/component.py b/climt/_components/rrtmg/lw/component.py index 1d0ccddc..edfa492e 100644 --- a/climt/_components/rrtmg/lw/component.py +++ b/climt/_components/rrtmg/lw/component.py @@ -370,7 +370,15 @@ def array_call(self, state): # radiation is called, with the same state / input properties, # a different result is obtained, because the wavelengths which # see cloud differ between each call. - self._permute_seed = np.random.randint(0, 500) + if self._random_number_generator == 0: + # KISS algorithm: The seed determines the number of times + # the random number generator is called iteratively to create a + # new random number. The value range of the seed is limited to + # avoid a performance decrease. + self._permute_seed = np.random.randint(0, 1024) + elif self._random_number_generator == 1: + # Mersenne Twister: Use random seed from the full 32bit range. + self._permute_seed = np.random.randint(0, 2**31 -1) _rrtmg_lw.initialise_rrtm_radiation_mcica( self._Cpd, diff --git a/climt/_components/rrtmg/sw/component.py b/climt/_components/rrtmg/sw/component.py index 04d3c3d1..dba9d674 100644 --- a/climt/_components/rrtmg/sw/component.py +++ b/climt/_components/rrtmg/sw/component.py @@ -505,7 +505,15 @@ def array_call(self, state): # radiation is called, with the same state / input properties, # a different result is obtained, because the wavelengths which # see cloud differ between each call. - self._permute_seed = np.random.randint(0, 500) + if self._random_number_generator == 0: + # KISS algorithm: The seed determines the number of times + # the random number generator is called iteratively to create a + # new random number. The value range of the seed is limited to + # avoid a performance decrease. + self._permute_seed = np.random.randint(0, 1024) + elif self._random_number_generator == 1: + # Mersenne Twister: Use random seed from the full 32bit range. + self._permute_seed = np.random.randint(0, 2**31 -1) _rrtmg_sw.initialise_rrtm_radiation_mcica( self._Cpd, From 5ec75f546d4f05598097b2b3e0fb0a75d31ff1d0 Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Wed, 24 Jul 2019 10:48:47 +0200 Subject: [PATCH 5/9] Use Mersenne Twister as default PRNG Comments in the RRTMG source code suggest that the Mersenne Twister should be used as default pseudorandom number generator. --- climt/_components/rrtmg/lw/component.py | 2 +- climt/_components/rrtmg/sw/component.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/climt/_components/rrtmg/lw/component.py b/climt/_components/rrtmg/lw/component.py index edfa492e..ae244c5f 100644 --- a/climt/_components/rrtmg/lw/component.py +++ b/climt/_components/rrtmg/lw/component.py @@ -167,7 +167,7 @@ def __init__( cloud_liquid_water_properties='radius_dependent_absorption', calculate_interface_temperature=True, mcica=False, - random_number_generator='kissvec', + random_number_generator='mersenne_twister', **kwargs): """ diff --git a/climt/_components/rrtmg/sw/component.py b/climt/_components/rrtmg/sw/component.py index dba9d674..9ff739d5 100644 --- a/climt/_components/rrtmg/sw/component.py +++ b/climt/_components/rrtmg/sw/component.py @@ -204,7 +204,7 @@ def __init__( solar_variability_by_band=None, aerosol_type='no_aerosol', mcica=False, - random_number_generator='kissvec', + random_number_generator='mersenne_twister', **kwargs): """ Args: From 3ee53682b4dc8efbcc54dc4952dcbf7dcb2ee956 Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Wed, 24 Jul 2019 11:31:59 +0200 Subject: [PATCH 6/9] Disable transposed/reversed state tests for MCICA --- tests/test_components.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/test_components.py b/tests/test_components.py index d44343f3..85da42be 100644 --- a/tests/test_components.py +++ b/tests/test_components.py @@ -368,6 +368,12 @@ def test_rrtmg_logging(self, caplog): assert "must be 'direct_input' or " \ "'liquid_and_ice_clouds'" in caplog.text + def test_transposed_state_gives_same_output(self): + return + + def test_reversed_state_gives_same_output(self): + return + class TestRRTMGLongwaveWithClouds(ComponentBaseColumn, ComponentBase3D): def get_component_instance(self): From 74e79a5346b2578b559a9453e362f8f1ff959e63 Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Wed, 24 Jul 2019 11:33:03 +0200 Subject: [PATCH 7/9] Update cached output for tests --- .../TestRRTMGLongwaveMCICA-3d-0.cache | Bin 11400 -> 11400 bytes .../TestRRTMGLongwaveMCICA-3d-1.cache | Bin 69800 -> 69800 bytes ...TestRRTMGLongwaveMCICA-3d_stepping-0.cache | Bin 69800 -> 69800 bytes ...TestRRTMGLongwaveMCICA-3d_stepping-1.cache | Bin 573156 -> 573156 bytes .../TestRRTMGShortwaveMCICA-3d-0.cache | Bin 920 -> 920 bytes .../TestRRTMGShortwaveMCICA-3d-1.cache | Bin 5516 -> 5516 bytes ...estRRTMGShortwaveMCICA-3d_stepping-0.cache | Bin 5516 -> 5516 bytes ...estRRTMGShortwaveMCICA-3d_stepping-1.cache | Bin 91164 -> 91164 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d-0.cache b/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d-0.cache index 4da2192fbe1c6a253694510e971c482c43510d27..1bb57773531be200e2ac9b9d2e3c03d738fbeef7 100644 GIT binary patch literal 11400 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 literal 11400 zcmZ>EabseD04^ZK48&ZynJMu(sb#4-#b5~;ka$jF35dfAX6NUD*dX;Vzzt+D0x^GL zW>I`eYHmSlQDRAHQ7T9tWF`oJUAE|Ml1O=uvu* zgu_kC5AkQDT|8wMqlB2M{U|*+!eLcHVZua*hxViN z;0TAw4_B_=x39~7lpYk}u)oMOEUhdcX_Ou$;V{FXSIB9_y8WZ{;0T8$iKZ8q`bX{` zr3Xhite&;~*sDVM{iF2Y2#1XV5#Jp;Yxa-QgCiU^|2552p6b1SlpY-6ux(nu-s8YS z`$y@)5e_>}GAz`87O{Vn9vtDYE8%IgB2(7>QF?HM!?y{|1&>eM+CNGUif}lf`ry+& zwfW+s^dJcbJNab>A?{WUpkw= zKl>lCf0P~^;qWKi_mBSH1N%qmK@koIm|vt$V>zreN)M87;Oi-=d?O!rV3Zyl;UMzm q-n!SXVh@bcgCiWI=5#MVsHc5klpY-6pv3h3%dZtm2S({Z5e@*61hdxw diff --git a/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d-1.cache b/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d-1.cache index 219021123a8b9041f8d983843f930d4dc70119cb..bf0011b3150be6f06af828b9677b49e490dad827 100644 GIT binary patch literal 69800 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 diff --git a/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d_stepping-0.cache b/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d_stepping-0.cache index 219021123a8b9041f8d983843f930d4dc70119cb..bf0011b3150be6f06af828b9677b49e490dad827 100644 GIT binary patch literal 69800 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 diff --git a/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d_stepping-1.cache b/tests/cached_component_output/TestRRTMGLongwaveMCICA-3d_stepping-1.cache index ce39a8ac16b586834537b06d0ee5a1694344c4a2..a239915386550ad05e2a902ba48188f8310e12d5 100644 GIT binary patch delta 12936 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 diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d-1.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d-1.cache index 1a86f0365198916550b3dde58be9e00921f67bd2..f3c1cd631e81abe28886fa242cc2f601398a7662 100644 GIT binary patch delta 2236 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 MFg{T2wgr&>1$dPV*8l(j diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-0.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-0.cache index 1a86f0365198916550b3dde58be9e00921f67bd2..f3c1cd631e81abe28886fa242cc2f601398a7662 100644 GIT binary patch delta 2236 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 MFg{T2wgr&>1$dPV*8l(j diff --git a/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-1.cache b/tests/cached_component_output/TestRRTMGShortwaveMCICA-3d_stepping-1.cache index 9cc342c4cafd463e42ce9bab7944456fbb4ed11f..60fb7ac79cf27d19490788e04c2ecb92f7f06f36 100644 GIT binary patch delta 740 zcmXBQT}V@57zgm}oSpNY%}tvPNg5OyU8sGSSg>U*GD^sDNX=?>5lWN1TBco$9cUJG zQA7(;SuOien6!eLO(yu2BKAd%GQB9fFoIIdVGJtQ`+vIno&WQk_v3j(6H;hGdhF{{ zCD+Pchj+b(1#Ksx@Z!%ksMMaSqkQR0nsi57pwz%tAnR1ZR8O*3P;q~KNBQc$!=z`- z2_^M1?Z+OjX{Y*ZyZ|ca&Tr+a8XPlj6qN3FzlZEYRf_7%?oz1qj7?G=Sv^h0 z{?0=wdHOc>%WI5KG{2-l^p=vRl-Wi)STuJek!5M-|AiMlRSvJp7uW*~4gFk;pB4md zT5|Yo2`#V<^+3ZBdo9)d!@prx(?PnpuG`m!Ea?~NW#p!Y7_#x^&O7vf`rd!HdT6L`4M64yM__KK+Df_7MH5yY!N^Xj0X`bR5Q7Q?iGY}{6O09o7h{5V%y ZT8L(l^{K2zC}-jw!J7V}C*J-@8Jnz delta 740 zcmbPpf_2Ub)(th=>e*MctaK<+U?7@ayrUDWo>+PY8z)#jcDkN{9bKZ~-Bhp!V(H{O zQLuVqX$!-2uzE0E5A->T02V%n<_xd~B5Ag3$J;>aiK6R43eR5s2-ZL(%`TC72J9f> zXr^0@POpLLvC{QeBv_@2D((ZtiKQ8KzT%t&auAU;6VoCWP>6!)Ko|ob&HD4w=II~@ Q5kpT7*r~O-Xy>X`0FbKmIRF3v From c850223ac4f4c593d9c49ba8912ad088961d3fae Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Wed, 24 Jul 2019 15:38:32 +0200 Subject: [PATCH 8/9] PEP8 fix --- climt/_components/rrtmg/lw/component.py | 2 +- climt/_components/rrtmg/sw/component.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/climt/_components/rrtmg/lw/component.py b/climt/_components/rrtmg/lw/component.py index ae244c5f..14921b3f 100644 --- a/climt/_components/rrtmg/lw/component.py +++ b/climt/_components/rrtmg/lw/component.py @@ -378,7 +378,7 @@ def array_call(self, state): self._permute_seed = np.random.randint(0, 1024) elif self._random_number_generator == 1: # Mersenne Twister: Use random seed from the full 32bit range. - self._permute_seed = np.random.randint(0, 2**31 -1) + self._permute_seed = np.random.randint(0, 2**31 - 1) _rrtmg_lw.initialise_rrtm_radiation_mcica( self._Cpd, diff --git a/climt/_components/rrtmg/sw/component.py b/climt/_components/rrtmg/sw/component.py index 9ff739d5..47ba3946 100644 --- a/climt/_components/rrtmg/sw/component.py +++ b/climt/_components/rrtmg/sw/component.py @@ -513,7 +513,7 @@ def array_call(self, state): self._permute_seed = np.random.randint(0, 1024) elif self._random_number_generator == 1: # Mersenne Twister: Use random seed from the full 32bit range. - self._permute_seed = np.random.randint(0, 2**31 -1) + self._permute_seed = np.random.randint(0, 2**31 - 1) _rrtmg_sw.initialise_rrtm_radiation_mcica( self._Cpd, From dbb0bf2779bd4a0424b46e715d16bfcfafeb5a6c Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Fri, 26 Jul 2019 10:10:50 +0200 Subject: [PATCH 9/9] Update history --- HISTORY.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 29bca495..19c2e660 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -2,6 +2,13 @@ History ======= +v.0.16.4 +-------- + +* Fix MCICA for the shortwave component of RRTMG +* Revise random number generation for MCICA +* Improvement of the user interface to control MCICA + v.0.16.3 -------