From 561306f825ab023dfedd216342f71cf335c3c4d9 Mon Sep 17 00:00:00 2001 From: Clare SY Huang Date: Mon, 31 Jul 2023 09:58:59 -0500 Subject: [PATCH 001/178] Well-formatted settings.jsonc without comments yet. --- .../finite_amplitude_wave_diag/settings.jsonc | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 diagnostics/finite_amplitude_wave_diag/settings.jsonc diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc new file mode 100644 index 000000000..1f2171f59 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -0,0 +1,82 @@ +{ + "settings":{ + "driver":"finite_amplitude_wave_diag_zonal_mean.py", + "long_name":"Finite-amplitude Rossby Wave Diagnostics (zonal-mean version)", + "description":"Finite-amplitude Rossby Wave Diagnostics (zonal-mean version)", + "runtime_requirements":{ + "python3":[ + "matplotlib", + "xarray", + "netCDF4", + "numpy", + "cartopy" + ] + } + }, + "data":{ + "frequency":"day" + }, + "dimensions":{ + "lat":{ + "standard_name":"latitude" + }, + "lon":{ + "standard_name":"longitude" + }, + "lev":{ + "standard_name":"air_pressure", + "units":"hPa", + "positive":"down", + "axis":"Z" + }, + "time":{ + "standard_name":"time" + } + }, + "pod_env_vars":{ + "slon1":"160", + "slon2":"200", + "slat1":"-10", + "slat2":"5", + "ENSO_OBS":"0", + "ENSO_COMPOSITE":"1", + "ENSO_MSE":"0", + "ENSO_MSE_VAR":"0", + "ENSO_SCATTER":"0" + }, + "varlist":{ + "ua":{ + "standard_name":"eastward_wind", + "units":"m s-1", + "dimensions":[ + "time", + "lev", + "lat", + "lon" + ], + "freq":"day" + }, + "va":{ + "standard_name":"northward_wind", + "units":"m s-1", + "dimensions":[ + "time", + "lev", + "lat", + "lon" + ], + "freq":"day" + }, + "ta":{ + "standard_name":"air_temperature", + "units":"K", + "dimensions":[ + "time", + "lev", + "lat", + "lon" + ], + "freq":"day" + } + } +} \ No newline at end of file From 75b0f0522ea73ea43c4b2cda11035719397e9180 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 20:15:32 -0500 Subject: [PATCH 002/178] start all files --- .../doc/example.rst | 260 ++++++++++++++++++ .../doc/gaussians.jpg | Bin 0 -> 35383 bytes .../download_t_era5.py | 52 ++++ .../finite_amplitude_wave_diag/example.html | 41 +++ .../example_diag.py | 202 ++++++++++++++ .../finite_amplitude_wave_diag_zonal_mean.py | 202 ++++++++++++++ .../finite_amplitude_wave_diag/settings.jsonc | 11 +- src/conda/env_finite_amplitude_wave_diag.yml | 9 + 8 files changed, 768 insertions(+), 9 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/doc/example.rst create mode 100644 diagnostics/finite_amplitude_wave_diag/doc/gaussians.jpg create mode 100644 diagnostics/finite_amplitude_wave_diag/download_t_era5.py create mode 100644 diagnostics/finite_amplitude_wave_diag/example.html create mode 100644 diagnostics/finite_amplitude_wave_diag/example_diag.py create mode 100644 diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py create mode 100644 src/conda/env_finite_amplitude_wave_diag.yml diff --git a/diagnostics/finite_amplitude_wave_diag/doc/example.rst b/diagnostics/finite_amplitude_wave_diag/doc/example.rst new file mode 100644 index 000000000..ede5eaa3e --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/doc/example.rst @@ -0,0 +1,260 @@ +.. This is a comment in RestructuredText format (two periods and a space). + +.. Note that all "statements" and "paragraphs" need to be separated by a blank + line. This means the source code can be hard-wrapped to 80 columns for ease + of reading. Multi-line comments or commands like this need to be indented by + exactly three spaces. + +.. Underline with '='s to set top-level heading: + https://docutils.sourceforge.io/docs/user/rst/quickref.html#section-structure + +Finite Amplitude Rossby Wave Diagnostics Documentation +====================================================== + +Last update: 07/31/2023 + +This is an example document that you can use as a template for your diagnostics' +own documentation: it describes what information you should provide in each +section. For example, if this were a real POD, you'd place a one-paragraph +synopsis of your diagnostic here (like an abstract). + +It also serves as an example of the RestructuredText (ReST, .rst) format used to +generate this page: compare this output with the input `source file +`__. +The easiest way to get started is to copy the source file into the online editor +at `https://livesphinx.herokuapp.com/ `__ and +experiment. + +.. Underline with '-'s to make a second-level heading. + +Version & Contact info +---------------------- + +.. '-' starts items in a bulleted list: + https://docutils.sourceforge.io/docs/user/rst/quickref.html#bullet-lists + +Here you should describe who contributed to the diagnostic, and who should be +contacted for further information: + +- Version/revision information: version 1 (5/06/2020) +- PI (name, affiliation, email) +- Developer/point of contact (name, affiliation, email) +- Other contributors + +.. Underline with '^'s to make a third-level heading. + +Open source copyright agreement +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +Unless you've distributed your script elsewhere, you don't need to change this. + +Functionality +------------- + +In this section you should summarize the stages of the calculations your +diagnostic performs, and how they translate to the individual source code files +provided in your submission. This will, e.g., let maintainers fixing a bug or +people with questions about how your code works know where to look. + +Required programming language and libraries +------------------------------------------- + +In this section you should summarize the programming languages and third-party +libraries used by your diagnostic. You also provide this information in the +``settings.jsonc`` file, but here you can give helpful comments to human +maintainers (eg, "We need at least version 1.5 of this library because we call +this function.") + +Required model output variables +------------------------------- + +In this section you should describe each variable in the input data your +diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, +but here you should go into detail on the assumptions your diagnostic makes +about the structure of the data. + +References +---------- + +Here you should cite the journal articles providing the scientific basis for +your diagnostic. To keep the documentation format used in version 2.0 of +the framework, we list references "manually" with the following command: + +.. Note this syntax, which sets the "anchor" for the hyperlink: two periods, one + space, one underscore, the reference tag, and a colon, then a blank line. + +.. code-block:: restructuredtext + + .. _ref-Maloney: + + 1. E. D. Maloney et al. (2019): Process-Oriented Evaluation of Climate + and Weather Forecasting Models. *BAMS*, **100** (9), 1665–1686, + `doi:10.1175/BAMS-D-18-0042.1 `__. + +which produces + +.. _ref-Maloney: + +1. E. D. Maloney et al. (2019): Process-Oriented Evaluation of Climate and +Weather Forecasting Models. *BAMS*, **100** (9), 1665–1686, +`doi:10.1175/BAMS-D-18-0042.1 `__. + +which can be cited in text as ``:ref:`a hyperlink ```, which +gives :ref:`a hyperlink ` to the location of the reference on the +page. Because references are split between this section and the following "More +about this diagnostic" section, unfortunately you'll have to number references +manually. + +We don't enforce any particular bibliographic style, but please provide a +hyperlink to the article's DOI for ease of online access. Hyperlinks are written +as ```link text `__`` (text and url enclosed in backticks, followed by two +underscores). + +More about this diagnostic +-------------------------- + +In this section, you can go into more detail on the science behind your +diagnostic, for example, by copying in relevant text articles you've written +using th It's especially helpful if you're able to teach users how to use +your diagnostic's output, by showing how to interpret example plots. + +Instead of doing that here, we provide more examples of RestructuredText +syntax that you can customize as needed. + +As mentioned above, we recommend the online editor at `https://livesphinx.herokuapp.com/ +`__, which gives immediate feedback and has +support for sphinx-specific commands. + +Here's an +`introduction `__ +to the RestructuredText format, a +`quick reference `__, +and a `syntax comparison `__ to +other text formats you may be familiar with. + +Links to external sites +^^^^^^^^^^^^^^^^^^^^^^^ + +URLs written out in the text are linked automatically: https://ncar.ucar.edu/. + +To use custom text for the link, use the syntax +```link text `__`` (text and url enclosed in backticks, +followed by two underscores). This produces `link text `__. + +More references and citations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here's another reference: + +.. code-block:: restructuredtext + + .. _ref-Charney: + + 2. Charney, Jule; Fjørtoft, Ragnar; von Neumann, John (1950). Numerical + Integration of the Barotropic Vorticity Equation. *Tellus* **2** (4) 237–254, + `doi:10.3402/tellusa.v2i4.8607 `__. + +.. _ref-Charney: + +2. Charney, Jule; Fjørtoft, Ragnar; von Neumann, John (1950). Numerical +Integration of the Barotropic Vorticity Equation. *Tellus* **2** (4) 237–254, +`doi:10.3402/tellusa.v2i4.8607 `__. + +Here's an example of citing these references: + +.. code-block:: restructuredtext + + :ref:`Maloney et. al., 2019 `, + :ref:`Charney, Fjørtoft and von Neumann, 1950 ` + +produces :ref:`Maloney et. al., 2019 `, +:ref:`Charney, Fjørtoft and von Neumann, 1950 `. + +Figures +^^^^^^^ + +Images **must** be provided in either .png or .jpeg formats in order to be +displayed properly in both the html and pdf output. + +Here's the syntax for including a figure in the document: + +.. code-block:: restructuredtext + + .. _my-figure-tag: [only needed for linking to figures] + + .. figure:: [path to image file, relative to the source.rst file] + :align: left + :width: 75 % [these both need to be indented by three spaces] + + Paragraphs or other text following the figure that are indented by three + spaces are treated as a caption/legend, eg: + + - red line: a Gaussian + - blue line: another Gaussian + +which produces + +.. _my-figure-tag: + +.. figure:: gaussians.jpg + :align: left + :width: 75 % + + Paragraphs or other text following the figure that are indented by three + spaces are treated as a caption/legend, eg: + + - blue line: a Gaussian + - orange line: another Gaussian + +The tag lets you refer to figures in the text, e.g. +``:ref:`Figure 1 ``` → :ref:`Figure 1 `. + +Equations +^^^^^^^^^ + +Accented and Greek letters can be written directly using Unicode: é, Ω. +(Make sure your text editor is saving the file in UTF-8 encoding). + +Use the following syntax for superscripts and subscripts in in-line text: + +.. code-block:: restructuredtext + + W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . + +which produces: W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . +Note one space is needed after both forward slashes in the input; these spaces +are not included in the output. + +Equations can be written using standard +`latex `__ +(PDF link) syntax. Short equations in-line with the text can be written as +``:math:`f = 2 \Omega \sin \phi``` → :math:`f = 2 \Omega \sin \phi`. + +Longer display equations can be written as follows. Note that a blank line is +needed after the ``.. math::`` heading and after each equation, with the +exception of aligned equations. + +.. code-block:: restructuredtext + + .. math:: + + \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ + \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, + + \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. + +which produces: + +.. math:: + + \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ + \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, + + \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. + +The editor at `https://livesphinx.herokuapp.com/ +`__ can have issues formatting complicated +equations, so you may want to check its output with a latex-specific editor, +such as `overleaf `__ or other `equation editors +`__. diff --git a/diagnostics/finite_amplitude_wave_diag/doc/gaussians.jpg b/diagnostics/finite_amplitude_wave_diag/doc/gaussians.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0236250eb4a9380df71949bd3fae4993029c7e7e GIT binary patch literal 35383 zcmeFZby!wius6JKx?39QZlp!JyIVp~x&>(v>28z|X^?JE8l)AZTclGZq``0BAU;0t zIp=-9bG`q3-*ufWvDU1aS!>PwW@hbuZ~Qg&YZ1VbmzI+TAP@k6fd7DBvp^sKcXPqR z!y!N~WF$mHBxH0H=!K4lj)@L_;o;!pV1wTjL<9sx6tv`b$!S>`8CeB*1r!v_A^*1u zesuuYNU)S}?643j00tWZiw*hJ1&~3P2?Gm(F823@gn$TvgNK1d{xt(2-OyY8ZwGIG zL-O~AZ`(J&VF`-;=~D^+O$1(Bnjo(Q|1U)PR3iSXL~Z{L8_ffW|78sKBU-W+cUGWb z152&r?=g&~gG{^MZHUltpUvTn;1Eug0I2+i3L8dMGUk`R@|y=-28>6R|4k2h+i6A4 zGyPKZrVHu^RkYo7Fkks*3q_Gj_}_H@B}Z()KPXwL@t+Ohd{8DX9-E@Lk@}ZLGOPVa z3_AJWD~GP)k4<0|);%m~-^JcY{c8xuu&@y!amqvVW(>60qhCP2Tv?^k;-5W|--8!N ze3e^x!vcV_CM3lSCK!5Xpg*~x!Q!^_@guus-}In{(o?+}C3~={$n)}sh7SMkfhsQg z{ob1{sAJ+6Q0_2y=w)^5BnaD>D6tFoK-&$=-~NNJj{$d;Q@@zp45@H)z}>nJvSh8a z1Ejpgx*7VHAxAx0^#6;Ymz!-cUJIAQ|A|6&O$r3a+U{?Kf6oQGW|=RFL3bv3BlR!y zcR4n90km6ze}>Zi`2*R%C8D;;SH51BuJ=fyJq>9D{*Og0a9f={~O`I*NwpLZ|?{w{Ja?f z{x$S!$T{{uAA4Du3g0+Af%6|6}=w&d*~*Tmz;9i{=*R3GkyDE02&h47ieM2nC8s`Cat2| zNV2-<1pV{}Y9NlPifRxr4Ho0aZ`1*)Rz_moJfWvw>RZ#@fb_!hid$W>e)$_c`NkVM z_ijxBy2ILmk9SZ+CMLk$i<}Yt;pX~{n!gu}?E8k0_fEsPiIe{lN%_tJciH8&%75iy zD3$w@LApPwBucu{*G(9vj$@(9xcI9q^7=&@! z8TPx;0y?6i=p=S~kV(I;4Jrj08=cY;2Y;6c`As@ODFC>RRKLS-zPcGOw{c_Xv&W&a z2moXc;j4+JuDSjSVTAPQ7T@>tq5y#GnKkOA^7)$Kuie6;Y}uldSMOs109>=`UiPzw zYmUG2t6=I2SK2ebSTHKWXYYQO(fDQpW%2q!~O6_lz9fD~{++}V3{va!xrs+X;eLW}z z{DmtrbftITkRiwcE4QQgM(9$lu?=MT%TC@KQQr@d12RD>Y*x0Vs;RHr2e1vTnNUSw z3z1mjsT-vHqVz4;fzdA#9XqYNt|$K(ia0{3SM*hp-y4tvx9;NGizw>G`zBxqw8QUY ziqL#M)V5@BjZV&ay=KwV&-cH8{`-psO@wSlltTp8&L1SxhNmNTM=oTFg6)5tX7&2ohm@=6xG5qSF^h{r}!Gf=C%39|i6mL68M_%1wq3S+%x zw;!;Bqq9Tc;z0|2#5^;99eHXBt`QuyiLM(4cw*LTpsWxEtvP?eGZFWz#p~&BiV^I( z(wg2INLQw=Gspv=Ta3;EurjuDH|lOOG-P%2E>$t@qSVkS6TKF{U?SCySboxE3vQDKCfZgxdGah(7 z*|_Vu5JCwSTvLsKyBX9k26O<)*X&-CN0%TBNin*es?Xc5B>|_P?Z{_wy#Pi**s_O@ ze2R70TCl8$CSCYmiIK(aG3AC8{Q26_V)f^#n;_ZY?Sbvj&_6NphjimuCE?z`C}0y( z$l8V>fcz;E08TRtIRJFeDNz771B6KWMjHUPE)4+QLt})?v4F5}8^G@jKssXq%$N!Q zv1bZ^UETp;Lnr`9PV;U)06Q?8HZTuB!nPm$0AQt8@6!N?%lE+SN{CRIedP~W?>zJH z2ZS6*7Ct;>bp+6K%2Ukri~Rst^e0^7iU1AzbLXZyJ~zuUYnL)D-muP;>2S4RcE+b~_ugC@V*ed2nL_?h-`q4I_`^~)H%-9u(jLx0^rizgGShx50(pdD%>VFX z+x_OJnt{1hgKo$T+|CQb6C;`=!EnQbROfG&_B&WWoquE_EdR)Iek=iJxM9aBe9ZDq zAziw1)ahJ$2_+()K>|;7m#L~gIUpQ7RZ6KG6xFb zVcT^NW~Br`m^i!%Mwl-miGYn^d;Se$y^VhjfbA!@;(gtRU3ec0Zi4E|W~1meL9oo; zml%NHk1Ot7_hBXkIPCyf3A!%|1gh7R+1ig(GXM;0fpPB%lmPiTu@AMOWZl5%z6q2< z_KZ1-&&C8m8ox@kbZLWjG^Fi{HzSTcDp0U#~Sk?*?;KS(2~FX%!@M)3!^ zK8YUZp09I)XOqhqS4s%2E&w1IoVT5ARGEd90O+5yDBSOAOo1}PqlX9zUWna=VEey$ z`GF7@!~(#?4MBuKfWX4Rz`%k53kQ#Y2tZ(v@a_;YaLA})iDKj6;uBENQF7g*qTw{5 zrsa0z;p6}Pa14S3`~o&M$B*{R=&G*9)@B;(%Iu2MtpBI+#|T9o=VJy$axuqzGU{YW zzkn8NiK=E+SvQ@l(;|%iv&PIS<^@G<6B(BEi-55N`5qh|1?T&V#e10~oMf0pRhUB4 zn(m&UOzZJSP-s%=7qIPT&2L)p{lWzy6&|6$$<|jnrnf5hzO2i7g%`t>{X!+?mjx#$58AqPu7K>|8~~|XmyRp{$!tZNq|8BT>`wXHDv1%2WHJ>z z{2A&Iy%aU_Pt*M8brfJ&dp zb;z$c}bpI6>JsyL*A2`vINgqR#}sNt(J1yC^`2&^V%3Dz5<2g-pe?l&iS*tA8J26 z_y9NFadjzwLx~rz`ElQQz!e;V?8bZ|0&FiQSz_^wX3rlc$7+a-h+*>Y>&ZDog58mW ziN3D6-s+sgzX;(?RJ<(Uy*e?EbmVt!Z=EXg6L~cj^4L=!v_q;BbFhCvSs~r)&mXv` zdgY z$7JorCvg2Epib|xOs}TL`3Ekj`V+OK4zsG3$%11vMS-@pt<&hEjUG{;KgTy|Ds$RU zBR8JNMiwExSxY_qnPx_~Ye*Bq@0lAQjSKuZglhVvXBI5*I8h{MUfm$0pZ(i6nW}SB zSFW0^N+0IXte18gE+63wl!q|XFt@6N< z$;KES+8k{{5G?$g;eA~#n!wn?w_Xa2GFs{j@$#koucGMPdXCW++s%2!clS%a(uuX*aE>&g~s(MP6bO-BoKx zgL}9ahWpi7?YnFt@DhxnpyAHTP;iPBG54wG4+~lWcBjoj-=Ad4d zvkRzJ?VsJcmDpc%YT5*+#wg_-p;G+urmWwG{N$~VO)a-B?b_$H!I*gAjwOcHKnX*x zpjMPAXyc@V|1KlhAXHx1_!jCWm=Oi4;_G8CM~-tn-`j|Vr?vablAPLscFlu^jtgwC zX2Ws>08r&bEwu0{X~tU1S<^_3R(=IIwxvl1z;L-<^FTk7S6;x{-C>v~-F<|sXHgC> zo_Og}uKompuXFE6%BwGY5NS327Z9r-Z>75=UF58+Wr;CkTbnSG8bjy!eAE|eyp%D) z*Mk%Clo617Pr1@)zKSMbc=X#rib( zB6{9Ol+ip>7P-e?Lxsv48F&B7Rp#DK&gpy4E)hQut5)VR5q8w{4 zh1Y`7Avovh*aj3+ ztMug(F$N+7siJWd%%BbTS49%6v77`)VeI!~boOfS^6EKIUidNJI-7+fD+Nw1(Es^I zt>N!R1aHe^;JK5y1U83{OrLDY67=7?d_Yd#ATN01o}Dn=PRVG9!^GnY5{r^hR2=m)}<%3#FGR`Uvdp~)Qh0&XA{A^ir4l3-v8h=(> zr$(zbx7pAx24|Y*Y6hNrp^GQu#lM%b#0i$*S1pRYcnxlCyWssao!Xc>a#$xbi?Y6p z6sz=boJt0p_d=1H+RSthCJnJ)*N&dV)5~!t@whJQA}l6eq1=dzaBDl7bH>a2Hs)~F zpPi!*O?VNn4N-iA-~MTXWzSxwq8A+zC!+G{pjypf--ypr53L54Sm;;V3a-LF zJYWnk^`7vrOZ{YjOjY2ZeeX?a&0$VW4IZ*_-z@_AnKIfrStXA=pHjcf790;cq6+bE zN5Xd`Y|MSPfJAlr;5H)VTxHyP%7k`d3v3m!5L>HgFC0{Z#sBe5YPi}NdW|@~S%H1B zmu1pr;-pQMtR4J?otM!>a}%^?UFZDVd9Sk8=?y~tiSCKo=HzS*7G@`;E0!d(ongC- z*7#f8C9>~1TjSYY=C))s<@8|i2H?4^K}^_Jz=C#N|5mziffs{{izd}N&zcAVkE~Z5 zHRLp?U#AZ}A)A*IKV`jLwg9?}E9X2yX+h%dtK3|-tIuH<&d!ec#(iK0X(^Ypn!9(X z4d>XEoB<;o9Fr@Er|OR+CS_qwIk^8SE={T#YD0Pvh8vWr~xA#{`eQ8RwKqsYo;g zAr;)48ji+ESoX}1UnP}3x_NOGi$O{|-xwhMSLnhMzFBZPXsAAQ!T z*C9URqJCBw4L5sAcI#dGfaDG929;T5t5!Mmwj4jPV5A0dlzTxx3Rn0V)07x?0?1zQ zdgbT76f-OgQZDAznUZ098#?Mq-`IZ2x{d8^P?c7R^3O8mT{Wf%5g|1~Y454WP>o{9 z8B#UPo(#QZmy=Ix7O0z2vQ4Of_pGlix0(6226T158*qxhfOnh1QayC~1rTS(D|`F_ z9;?*rK~v%|2u)l&D=(MJR9cIn9se^y&^OA2NPDp~AH&B92P>GF<=%M>Z=KE>6V! z!p!g&FjyAb>8)pZpRRC7F3kl^f;UX_IM;g)=St$%3-X+VJdJuYOGJ8d@=}KAtUTyg z;V|x!VdpXjEXGByhpLkuzLn`#)SI7Gw)rMC99BT|-$dKPey>+$i>lSwoMu#=w28L7 zVZ0g@ESPm(wNZRAkCr8a;69R_ycNHm>Zi^_Nr$AF2^{UX$#C5zDdvW>-5-0{rr1*x z&X*5+uG27)-h}oC1ThqL2?nJmCH;jjLL3BWKR!OgdRhLXj@#AQCTw*GZx4FxD7Hi9 za!k)%C6EtiM3VM1d04BGPh(iaiy>1J6KE)PPGEtq{V0&2bA8NY5!GG4{p5J`J;G~vk?D%uEBiDrj)_C)7}aKqMR}8>sx*Ph~pYi`k6bs*{6I=vnuyV!qTBCtt-*}`xoz_-nV(?KTFap6qw-YuwUj?4DGGTMx}&~|(%*DO5Soz`zE5I4() zQ>IxF4ZD2n|7CLmd)9q?25kY$d784H5A=hzruF-*rh57ek`iZV{ajh~cVDTMEp~?h zxD?^Q^wf^|W}R*_2c!bRff#X{(<2?(@Eqtc+&fv3W^2u#5x3@k@M<*gE`D}%{&y`5 z%*d;YE{MR^@u^O;_^vDoQ^s8xhS6orJ*!1jRlfA|HyW2d;BmlWsVRoK$-6A-!UUnl zGC|a@A~RPL0%mG2=MocIUY4mRk1o|s4f9K|%VFoV^f|ydEx-50nLu%Tu2In|dKW5-+@D$Xt4W2VpFBQl$hFiyJ@%=93G(=j_PdG$37rJd1v2`lOJ*^Gt zkDW7OT2=sl+@-$_E5?g&AKqnFCr1lTZPRQgidA%*`k>mh_?KfNej7V$FAvcyc$O2;Ld-JW}f%qs=cLF z;hlP7$CC;BdB^V{w|m&8{;i}-FZ#!!qrmL%3F%Cg$QBkMv4;6~luf2(t?DA`)H~T@ zHooar!J4`%*KEZ&j!aHS9yflCc3%xvJ@Tl{Es!ub9^VMG%dLQoB5Qi5*7XvybVUN4 z@s6sJup;}1q}=MxAr}p)k(W<&rt{4=CTiJv!u|8*g_NV{O8G0*)QO|Yl|V0dw$8t- z57o`m-OPGgbv^|?7bv7H#I4TBUEuKJ6h0xoP6ANnp96Jt;7gYvp^GrDc_`Pr*M5l<`%V1ac^sd=;I|8S>iT z3LyaE7DqdHTn`FwT8TRs5>bmzg`~{Bm|u)b&wg0drfz zxVO;5Ij-Yv{t_|_+-pngmy9Yg&tigZv55K$fXV2>%%bE$ zVB$#+L+dfYc)I;K<;5-Z0(}J|?{YqwxyMro`%q-H_51z1WUj*#*0?HEFs3k)3Mc3i zIY@WWC$Zi7d+qV}1k4SP?fzQShzQg$ zuivO?zC=WEzb*48^zVD|`;^kF;Zu1&R6n=KV&nInH)FO4#QO41;+_L;JFW5F*qp%q zLwp=$HZ0P(uI2v9>~H3n1f;m4aQt^+Z>h980n>JbGi!b0{TcGY+O@WJX_|Z6cg9E z>UXK(DXMi!=jFQea79<4;S`P`h-0VFgCl5lU@}R4@zOYSKu$8`IbD8)9#?LIcj9Y1 zrY&M2IusW-89Gep{nGdOZ~IElnJCuWF@n+Gj}iEnqj`JoMqaGVmv$8TODkp8>J>>I z{D`NZ>WR-*NUxxVGrHtHlyWAdW}biKg284OF;YAadkPm!lE< z+M#Z6#)bkhKfd)svuKk_8oYIW_CTIfW=g&iC8WheSgx+Ux6v(uVQI7UYzd0~iH(J$ z+H$V~{r!>-%7GI-*V5zr+&=>XGPDh>zg3UQ-%1^$A;k*;~L8a(@qK~=v#C%;;T|n>Yr?m?YGRc{kXlD&%zERMJ$K{Nu za2M5z(ocF$mspbt&RitwKIX@+iUtuI+jGC*7YQa`##V5{FZFtCV>D0OMY9ee?I&xK z!80lFz9(g%Y()FKO8EON7BXuIAFk)0~5MUL1S=2LG`# zy}E*B>nDfB?F3~FpPJ-Z=0iDGdV-b}sVZcKq@*Jk6XutD7?1L^P8r^Q#<4(Uz+uqAbtaKd$Q)08-UO!|1j=l-W*+|n3_JzJCC|*zCz^L{ zjE>`JV7~_m5q)Gh4HpZK2vfZ<5AWBE(Sh;c(RJvmAJK|T-e$<9E5>g$>;D`c;CSw0 zCoKC=;%-;E<+nhdIaX)kp<6fiX|2u5oR*j$=6i3XaUm(zR~IVE7)qG%sR=9YP71oG zTB&_ZckhiDkq?^LIoaY@dW6+{;g|)-FAm2%BK$B~t7Y3lCO({btl@F>_G?8I4VXnT z-LU@Eq#o(2vCxmLy*_kWV)yq=+*6<50ZJHEOn>JFqsrAo$ys9?5ym=sZ(Bn>p5D@o zcBykCX&2+A!X(_R#1?@}ikIoh1S7ONcX4smN=-!pxFUROe(aoGx<|MyLE*F~=QESF zyU%v$kiS;zTJx?wUTbXbKaq5z;_ufTQK`@}qx&61?kCd1par6o8g4hP- zt|gthVJJD4d_m~V2-k`t{=(h6fg^|v~^5q446?W3*#sI7vDT&vX1`+WUb{= zO*j}*qYy6J+SxkoE8|ze7UuVtRl}E4roD^cAbOya4%n`pQi!JfV9AxP+m4`W#{Z2BDFuBb4FnG3K0PN}-dC--{%+ zl~p30E68&EetW*q;#>Cm3S}fYJ09|s($V4nNOjVSyA+C5%UWiEEA7DJY8 z9hWHW8$t}rC?}aiAA>hnZVkakWt2MGp;~84*qw&r{5GL{cbwps%ZJLq_t_lQL-KwB z^#_5^Gf#d2obuUz;UkJO78fEZkz3sf7(?te$WLE9;(e6FhRyY1 z03Ld1xI6&E^{0-wq~o1wd>l2kSb5!4X{8mki5G^w)8ZimXqq$3Y9%ublM>LU{eIt5 zf9KlUPm9#w#z`uNX{tDx!t3B;Y5mWy|6iCuvz)hkUocWKeR?Atpq?c`t-4bhTWT9* zW6o?qsUJD;Jn^zHlKo%AX_Sdx?K<(=|ALqk*sq&aJdrp+fP-ea`ucyz`qxa?O7q3@ z9K&);DuerzKG8)v4_vR||1jOH4*e)Lz%S@Z>7T{_zY?^7jbM-euQzk69kj(i>Iw%N zh*V}mJI?OO5&0GK!ik%$6f2!5x})`Wej9iiWxNl!d9V3wRZXq8kfG?#5npXp z?e5dWr-3*?L9Q2WU|3-ym*OUu%2-i157Oo6@q8o8 zn!AodP!VU$8xzZ+UHHybGuBwa?v9AbY6d#6t7%n5O=QO=^X@a+Wx#%gC6W!(QogmR z?!m`&e}}0)9N7})tRxz?tmHIA4OYspuVGB1-MtXIBKPde^l0BrWps0YQ?hJ+5I?&a zKh5`?XK27liBc#P<2f4K3#$9Zr4jklMF>lUdnsQWQe<@JvWQ~2&9hoTChF4c200TS zVrgH>?p<0LnC@g^RCK~Z^xbiO$7~M?dJJEKaGU)(4Y5$d_FxLzU*Jdk6_5Q)=-e>T z4q9ShXO?@2e{3~OW9mkwB_7=aU-N6?p5FPX+=5c=!Nn!#kZ&Fy5So%w;mOJ$ixn)i zKqU2rQOT*@;!BmIOo@)^@DTeIe(2`A4^OzIxbAre{sJ)XBH4cXs1Kty_BrH*PKg^; zL}E0Fpv#XM85x8pQfNP^r+CPA`s`L;9LYNfrYVoSAQj!ppiz>ItD^Tqm2^GPr_TFu zw9I+8Cz%8%&|5=e|9XC~eW z+R0SXma}jYG;-@4@`?$xx&AmDI1N-d&6o-e1x0--(+3)RG#avYb=xKtd8*9;9aPML z$>#WeI8xk_VKg0&!?3qYYiE@WA?=P~FpNQB3=&fq0D?aut|LOsv+>G7k*O>HPg>2eJt0{@xY6V4uds&$iFYhij|Q5{r@f zk$5UI9ZDn5eQYgex6OpV7!VzuO%2sgbo;c_-P`^7KZF0@Ho_(mhKa!|C4^oP#BB8i z1o>8L>7Sn-M}fgC?DERY>bv2Z?u_5TxellQm=Y~XnW z(F@<}6R+yJt!Tsf7}gw`bHLly-a7VzP_JK7(o+$;>qpN-NlF@M#TsfT0fBO`Cjz}zBX+t-bF6*>M;iIjcZJru zx_fd)&$0ASf2R9 z3-_^PtqdwVqB zvlS8Y0iM&MMD{6WXKV(Os=6jbK6r{^ZxXb{>uY%S_%R|3y0VlwnndkKA0~PFaC&lTu%yr)Gh$F&jE+j{$gs@k=APOF<<*Z zdSn=*g}%J!QL?;v`QzHi&5}kY{V|+amg&o$nDhY>m1s>Eb!3_~K$S^?a^2uai}o=C z8SpG{p-6R3!fy%Ui7AUhkEh2FJ0%>^iPEwZEdbr-UbnSX-}FYMZJ{ae8YqJlfFlSM#k3fzPUds{Im^&Xn*R}ue+GJChov08IBGQ~vLE4G~U)yYZGtotWOB2jY%<>u z2~?Bmxb;QcD5P@6i&~8q`4dhVdiYMUQ;GS_9OEbbZq=h%4Rzi!<}IyKb*kDq$0*j@ z5-htZuN|ht`+H&YRU+t028{L1CeDuTIc(|YP5m%K*wK|TkBWON`>cZ}dNf8NbQD#? zyl{~gHd?2iN&k!Pk*?Cr)3l_!sB(_J!x59G(fje7w6)|0aioX~Nhqr7__4W#jsfh5 z(E?zYT|61CE_Ih}zdKR2Vxwm%lNG&$lqG0aEcB3Vye4z<9+^tEjs`2lM!H%Njst(8 zmK7_@LmADz-Zx1l1A{g@uiM_E*7A;j5~;m>=k-p2|Sjj>WqD}B*Zh? z+1ndT&)&{X)!1r!P7kua3^da}vrx7(KgYOubsVSARksxS&3VZrxyF4NiVRPvr&BL^@8D z>VL(}ozNeQd$oOk8rkad>44lX@Gl>VEwXw@!KHXXBQ%qgZ0vORO^oRqL*XBcgqjTj z;#Vns&lJ1}^^*&u8_GVduaY|blSev^rCbV;0$-+x~U-orjv3sz6jd4EP=@G3XB)hLyK0k~avKnPCN7{8(^A;L#j3a$7 zRlQQWFaE5DBrVOVmenGTkswuh=M8vdvR4TD;751rhOG9`)L0^nu{7^Z&4~=99BX;h zDd@T5GH@PYKJ7bfl+l@a`@|zz?=l~Zzu4i0HCwRMfhski+A%=qktR;A38@$=OmNrSIvvIoEKb@y&l>`I*W4*P_c$2kPnYXMzM(7=fPOM%6su6+^4Q8lchi{Wlgd(k3X%d2J@Mq87`lD2Og|x&RXrxYB)a+qd?gRA^)pi+bH%K` z;~RQGR)ro{dWASC*is(3KHl_+kLDY(80>TBh4yR)0BC@;A)IA2jB2+F7ku^&A{o1U z-I4P12T<-u0tM8`zOb)``6nITnO%N2%N{P4?xr6Lt^sl-326!12#S(U@9z%P@Ns>K z|MpCK;il^XE9FDun~HBPKi5S8coT8KboWs8>B0r4hKKW0in?^O@5bl&(_Z)b@IB3#O z#S4E}6kZ)EH&j1->=$QVupigm^v{CqV{vK6$PGj4MN)d<*OXqLTb+GCL}#`Ovy+7# z+vnJDD*wki`Kz23Ej2#gaP(i~W)pbOV7E*OYc4{ZL*VLS1r*qVsQ34v+?ml+FP?ON z2+?_YMrePfsEoxl5n|a*<9{JDd~P0NRV5R_RN_V1Gosl~uk?h|kzPR7Rj#G#oSt6M zM^`V3cqDSW?5-pwD$NNrEKkODn4Tt6M<*Bh^kzA)gqRl}N6><6eTF{d%hl4yFtN34 z1O~1Msi~FjH2xV&1k*?N1i}YlmaZMqxL%sw6%|~Y^>0+FNoY7|svRXlRS;%AFG*_Y zqKnlGer1e5mo%Z|djpUAzEFU}&hpv2PdP|Z$Eo{rsSFo?>M-cMu{jYXGugrIpZ z3Hzm~Q!I(If)t7#D$?l{Go?!l+W60WB23N~I_)t(=_dsFIRXE^rzY|k(; z4{nWjzqk9KNtdotSkltk?;UE_UPJ7dY1(Emf>+#68M<|*OIv!E`?~C}+U_LuKUvsE1S|jm*a16bG6Y^$2_ysGBIMYIBsjZ8}1yO1B0zT)~)Me9@ zO-FNO0>)crTY)?I*i2MExnzxUYiZ0%nrikxjaKzOOb=tFtCrA%eQza_);>QwE!64}^&DIY|2JpR#tz^f2I^}%)32R-*~-9#-{n+_vQ zsjpS{F%Ej5Tv!v+(skZVtA?a|P3q=2xeth;vqaL%zqG{ zlF`XP9jCs~nayAbG+XetKs7szw`5l80~Hz#3rr$21nzB>+ntz1)X>M%BNPofC@$2(1(EScuw6?A zb~Q<*))cgivQ6>ICQM!apX6qd(|2F-bZ6kwRASeQdXu_~YcC6jTst)K)7<7xolKSg z!_RnW5pg^nEzm;WCyl?#gj=jrj9+iON@@Wu^~VobEw^kSQY6LwDXI4JNc@Xsg)7%&(8okXgh+*JNNIh-QQaoTSW>rS^J)U@}xocHguD!51$5G4t{Oi-0m zzl*%etflAjs&^;Cbe%AhHNN*1&o_jCx9uOwN?a_x>C0RU@g1%CA4HxMGgsC1XIclt zB~H7fMt?@*PF5FD&v|txxzT7FKgs_hZ-#A1?Dc0+??tP56)Qw|S)W6R@Uf>&XO-_3 zttcVN3=q$#$%Lir1KopJNAl>*s(YSajfpjExzo4x-tUm+m#j7|MfG`f-NF4ya>wee zAjXtJ2yxHwjJ>>7L4Jt^TS?%dnyVfs@z1>67vf*lW*wbbDUG{JbT{cgSz62NKh(~N zWFZ*|sh8MMx2Jlg*=xo3$T3Cjh@ZD-R@p{Q#zxKEAI~S~i3kzjTeN%{jO4rm>7U&S zaY^TSv6%zc2D&*75~a(ECT?Mt9^1>To@CvlN6&_w@($HVyKLRzoZ185K`ylK_rQwm zy@QM%&!!P#_rZthej6ON6GG^7dSNVKDVd4am{mFVso2aJrGLWh*R}F{M#(9BOh2}e zTTxvU!7?hs_u7z|Y?JpnENvK7J-J&D7a|e)PwnL5V|wuVEbiwItV|zzd&P+<#IX)e ztCKkeyDVA-{irrbhZ66Goq3)Ly_G#WoT_BwbUW42jBu~OP`P(xNUAYRuvtGQqzK~y znq6au`fC~Wdj*p^oIJ?Qy(?Gd&M{$);$8V^ck9TS$y5HGRjWUfF?9L+_)`YMMh0i_ zGcM06jZ<%xykvcXBI{hn2!UFd;-h%P{7s@EDyt^tLUg^K=(8c0h!kIf7ANR3tn{;& z`D$cpCJ#R=@P@;8K4*W}*ITBxJjeH7qyLI#IH^-HkT;{2T)_IPdJOVD-j;?c`1&nxt+>$2K3h`J z4Ei_KT084WtCPCq*lk+FpgcruV=e{srkE@%6jHN)j_h&Wa|Dlgvv#U@`Zrf<2IQFZ zhkz2bo!|G3EM*P@nBY5%)@x+Cof?blQ?+4}j z+%Y6uB5L@1{wXlH&N*!!mS-ojDlM@Rb;YFw8aq55vTBPk`$|B)mUE_eRBicX2(a%p zD{k0*h9#n%lOgJf@)a+gMV}+xfHbA1;*D^d3gPwHdpDHV)>hZmBPJ{O`%2eWm{Lo( z$Val6T|Ss~vPWq&?xnNBAH}Pg43no2cOAp~4VcEqjwVa;YN;_tiwbW}Hy>oRR#8){ z++wlBJA{8A=YLPI;wI}Z`I<*Ej7ULkdnyhSTcMsC=T5PXkZ|S?zN~GG$`%lmOWw@g zr1b6{>82|9gof1gI@w0DGLuk!k&1h)SB_(bSjmdfpw{7F{c-{y;UVuK@{yT&FkG@d zk`wactiF)8R`QSP90b?Z+;2!bH9G5Ns?x3+6VEo)OV?u0SO_?~HARFT6vlrE>&m{E z3dP&UmkE4Nq7sRhAS^EXSUAAvp1jffI!J8(_(4B@MRI?$4PWYMoLODJaPSC@P=S>t zyR?4GYL0yPT$P>fuB;r1N!^y1LfBD)Pd{EwX*~{J5X}P8eUoVR>(fX&POF^c(XdNt z$egQ~v2zesqZ;`CeI@h~jr8M<`~qH}?CI^Ti^l_=_ck!N7vUJ-X$@p-HR)JLl<+&T zay!B~q-)IhlS*oqxsjTl@R+kbYfo*d>7-oaus-3uDv~>d*Hs8&Qwe0Ix>rV|((ENA z<&mM^&~!1MKl|0mf=dd`X=Hap?6izkARh5eIN@}4rm2Xzr1cgVJCoG*bIMnYo7NU{ z?^JOpwo15&CkWT*s5NvFZgCafaL>zdDe-zuUbZ&>w zVsu;O$_H0W)38)k#YHz!>A!k%nY`$Rrt?Zt)~<0AUsY!rYP6+woZwkG^@$uuWD@h# z?)g^)`+S=|t|K^u?z?lb_h=dMkQ*^dJX2WbjN9q^gVqe`U#U#!BjL%iw2URvoSS4B z_cFHb?y0@BaIIXsG;LS*a|n-Izh4@2f0I<`;Xgs|`psxVV)d@q>yY8}t>VP5^DXNr zlL{TB=5?w*^;fc9O^Ia6ILx?HFQ{WG1Y$oHT6r)HCtH@a8dbl!q3Ky z(G8O>CTCjh>Jgki{B!q#-@tR28yitw6Zye!S1H4XkuQts)2M}<5v^g-Xh5QXfhkR< z2VOd}BL1ACGynH~=7nZgMY^Z*gIBtXmwkJ{mS+G%wuc{rcG$A9{m( zb04T(lZ7OwK9=JM*u`6xzUO5;U5M~z79Kfad^5}Ph7ySsaPQ_dDN`sEA~YbLZe@|C z4Yl^D+^yWtIkhr)FYMe#8r1~T(*pjbj^Au{4#%f$vyW#o@B)|bnC_*2tK$u5iR=6T zJ=@*X*E{h`$%~Q!F%P`aFJT4Wt_r=WEltd6ZLjrI`u9$GJBsr7oG<( z;rPXsZmjwnF+@&;Fo@~e=(eE_pGab6Sc8}sZlCOoU1#b4> zp*1m{c-4-Sjr=edmsj1vmi@k6v79ls4%^7fQIQpy{>)Xpv~-^rj6-<`k-q9e^^Sw< z)PmJ*IExeCE~Go71OtNJtWiwxvGf^d6dznZ)d(}Nr(r~uYr@N@kimmy(HrZjm*%3z zM&Bt}lg)}2Bx^Z@M2ex{NIi!uhisQii=;xO&IUW6QBN$t%n~gl zO?ix`)~uezU3=-x$KnHikha2~F^h4A;a3Sd>f6)2fL6{Si47gZ>$y($o#9LE#KUQ3 zs_h8yLOEh9P*h9caNhP!X$z~eQKneP27EPS9E?1B%_U2Li7z^RK&U9a;5k!Ele|Q0 zLt`z5)RBj+$86qd!(cRV^tjsW-O^G@AHcix@b}GXmMN0Bd}6jefL^6^C;MZ#QvafY zHygQ?A>OcEvMNqswAh}5p*u#)mI?ws5d9^E9yh9+OMkVief+_qdcB+NcrNC2^Zttk zl@GStQ$@|D0&})jbm_!bOrpljg@XiF7i$0ebM=)`N3WM0Z_<0~9J}l@B+B6NBh&xZ zNm}Y#kv*Io!@*?R)K5&oGL7v!6mo{m!QENLXeO^Aea2l^PY3x_1v|te!A=Z)N9Y4-QBx(RagD0 zx~fwmdMV}he|(iL#M$rsCiI9FW)e7aMO?JM|JF7vLFT_$*m)RK`c-H_RWgIl9Zemo zyOGErXjZ4RK0$yX=6={M^*MHkZF)xVf zM)1??yRfVr$6^DBZrGP!h^H?(py4X{1Y5SZ2?%-RE z&A&dCe>q)aZ~=Cr8sW>?P8Y@oxpQyWLsLBTgrL87s`m7M9<>~FDLGw#l|RQ&Z&}v9 z8kW~{B|D}0PQ1xk`3obt$o0!@&Ki2QKLUpX(Y~JaO$|<2Rh?mL+zeia(3jjrZ3Qci^NYnk9e8I%O$7&wBlPs;s2~}$HSmws4T@0YNmU@T!*7P2xACD_8;Y- z0&e-ny*-m7E-MB$Y!PDAk6c-1LB2M8S#|cBujlvdk+{_BHx8gc8`TB?O*ebhQ zB6~-(crgNX?g$0l8tu+|G;mo!_%G#uz{-Nmc0wmSp|Ql3{%^ z|5g#C8$M25hlB^nMM}eU_kd!7mfYU1I$5$V3B(!%ijm=T!}=KhGql-u85-e}o>ERT+HPTc+crcz9?lKC~x?iN(V0|tqPmuqKFucWil6U`HsbD9dT!XWgFQ$(Lc| z>l}8aI=pE}M(r7Lt*|ebgrYy_YFt%-Qi}k2X+k9m=mTrDNJ1LJ?ki;2k~{3FnvDaW zF^qzEi6r5Ts0daEiBMuol8nEs^YceZF`w3b-As)fxNF}Ke@(*C8UhG2+^3|QsRDT%uZaa&OcL(ypNAhTXzVFVXM+jmr%C+I~yBTq- z=&&M|D{!k-)PzwvuqoxRs!Hb8y>40*--MmiJ`cscQAx@%DR)r%pmFC2njKu=55TY0 ziEz{;hWKT!K#*6iAU9SU(=^8|o5e|OQw#OsrIzSR!4sTYt@1o>2R~|)p1RuvF7H8D`73`PS&2AJeSM@n z)+`971YR>niqDI{%BH;B$`({W?_q1rhf;U;GVCLN-}j#|fjsXUib`f~MtWDF<8`L` zmy6B=3%4b{aizYF7)Ji4u9AUvfxfqa<)Mtdxy_47x?&RE#r78OUh>Lfe;ScQAl_2g z1GNOop19cUK>h#(y=I2JV~98ha&&B1mCn?D3SlQUrG~{1YINc4IR7fmHV|T2U*MEf zmq{$Ud#E}^ji#CU8k30>1pBuw_fGGS&ISESz?zdKV7Qd>c2p8G9`oe>GlS@DqU6Sa z6+E?pd5P~1OEhv>0Z)k>ppFrY*7;%As^~ZSo&d;!N4HunyPsM#xG~vhvMg%MMXpyl zwifYiUd1nIu05qiUUAHcLP+!?^pWS78{@M4VeYSL9VOMz!=MS>^7B}_)6d{Lo3z!+ zd?I!9s{yy*kCy?;BU1mS7MG~XFXfQ>a|gNUgDvt2>`O~5fskW%>7=TeM|o^JL!K`E zLA6&zzZ{fEQxVl_>&fE79MiLLY;41G>XNSXTFD(~&my<_omnx$&&$tKeI}?1)ln?r zm0;)+baKtk;G`%=Q^4LH-N3&=F;hDC7pj^7^RM8Opke3F*OY7$Qjx~pMc8R8cy}cf zY|zNy2(k5RyR2g$u&ki&taCqZul#!zO_hA`UtR%K0610eu_yi9iX95xHBb;wK(0`q zzmB!4b;5Ex^rxCNe&~Nn28`Pa{9yDoNWQhZpH%Y->zek{w(zmK7PQWzs!4tWT;E(? zie(zO<)J}D@JX^qz^90`?9l{SB`Of-iH1xVpL$(>OrS@8ktx{2uErrp(NB+LgmfQj z_Cpf+%j}yeD%!4XjdWd{TFf_Aj^bT<}F+BzHx-U?Y!$L;1)!sl_HD7q4!#hKA zkduzF)==F7rz|MZIeT2TRzht5+pGG34H1 z<2ez6Yg6R-V~UrE`!T4?+i#1>x*HQ6I7}NR2Wrt<77JP%`k#g#3SLR(e*7`x+WoKt z#4+JA&44yJNuwcx#5eihy!++~NtG%yCz!BYOnN+eNc}_wmvA0cflOZZ8*gjr zsWHQm&_Pub#|0Mzv)CE*8tIs)TrLHRz#?gX-Tv3`mPyTpXFWR(^f<{U>#K`CJ_BAG zQj$T0o^saZ(bKimbMZ?v+0EEY0$#>qwt?pxzRv%6kw$3#JA`V$ z^&dd))-ShN8Y@n-_`>`*4G(!e;~5+R6C=5m4PW2D1z5yoe^w5=%q2;kzqsae%+@3o z;bZ~Gb#Id|S}>&{ahU^CUesAyAK+p?;t{ww#G*8boW2QzCuyIde=BYrDnUn9C^ zu_Z>{<6BjMI=i@NMe($v*po#bUG||jE2pa_l3nA70e7a$WZrI;_?@OtQyS$n5IGd5 z@=9exgUC>04xQL*#T&|VgWr9IKgR=~gM&hT{uTXqPZFOW@B}Z7dp+(=Ea5&?ukNex z$;lSmi9fV)a$xSh@{1Hd=1(%6((}Y&Xs06SudWb(@e%u(othVaRYRH5&PaIg2vZX& zr4w6SHjmhS%^!eA?*cTkIP7ZKidg2&`?DbUJaOR$_E3=7GO1WSL5s~JQsn2OpYv96 zM9{kBPmBxUt%dvVYq#@@6qx@2L?9fupUj~sQ>yh%;R(Lf{1<-W^<+o1_rIx9#yC81 zj76O|Xn)&0RQt3JlaKv$P?c=={rR0(D&aj}{tSd=VzcE=Eamv03#N%psedlm;VH+L zD^*E$r90MdWF`367Y|w>3=@9j`kK0Y6z^85Xs<7F2B@3ujCvF?|xep;sKPm_O0tLSo z@JeT~&AHQ1ytB=gr}+!3200*&;!wFb^AS`Yrkao?bj7(Q%w;L){_VdN&mX|v_+ONIusLfYN9sJRTZLZ5Ukk6ct?M|g z$yzmj-Z6Lav~uLSwbRZUVt)O6>=enjcK9oI&gRYPOOe*9nm5Q@UnBT8@3-TJ|Lc+e zMX~?iGK}%z?nvCjf)6_jY$>;Lp7pM1s3OetXGtk!(wqWT{|yw5}L z|CgWsKNz<_O&iKVn)HRYSX5&eDVeH&i#hwRIsZTGHPc1nr`E^I|4xJdyZu?T)6?1Z z$Z!3B&{G}kH<}xe`KoG9vl0PbOdy9Hc994*zisLap>XiBOJj(KUU&%r7LrNAR%bCj@1f5t z*kVEADAaWE;`Jj*<2)>)kJ~=aSh!<4k3dqDIDQy58|W($>#3(KrqU4XNhh8jprMCqkGS-m0l9}feC8Tgd`#V; z5w;DL?TBVP>~A1XbK+g=S)}yn!XX6*T;AQ(0%*!vLP^ee&Jc_e9+|0A_^DTW!!{6G zyh~$DiGMhpWobGuQrM<5n0>RWF;Anj7)F4wS4F~AqTh%B#aiZ>c$=Sp9zSDj`?uI&@&v`#B zkOnU#q{8`k=W0100Tng$uz0c06gQZZ*V7kAEZGZpp1EwRM&l1Z!a(9`sd zaMoAd4z2rB3wK$!F$v8<>EeuVpbL&(-@%xgTcZY=g~h*fAj%Y0q< zBQ_1CU}_zzDw8}z1gjm)=e#27;k8m3S}-3x*ajzdAP{eeuqP?jPK5U(Us`3Slh<(t=IV2@Q`&1)~T? zFBO4h4K@lPOiz4g_#4UMPTGb%wEaP{f{if9Ff2O4LBB2 zr#CTDb2_({QV+{!C!5N-+TJ_H>B*|nq$@iCY(fiyl7868Vqg@QdO4x_aRok( zB+H7bpV)9`jcq&K_Sfh2#_^_tpOY%;7`@gVXioLsj~q$0F}Z3FSc;yXjI|ybJfb9y z&~i1Da^d{)t?{*TLb*9*+R)q38OQ!7E@gI$EfCU2u}hkyApx*J1>@(C>4HUS7<`G`)aUXs99V>ZxD@B8;&9&c zHL=}Zt3n;3cokf@&0nhh(UFF>&a%d#K{D>6%tB1QX{OiX0|)nilp7tv zt_G&ZD`-9b;v6@Q++L)3rSmp>blUj`<4X;DuEHnePc65FdmUU*NnkL5N!d;{pXdx@ zssxph<%W)nuhfm>{5*_5?Jzob)kNGojd4Nig9x^Wd$vJ1T0Ej4S-W@0Ir^_i@ESVA zvp$GKBc5__sH&gvuv~e}>Z~}MYT_4{=;MdTkPF@to)Q=U@E~CsUKXCyQc0f?=L4gY z)G=T`OhQCy_lpIpaS4YFoD4Xp*1Hg5Rd;VF0TL)h^z-7_hl<3W*`x;QQ?w!RC+e&u z5B!}K<5z5FH_$k31TaI3$g%E~)2Ov;s@;zQgUBkR(<^-V=_-w)sL2BV$5ecZ2NS2E zHtDIP%Ps{LnxwE5bOjoKOca-MwqA&v2%8v7QlG{{@AY*09ooI|D_;2};yCvYrC1(P z8=sN=O>IQSCM3YZ#=`nr)B0~}BNpJH3^nT$MR)AKd5lVW`UVyup`?^-9FIj5z?L4V zqRLh&Q#dNGKGtt$c8C%Cm4zGZ{ zi~jT3I^I-c*66a{LlQD%cT`AvaXbQ+*E?E!{oY37gslgOxh54 zUI3~6(lw!_`YaEw8fOGyxatM^Kq7nMQ3n!;JGU}eoEi`W*8gR`T|PFn5A<}o{Bq8 zv^iHxIJrM|tM29#*W#*krC!#ASYYt_Va*ikbE|`pEn#)xYxVG0wHxx`W5l%PI2sSc zcymIo8j<7IFBU zx$W9CG{3=u6(Oh?w$}o&7`s+A#eTswN&H^eE%Ucu*hM#RpUc$it`!)W{}x3(-4iNw z=$WZ*7Adq)u3f4Nj*Sl$5!^{U`;>0fp-)HmGSz5Rp>4`YV!$Ek_IoHXiav>dPNEU$ z{3fMmyou;O=FJINF(QUjHjd`JS6#4m*-Cnr{2@BcM^HY55gM2Lw0KJ4>nkJ3Z_(DL zQ9}Is%fyCOFSB_0WTyi2-P$k4nWP^Kyq_8Xa_y4i#3<6_6YcB)x3oymOkm_#qonql z90=ktF+Igc+0utQ^Tiz$ONsu8J;Pl^@B8}H*oBkxk2oMFFHowx`MiVgjVpq^I36rk z!*cd{5kO9bpT#hqE~&`1oBeCf`Z&NyC5q38>Qh;N7H1>QwRoInX%7Gt+Ux6pOYRZLJ*EQifTK0iQkA6V6Yj zv{Rv*LHg^Fr)*|+qMUtcmA6K8eY2d!-|-_6HalLgML~0jUwFEfSU;eXONI^QoIp%C zg&P3kQRbZ0{}HQyptJ_n1uifmjAS-GL z9`z>`J(7Kw`T|RAdRe<;^MW4VOami&ohJAlm92QO5tVEiBzcX?*~oIc&Wp!^5d`Oh z8+AF9va{2QgKOEF77(CvQ%l1VeTORv&F@L+8va|kuC1OoCW)JzAm0^tj>FF7#|ZTp z;{c=%DED!ZnX_#m++S6CAkJWKu%ge_(Azu;$6i|Thyfwz72pg)sGAeGlwOSM1WSJ| zce9qcXo%TwHH59q*quTqQ|7&vXZ3MpvY2lQ-gUmO?kvscMkJyq^~Fa{r}~KLi3QFhAb5Y2f!( zp7rv#S|fo^zV65DC9otO4j$Qkanus5J4au3=j7EGQ*2VA8sQSzY)9c^6tpBW>{ z-wv`|UJkaKzkM!>73|H&irSTdnx&&Sdwr^z@V99R+vhCNh2XRj(qC?Oy-KbUs6(V> z)!2oLYw(&V{Pu9vWv$Y<$CI?9FDnSTT|WBnaVs#|&Z-M@$nDq`#FcbrXW8G4N@LfT z_2f$wReeXu;kYy3{lM?Mu^44;f1FyAD@77<=JP~fSdV!AnP-stSZ`UP9K|c8V3tta zcCukjupS(!iKnT^krRw&KWsc)iI=&lGq3V8n`PI(`#P%Je#Ph-p%N|cYmN2xa3nB9 z&Rx}HOVy9B`4hph2rvWUU)#8%p_%Fx=4g64#Z{W{q^I<`fACH7@cx9!cEz`+bwDJd zAM%WgQpW%Cdy-1p@8cQm+8Gzo;BZz}p!yi#Y&w%<;uT+TSY(IBsDo~n@Jqk%^SXAm z`mi+4p(8n!blBoT4!r=c(rg4ltOllc5|MFcKa_5(EkGBq2?vjW7ABxlDYv;=IxG0> zXD@K_TvReo9cjohmWI0QU%83O8KTX6@IntQ<)e!Uv+G+GW8pGZN^2ZFjm~p=md!4l z#~OLXQ2B#8$3RDX(@$MbZ(hK}g-!24Go^;N=B?bu&aupr&U|0#`yB69+_7+q+;|Yg zevKx2|Mq7?d)Uf2(njNQ6hm_X^*i6SN&zk7Bm!@Z$-W_LGNEajmTB~qi+s>Tig9H4 z=D3G1fLsCn+{KtRg`8YR{p44W^m)D|lP`$JOIdvONtakOr-_^l|tWSEoeg zFNN!cLh-8az|?HulRTi8dGBzSmp7wqdM=q>39#t3ju)R&swd-|W(INP z0GHPDRX71Hb=Y{Cg*5WxCVhFt=TKoTORQ6IdCH(SYH%hio`9!A-VL^3?X9If!vX`- z0WH|FvV#7IH{tHG1Ek7dwA_{t=X#iJ6C_RM=#9=n^DKk1#ek|O^&0l!oA@auH&ub}RtopQ_O6lorHYtPbn3TcX<}gLJfD#6 zC?qeQrPmUH2OmB}_wPqht#31JugL;Pu=;isPgbjO-SL$sDd7aM>h1KhAN^w7bqz{n zb^P}D^I47*o8p}-bB~IifbHEEje%>kIk};qkLxlb>C>}F&8|5_4emE@LD|G6oie3) z%;-IzGRmI#xE)C5#-U&@w*`h1cIb$DmO-~FZ$zP57}fni<39i#=Z!yr7p5+Sr*$(y zW7$C&6im0)2h%OnEiCNk)N!?s&QAHKibF+!nwk^4Mb128EC50dwC|$gzvQKr_rTRd8;a2yDUC`Vh$hrpa}7| z6Ua)Hl>2&n&?UVK=!ED4m2mnWz|CvQKLGuD!sEg+>_z85GLtsGgVg2FI}9wTpi|Qa z#HaILh>w5}8xP}uLVT?3e-R%A70X}5XJHxgKLDRWXv$y2=g~cdL#^`4v+!eG4-Myr z;REPP`v>zqoJ{u@^EKdu^->W$oGj)VeOT|S49vYmV>EcVHvCu^Rqi*`u`49|+OJV> z;;!8vL^}mrG;=2cl|%4B9sQWm7}2>eq?C+YOLXU3P#mjS!K*VM=KGe%roqUq(7^R1 z0k2(NdRKqi6VBIS$auuYs3?_OUGZ(B=3Ks+N|zR{6H(~u@`1QWUhcU008aZucb+8y z^k8RPuwh`CiFdmMOvPnv_;3^XRoJgN^XZ%fD`(C4scKUYW7Aaq|+hZbGAzO zNv|5nidLoIe39P;%P-)$JIbv3h~Y^@I?cD;ox{yp7GTNQS9cmLK|XLp%ri!&pX>JVeqeeoZH|K83C;QON{4a!K;+rlb6bvYW=du*_Qp0GC5PgL zRh4;>b3G4%X6UrPk07*O-&a|n5SIIn?5o1iY~`3ec=|l>ds2o7G!lQagJmy;b?~WB z+uM7kCcMw&k4!<(w}NIB9VmmHmJ(5gd3OSX#U+-$*P76W6G7U)AtB-$8b8SOiUP{W zc1Cvfqo*E90CF^jRo;%@SI&Rc$xN!}rJG5de6hUI@2k0_A$_{j0&)B-R!t#t@ms~r-pn4cA zZO)v1)M$=zLV!E`Hrm-Io0An!Q|%RiNvUzsCyV#^K;7h8`-er>1!1e?zGf%eJ*0fc zkup+lPAA{Z@?1!q(P4hvrl90UoZbpwsTxjr++^U4FMqLsxz~OYCHETS(=gaWch2f2 zRkLf~&0NYB4u6MaUr5yx6BlICpryO$Rf(>6-X7-5FTL(iW+s&!TKq*o*|{i-A&>kU z0QBX`Q4g!q zX@Q|%8NmGhh%wqZoTLC_lJWHgs!~-4mrI2vTYZZ%H9xw){X@xhh?iTYH!*RqbvY2I zH>SD;Km7IF!TqkJph&uW;7#p5M{O1yh)${8%}WcC+jOq{Z4YPyl@%s1p6?UO1fe;I zX~y?xU6^|oRIQ%X>T9%F$R(j&uZ{n?qZByg>1Y+ffM! zE_fEk%BiUj00?npvxy2Mibs_;#!yiKN{jZC%|<-Sie}12%R9@q+sz<*V>plLux~OT zY0vmnyZ6T}eV%4c7XGByEg5(xTqz0%x<}=`+Hwz@8PD6H;aVBG?*UKa7;Z7tXla(r zI(|TKs_JsW(8fc&d%8qE+M>fqcObKtv@^8azmK;*$ZW2-+c-fuHM!0;9@6UKE3IKe ziEXeaKX?dG6tuJ_=I>4&OnCw*T10S!6LY;cMeEQT;IqTtLp zEthMV9Z{DBt2}vv+3i=6F@=bt%HrMUmf(BLHU)hByplgkFD#7s$<4JVi5K))i@};% zjE+V7PQRV%@804O(1*(K3`Y0dPP!2Tfv`d6>=;JtJ?bh03ao*=#NAbVO`o9&BA_&h z`i`c+6N+5#1HPpVH64a1X;BWZZ0E-E*3U|?A+`B|HSu&cYthNiJGLTU$v7I08Vkfy zT%zXK$4Wq@x-aA8l1VqlM~Bap8W_d%v2L83isiD?7mwK$8F63*J?{#EnPXg6&B&<7 zbQ=5A)t@cW-lbqn-tH4MOx^S?RRO`u;#kJ8k}5Wbjr?N`JAbFAFMD(#VOT1Wt~WjkimAE=(i+Vo z-Z)@#T?^Sv5fiIZdD#5=EfW=)D^vT!wS z3)bFt=qLUv8+APzc2235>@Sf2`gltg;SzUsaH`K$d!aMU&AUHMbRzi~@c%4OYqt91yxjp>s`GZ!#( zF@rc$-k$sc40=bc#$UV^u8X37CN-AA0Q?!SZUzsd%1|Z7x=$ z>>;Qs)ui&)0_10_w=2t@QX$%ifn5gXB+Zt?mz=1X)2@Vr4(ogt07~SKp$;0sz9gKmRgMa@pa*CrGfNKAA_Dds zps*`}?a+cF;&?7*T`Y%fO&89{tys8T`X)x&>%^Ouw5b`#YNH$Eh7($2_9OnfJPe0j z`lV4M*%WOt99BCWfVM#|JpIU~G+9uSocyUQehuU6UU2qBRk`%y5!Vz)k(upF9h(wH zkowwme?aD_A;M1927lVBA^kfdqqlpCq>&kc&w(M|@MPei4d4K@_^? z$3f>hH*km{hai7?c&6a5d8*>7L@P%)mB7cZvwP1ndAEq^L0J#3zS)X75I(zzAAV+JGME*4d&zjB+lC|H(%_^roUgaiw zy4e0$f;KYC*$l?Du@9GwgLN6G?JXM9^Bxf~HikT*C}y1$G`1#H!v^|n zXFF(1M8)KalXDtJghmkEO|cTFSj%O^8Ln%Ar7d(IK=O^+X7{TLapOY*g*on5^aoi5 zEdu;u14uOrlSirbG24N2kT=YZj)o_6jy4;ul&j4&(4p+)Mk} zO4w-I8o@Zm0IsAw!#w>X|6nTpd}`cjc$L6-U+J>X0Px=N=@mDKb|w3zU{FG-b1Xuj z10l#ILL0_UR88aKk7s0@Z9YYd{VXgCcTDd4l)cv#V(m7w_Bi!PKy{+^jdBXdjG5^f zMdWnCsoHOSd+$f}ibNmwaPS%|O^&}7I=N^-slg@LJt56;B6SX$F8s6X^?KI!etuTq z{>FrO-3#HbWs-i02_HNA34`dRK00P;c<^Sv|60S?RkQ7iiuTx~FH!R@UQpD%I^Xo^ zp##X)`5J!gRbqP@eL$1qvUbNLmiNNwV)Bc6(@}a4?S-fvqg?&C)E%JdCJ8IQus4Dx zOFh2mQw%CMzfJJ$#8MGQQqwTxOr82EODVZVpmknRb=&19=b9Ab)ti@%&xeq%cS6fT z+eS_AvQHTP0CthCmqhgLvx|+VAel#Xa}~ud^ZxH#(;nY#ubX!Az4mW?!|&C)OLMN> zBy5&nI%`~V;7}NxH&Z&bIT#&}O{-P*y^ki4xImBGPe1aDskBt0hO5ALu~IW z9}Hd)_?|#&o@x>tiLT#AF4r3D0X+>W+WMP3cs8DJN-v489==Q6pI>^I<%Hv>f6ww= zE%>grQ}vzk-7CZ!@3*nPtJa2rCp-cziLA=PsqipcdG(3GM{HGFG1D2Qf@ TLO;iOwPb^j=3Xo4&*J|EfB^3! literal 0 HcmV?d00001 diff --git a/diagnostics/finite_amplitude_wave_diag/download_t_era5.py b/diagnostics/finite_amplitude_wave_diag/download_t_era5.py new file mode 100644 index 000000000..e10a48811 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/download_t_era5.py @@ -0,0 +1,52 @@ +import cdsapi + +c = cdsapi.Client() + +c.retrieve( + 'reanalysis-era5-pressure-levels', + { + 'product_type': 'reanalysis', + 'format': 'netcdf', + 'pressure_level': [ + '1', '2', '3', + '5', '7', '10', + '20', '30', '50', + '70', '100', '125', + '150', '175', '200', + '225', '250', '300', + '350', '400', '450', + '500', '550', '600', + '650', '700', '750', + '775', '800', '825', + '850', '875', '900', + '925', '950', '975', + '1000', + ], + 'variable': 'temperature', + 'year': '2022', + 'month': [ + '01', '02', '03', + '04', '05', '06', + '07', '08', '09', + '10', '11', '12', + ], + 'day': [ + '01', '02', '03', + '04', '05', '06', + '07', '08', '09', + '10', '11', '12', + '13', '14', '15', + '16', '17', '18', + '19', '20', '21', + '22', '23', '24', + '25', '26', '27', + '28', '29', '30', + '31', + ], + 'time': [ + '00:00', '06:00', '12:00', + '18:00', + ], + 'anon_user_timestamp': '2023-07-31 18:00:58', + }, + 'download.nc') \ No newline at end of file diff --git a/diagnostics/finite_amplitude_wave_diag/example.html b/diagnostics/finite_amplitude_wave_diag/example.html new file mode 100644 index 000000000..9822edece --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/example.html @@ -0,0 +1,41 @@ + +MDTF example diagnostic + +

Example diagnostic: time-averaged near-surface temperature

+

+If this were a real diagnostic, this would be where you'd give a brief summary +of what your diagnostic computes and how to interpret the output plots it +generated, which will be linked below. You can include hyperlinks to journal +articles, etc. for more detailed documentation on your methods or sources of +observational data. +

+

+The names of any environment variables set for the diagnostic (enclosed in +curly braces) will be replaced by the same values they had when the diagnostic +was run. For example, this diagnostic's favorite color is "{{EXAMPLE_FAV_COLOR}}." +

+ + + +
Time averages, {{FIRSTYR}}-{{LASTYR}} +{{CASENAME}} +OBS +
Near-surface temperature (K) + +plot +plot +
diff --git a/diagnostics/finite_amplitude_wave_diag/example_diag.py b/diagnostics/finite_amplitude_wave_diag/example_diag.py new file mode 100644 index 000000000..9d1c38a34 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/example_diag.py @@ -0,0 +1,202 @@ +# MDTF Example Diagnostic POD +# ================================================================================ +# This script does a simple diagnostic calculation to illustrate how to adapt code +# for use in the MDTF diagnostic framework. The main change is to set input/output +# paths, variable names etc. from shell environment variables the framework +# provides, instead of hard-coding them. +# +# Below, this script consists of 2 parts: (1) a template of comprehensive header POD +# developers must include in their POD's main driver script, (2) actual code, and +# (3) extensive in-line comments. +# ================================================================================ +# +# This file is part of the Example Diagnostic POD of the MDTF code package (see mdtf/MDTF-diagnostics/LICENSE.txt) +# +# Example Diagnostic POD +# +# Last update: 8/1/2020 +# +# This is a example POD that you can use as a template for your diagnostics. +# If this were a real POD, you'd place a one-paragraph synopsis of your +# diagnostic here (like an abstract). +# +# Version & Contact info +# +# Here you should describe who contributed to the diagnostic, and who should be +# contacted for further information: +# +# - Version/revision information: version 1 (5/06/2020) +# - PI (name, affiliation, email) +# - Developer/point of contact (name, affiliation, email) +# - Other contributors +# +# Open source copyright agreement +# +# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +# Unless you've distirbuted your script elsewhere, you don't need to change this. +# +# Functionality +# +# In this section you should summarize the stages of the calculations your +# diagnostic performs, and how they translate to the individual source code files +# provided in your submission. This will, e.g., let maintainers fixing a bug or +# people with questions about how your code works know where to look. +# +# Required programming language and libraries +# +# In this section you should summarize the programming languages and third-party +# libraries used by your diagnostic. You also provide this information in the +# ``settings.jsonc`` file, but here you can give helpful comments to human +# maintainers (eg, "We need at least version 1.5 of this library because we call +# this function.") +# +# Required model output variables +# +# In this section you should describe each variable in the input data your +# diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, +# but here you should go into detail on the assumptions your diagnostic makes +# about the structure of the data. +# +# References +# +# Here you should cite the journal articles providing the scientific basis for +# your diagnostic. +# +# Maloney, E. D, and Co-authors, 2019: Process-oriented evaluation of climate +# and wether forcasting models. BAMS, 100(9), 1665-1686, +# doi:10.1175/BAMS-D-18-0042.1. +# +import os +import matplotlib +matplotlib.use('Agg') # non-X windows backend +# Commands to load third-party libraries. Any code you don't include that's +# not part of your language's standard library should be listed in the +# settings.jsonc file. +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots + + +### 1) Loading model data files: ############################################### +# +# The framework copies model data to a regular directory structure of the form +# //...nc +# Here and frequency are requested in the "varlist" part of +# settings.json. + +# The following command sets input_path to the value of the shell environment +# variable called TAS_FILE. This variable is set by the framework to let the +# script know where the locally downloaded copy of the data for this variable +# (which we called "tas") is. +input_path = os.environ["TAS_FILE"] + +# command to load the netcdf file +model_dataset = xr.open_dataset(input_path) + + +### 2) Doing computations: ##################################################### +# +# Diagnostics in the framework are intended to work with native output from a +# variety of models. For this reason, variable names should not be hard-coded +# but instead set from environment variables. +# +tas_var_name = os.environ["tas_var"] +# For safety, don't even assume that the time dimension of the input file is +# named "time": +time_coord_name = os.environ["time_coord"] + +# The only computation done here: compute the time average of input data +tas_data = model_dataset[tas_var_name] +model_mean_tas = tas_data.mean(dim = time_coord_name) +# Note that we supplied the observational data as time averages, to save space +# and avoid having to repeat that calculation each time the diagnostic is run. + +# Logging relevant debugging or progress information is a good idea. Anything +# your diagnostic prints to STDOUT will be saved to its own log file. +print("Computed time average of {tas_var} for {CASENAME}.".format(**os.environ)) + + +### 3) Saving output data: ##################################################### +# +# Diagnostics should write output data to disk to a) make relevant results +# available to the user for further use or b) to pass large amounts of data +# between stages of a calculation run as different sub-scripts. Data can be in +# any format (as long as it's documented) and should be written to the +# directory /model/netCDF (created by the framework). +# +out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) + +# write out time averages as a netcdf file +model_mean_tas.to_netcdf(out_path) + + +### 4) Saving output plots: #################################################### +# +# Plots should be saved in EPS or PS format at //PS +# (created by the framework). Plots can be given any filename, but should have +# the extension ".eps" or ".ps". To make the webpage output, the framework will +# convert these to bitmaps with the same name but extension ".png". + +# Define a python function to make the plot, since we'll be doing it twice and +# we don't want to repeat ourselves. +def plot_and_save_figure(model_or_obs, title_string, dataset): + # initialize the plot + plt.figure(figsize=(12,6)) + plot_axes = plt.subplot(1,1,1) + # actually plot the data (makes a lat-lon colormap) + dataset.plot(ax = plot_axes) + plot_axes.set_title(title_string) + # save the plot in the right location + plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( + model_or_obs=model_or_obs, **os.environ + ) + plt.savefig(plot_path, bbox_inches='tight') +# end of function + +# set an informative title using info about the analysis set in env vars +title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) +# Plot the model data: +plot_and_save_figure("model", title_string, model_mean_tas) + + +### 5) Loading obs data files & plotting obs figures: ########################## +# +# If your diagnostic uses any model-independent supporting data (eg. reference +# or observational data) larger than a few kB of text, it should be provided via +# the observational data distribution instead of being included with the source +# code. This data can be in any format: the framework doesn't process it. The +# environment variable OBS_DATA will be set to a path where the framework has +# copied a directory containing your supplied data. +# +# The following command replaces the substring "{OBS_DATA}" with the value of +# the OBS_DATA environment variable. +input_path = "{OBS_DATA}/example_tas_means.nc".format(**os.environ) + +# command to load the netcdf file +obs_dataset = xr.open_dataset(input_path) +obs_mean_tas = obs_dataset['mean_tas'] + +# Plot the observational data: +title_string = "Observations: mean {tas_var}".format(**os.environ) +plot_and_save_figure("obs", title_string, obs_mean_tas) + + +### 6) Cleaning up: ############################################################ +# +# In addition to your language's normal housekeeping, don't forget to delete any +# temporary/scratch files you created in step 4). +# +model_dataset.close() +obs_dataset.close() + + +### 7) Error/Exception-Handling Example ######################################## +nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) +try: + nonexistent_dataset = xr.open_dataset(nonexistent_file_path) +except IOError as error: + print(error) + print("This message is printed by the example POD because exception-handling is working!") + + +### 8) Confirm POD executed sucessfully ######################################## +print("Last log message by Example POD: finished successfully!") diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py new file mode 100644 index 000000000..fcf56c4e0 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -0,0 +1,202 @@ +# MDTF Example Diagnostic POD +# ================================================================================ +# This script does a simple diagnostic calculation to illustrate how to adapt code +# for use in the MDTF diagnostic framework. The main change is to set input/output +# paths, variable names etc. from shell environment variables the framework +# provides, instead of hard-coding them. +# +# Below, this script consists of 2 parts: (1) a template of comprehensive header POD +# developers must include in their POD's main driver script, (2) actual code, and +# (3) extensive in-line comments. +# ================================================================================ +# +# This file is part of the Example Diagnostic POD of the MDTF code package (see mdtf/MDTF-diagnostics/LICENSE.txt) +# +# Example Diagnostic POD +# +# Last update: 8/1/2020 +# +# This is a example POD that you can use as a template for your diagnostics. +# If this were a real POD, you'd place a one-paragraph synopsis of your +# diagnostic here (like an abstract). +# +# Version & Contact info +# +# Here you should describe who contributed to the diagnostic, and who should be +# contacted for further information: +# +# - Version/revision information: version 1 (5/06/2020) +# - PI (name, affiliation, email) +# - Developer/point of contact (name, affiliation, email) +# - Other contributors +# +# Open source copyright agreement +# +# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +# Unless you've distirbuted your script elsewhere, you don't need to change this. +# +# Functionality +# +# In this section you should summarize the stages of the calculations your +# diagnostic performs, and how they translate to the individual source code files +# provided in your submission. This will, e.g., let maintainers fixing a bug or +# people with questions about how your code works know where to look. +# +# Required programming language and libraries +# +# In this section you should summarize the programming languages and third-party +# libraries used by your diagnostic. You also provide this information in the +# ``settings.jsonc`` file, but here you can give helpful comments to human +# maintainers (eg, "We need at least version 1.5 of this library because we call +# this function.") +# +# Required model output variables +# +# In this section you should describe each variable in the input data your +# diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, +# but here you should go into detail on the assumptions your diagnostic makes +# about the structure of the data. +# +# References +# +# Here you should cite the journal articles providing the scientific basis for +# your diagnostic. +# +# Maloney, E. D, and Co-authors, 2019: Process-oriented evaluation of climate +# and wether forcasting models. BAMS, 100(9), 1665-1686, +# doi:10.1175/BAMS-D-18-0042.1. +# +import os +import matplotlib +matplotlib.use('Agg') # non-X windows backend +# Commands to load third-party libraries. Any code you don't include that's +# not part of your language's standard library should be listed in the +# settings.jsonc file. +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots + + +### 1) Loading model data files: ############################################### +# +# The framework copies model data to a regular directory structure of the form +# //...nc +# Here and frequency are requested in the "varlist" part of +# settings.json. + +# The following command sets input_path to the value of the shell environment +# variable called TAS_FILE. This variable is set by the framework to let the +# script know where the locally downloaded copy of the data for this variable +# (which we called "tas") is. +input_path = os.environ["TAS_FILE"] + +# command to load the netcdf file +model_dataset = xr.open_dataset(input_path) + + +### 2) Doing computations: ##################################################### +# +# Diagnostics in the framework are intended to work with native output from a +# variety of models. For this reason, variable names should not be hard-coded +# but instead set from environment variables. +# +tas_var_name = os.environ["tas_var"] +# For safety, don't even assume that the time dimension of the input file is +# named "time": +time_coord_name = os.environ["time_coord"] + +# The only computation done here: compute the time average of input data +tas_data = model_dataset[tas_var_name] +model_mean_tas = tas_data.mean(dim = time_coord_name) +# Note that we supplied the observational data as time averages, to save space +# and avoid having to repeat that calculation each time the diagnostic is run. + +# Logging relevant debugging or progress information is a good idea. Anything +# your diagnostic prints to STDOUT will be saved to its own log file. +print("Computed time average of {tas_var} for {CASENAME}.".format(**os.environ)) + + +### 3) Saving output data: ##################################################### +# +# Diagnostics should write output data to disk to a) make relevant results +# available to the user for further use or b) to pass large amounts of data +# between stages of a calculation run as different sub-scripts. Data can be in +# any format (as long as it's documented) and should be written to the +# directory /model/netCDF (created by the framework). +# +out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) + +# write out time averages as a netcdf file +model_mean_tas.to_netcdf(out_path) + + +### 4) Saving output plots: #################################################### +# +# Plots should be saved in EPS or PS format at //PS +# (created by the framework). Plots can be given any filename, but should have +# the extension ".eps" or ".ps". To make the webpage output, the framework will +# convert these to bitmaps with the same name but extension ".png". + +# Define a python function to make the plot, since we'll be doing it twice and +# we don't want to repeat ourselves. +def plot_and_save_figure(model_or_obs, title_string, dataset): + # initialize the plot + plt.figure(figsize=(12,6)) + plot_axes = plt.subplot(1,1,1) + # actually plot the data (makes a lat-lon colormap) + dataset.plot(ax = plot_axes) + plot_axes.set_title(title_string) + # save the plot in the right location + plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( + model_or_obs=model_or_obs, **os.environ + ) + plt.savefig(plot_path, bbox_inches='tight') +# end of function + +# set an informative title using info about the analysis set in env vars +title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) +# Plot the model data: +plot_and_save_figure("model", title_string, model_mean_tas) + + +### 5) Loading obs data files & plotting obs figures: ########################## +# +# If your diagnostic uses any model-independent supporting data (eg. reference +# or observational data) larger than a few kB of text, it should be provided via +# the observational data distribution instead of being included with the source +# code. This data can be in any format: the framework doesn't process it. The +# environment variable OBS_DATA will be set to a path where the framework has +# copied a directory containing your supplied data. +# +# The following command replaces the substring "{OBS_DATA}" with the value of +# the OBS_DATA environment variable. +input_path = "{OBS_DATA}/example_tas_means.nc".format(**os.environ) + +# command to load the netcdf file +obs_dataset = xr.open_dataset(input_path) +obs_mean_tas = obs_dataset['mean_tas'] + +# Plot the observational data: +title_string = "Observations: mean {tas_var}".format(**os.environ) +plot_and_save_figure("obs", title_string, obs_mean_tas) + + +### 6) Cleaning up: ############################################################ +# +# In addition to your language's normal housekeeping, don't forget to delete any +# temporary/scratch files you created in step 4). +# +model_dataset.close() +obs_dataset.close() + + +### 7) Error/Exception-Handling Example ######################################## +nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) +try: + nonexistent_dataset = xr.open_dataset(nonexistent_file_path) +except IOError as error: + print(error) + print("This message is printed by the example POD because exception-handling is working!") + + +### 8) Confirm POD executed sucessfully ######################################## +print("Last log message by Example POD: finished successfully!") diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 1f2171f59..b068ee7f8 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -34,15 +34,8 @@ } }, "pod_env_vars":{ - "slon1":"160", - "slon2":"200", - "slat1":"-10", - "slat2":"5", - "ENSO_OBS":"0", - "ENSO_COMPOSITE":"1", - "ENSO_MSE":"0", - "ENSO_MSE_VAR":"0", - "ENSO_SCATTER":"0" + "start_year" : "1993", + "end_year" : "2009", }, "varlist":{ "ua":{ diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml new file mode 100644 index 000000000..e89547807 --- /dev/null +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -0,0 +1,9 @@ +name: _MDTF_finite_amplitude_wave_diag +channels: +- conda-forge +- defaults +dependencies: +- python=3.10 +- pytest=7.4.0 +- pip: + - hn2016_falwa From 6e1d37ac52d0261948404920d8c775d7d19a845b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:04:14 -0500 Subject: [PATCH 003/178] try running daily_avg --- .../finite_amplitude_wave_diag/daily_avg.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 diagnostics/finite_amplitude_wave_diag/daily_avg.py diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py new file mode 100644 index 000000000..43b8fc0dd --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -0,0 +1,16 @@ +""" +Compute daily average from sample files +""" +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots + + +u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" +v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" +t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" + +u_file = xr.open_dataset(u_path) # xarray.Dataset +u_field = u_file['ua'] +ans = u_field.groupby("time.month").mean(dim='time') +print(ans) +print(ans.shape) From 3b25aa7ffeb9508dba4f04c3ca6466b5297b4727 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:06:45 -0500 Subject: [PATCH 004/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 43b8fc0dd..6e8498bb6 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -10,7 +10,9 @@ t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" u_file = xr.open_dataset(u_path) # xarray.Dataset -u_field = u_file['ua'] +print(u_file) +u_field = u_file['ua'].isel(time=slice(0, 500)) +print(u_field) ans = u_field.groupby("time.month").mean(dim='time') print(ans) print(ans.shape) From 2fce674a1f977cbaa6d325af29b2d2fdf3830389 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:09:56 -0500 Subject: [PATCH 005/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 6e8498bb6..cdb9893a9 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -11,8 +11,11 @@ u_file = xr.open_dataset(u_path) # xarray.Dataset print(u_file) +print("================") u_field = u_file['ua'].isel(time=slice(0, 500)) print(u_field) -ans = u_field.groupby("time.month").mean(dim='time') +print("================") +ans = u_field.groupby("time.day").mean(dim='time') print(ans) -print(ans.shape) +print("================") +print(f"ans.shape:\n{ans.shape}") From acf74860c2ca11629e00c7526280f75733efc2eb Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:20:18 -0500 Subject: [PATCH 006/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index cdb9893a9..2977338e7 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -8,8 +8,10 @@ u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" +wk_dir = "/home/clare/GitHub/mdtf/wkdir" -u_file = xr.open_dataset(u_path) # xarray.Dataset + +u_file = xr.load_dataset(u_path) # xarray.Dataset print(u_file) print("================") u_field = u_file['ua'].isel(time=slice(0, 500)) From 096726b99c582644c29d0b745a2b72a45e10442a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:21:07 -0500 Subject: [PATCH 007/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 2977338e7..144629c48 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -11,7 +11,7 @@ wk_dir = "/home/clare/GitHub/mdtf/wkdir" -u_file = xr.load_dataset(u_path) # xarray.Dataset +u_file = xr.open_dataset(u_path) # xarray.Dataset print(u_file) print("================") u_field = u_file['ua'].isel(time=slice(0, 500)) From 12d41e89f815f1e67306f9b0b58b6f2f10deaa6b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:25:03 -0500 Subject: [PATCH 008/178] daily_avg --- .../finite_amplitude_wave_diag/daily_avg.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 144629c48..b0d1d27be 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -8,16 +8,17 @@ u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" -wk_dir = "/home/clare/GitHub/mdtf/wkdir" +wk_dir = "/home/clare/GitHub/mdtf/wkdir/" u_file = xr.open_dataset(u_path) # xarray.Dataset print(u_file) print("================") -u_field = u_file['ua'].isel(time=slice(0, 500)) -print(u_field) +u_daily_avg = u_file['ua'].groupby("time.day").mean(dim='time') +print(u_daily_avg) print("================") -ans = u_field.groupby("time.day").mean(dim='time') -print(ans) -print("================") -print(f"ans.shape:\n{ans.shape}") +print(f"u_daily_avg.shape:\n{u_daily_avg.shape}") +output_file = f"{wk_dir}u_daily_avg.nc" +print(f"Start outputing file: {output_file}") +u_daily_avg.to_netcdf(f"{wk_dir}u_daily_avg.nc") +print(f"Finished outputing file: {output_file}") From d45dc46d23b2d70a3605a7bedb64b5359b841d44 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:30:09 -0500 Subject: [PATCH 009/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index b0d1d27be..bd291b721 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -14,11 +14,11 @@ u_file = xr.open_dataset(u_path) # xarray.Dataset print(u_file) print("================") -u_daily_avg = u_file['ua'].groupby("time.day").mean(dim='time') -print(u_daily_avg) +u_daily_resampled = u_file['ua'].ds.resample(time="1D") +print(u_daily_resampled) print("================") -print(f"u_daily_avg.shape:\n{u_daily_avg.shape}") -output_file = f"{wk_dir}u_daily_avg.nc" +print(f"u_daily_resampled.shape:\n{u_daily_resampled.shape}") +output_file = f"{wk_dir}u_daily_resampled.nc" print(f"Start outputing file: {output_file}") -u_daily_avg.to_netcdf(f"{wk_dir}u_daily_avg.nc") +u_daily_resampled.to_netcdf(f"{wk_dir}u_daily_resampled.nc") print(f"Finished outputing file: {output_file}") From 3d5c41096e3d23a6573e84b0a787a6346167d1ca Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:30:37 -0500 Subject: [PATCH 010/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index bd291b721..f9333eb8e 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -14,7 +14,7 @@ u_file = xr.open_dataset(u_path) # xarray.Dataset print(u_file) print("================") -u_daily_resampled = u_file['ua'].ds.resample(time="1D") +u_daily_resampled = u_file['ua'].resample(time="1D") print(u_daily_resampled) print("================") print(f"u_daily_resampled.shape:\n{u_daily_resampled.shape}") From 21ce25e4152b786816e4a1532fd10e305629be2b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:34:07 -0500 Subject: [PATCH 011/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index f9333eb8e..a1c5a1a80 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -14,7 +14,7 @@ u_file = xr.open_dataset(u_path) # xarray.Dataset print(u_file) print("================") -u_daily_resampled = u_file['ua'].resample(time="1D") +u_daily_resampled = u_file['ua'].resample(time="1D").mean() print(u_daily_resampled) print("================") print(f"u_daily_resampled.shape:\n{u_daily_resampled.shape}") From ccfd95243766a823298d3592c191b09ba3c3c122 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:46:07 -0500 Subject: [PATCH 012/178] daily_avg --- .../finite_amplitude_wave_diag/daily_avg.py | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index a1c5a1a80..d7fb4add0 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -11,14 +11,23 @@ wk_dir = "/home/clare/GitHub/mdtf/wkdir/" -u_file = xr.open_dataset(u_path) # xarray.Dataset -print(u_file) -print("================") -u_daily_resampled = u_file['ua'].resample(time="1D").mean() -print(u_daily_resampled) -print("================") -print(f"u_daily_resampled.shape:\n{u_daily_resampled.shape}") -output_file = f"{wk_dir}u_daily_resampled.nc" -print(f"Start outputing file: {output_file}") -u_daily_resampled.to_netcdf(f"{wk_dir}u_daily_resampled.nc") -print(f"Finished outputing file: {output_file}") +def output_daily_avg(input_path, output_file, varname="ua"): + input_file = xr.open_dataset(input_path) # xarray.Dataset + print(input_file) + print("================") + daily_resampled = input_file[varname].resample(time="1D").mean() + print(daily_resampled) + print("================") + print(f"daily_resampled.shape:\n{daily_resampled.shape}") + output_path = f"{wk_dir}{output_file}" + print(f"Start outputing file: {output_path}") + daily_resampled.to_netcdf(output_path) + print(f"Finished outputing file: {output_path}") + return output_path + + +if __name__ == '__main__': + u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") + v_output_path = output_daily_avg(u_path, "v_daily_mean.nc", varname="va") + t_output_path = output_daily_avg(u_path, "t_daily_mean.nc", varname="ta") + print("Finished full procedures") From 4897e80c397da0e28b8320641938ab77c6228b32 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 18 Aug 2023 21:51:17 -0500 Subject: [PATCH 013/178] daily_avg --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index d7fb4add0..39498d06e 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -27,7 +27,7 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': - u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") - v_output_path = output_daily_avg(u_path, "v_daily_mean.nc", varname="va") - t_output_path = output_daily_avg(u_path, "t_daily_mean.nc", varname="ta") + # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") + v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") + t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") print("Finished full procedures") From a370a58874249f362f73fa351691bae282cc391a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 18:44:00 -0500 Subject: [PATCH 014/178] add src/conda/env_finite_amplitude_wave_diag.yml --- src/conda/env_finite_amplitude_wave_diag.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index e89547807..2ab938adf 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -3,7 +3,6 @@ channels: - conda-forge - defaults dependencies: -- python=3.10 - pytest=7.4.0 - pip: - - hn2016_falwa + - hn2016_falwa=0.7.1 From 8741055702eaac87b8f86d324c90e140281bba8f Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 18:49:39 -0500 Subject: [PATCH 015/178] add back == --- src/conda/env_finite_amplitude_wave_diag.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 2ab938adf..64e1142b7 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -3,6 +3,6 @@ channels: - conda-forge - defaults dependencies: -- pytest=7.4.0 +- pytest==7.4.0 - pip: - - hn2016_falwa=0.7.1 + - hn2016_falwa==0.7.1 From eaa2960f85c90ec148863c625b38aeb67736ce3d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 18:52:53 -0500 Subject: [PATCH 016/178] try other dependencies --- src/conda/env_finite_amplitude_wave_diag.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 64e1142b7..127d305a3 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -3,6 +3,10 @@ channels: - conda-forge - defaults dependencies: +- python=3.10 +- numpy=1.22.3 +- netCDF4=1.5.8 +- xarray=2023.2.0 - pytest==7.4.0 - pip: - hn2016_falwa==0.7.1 From 036b80b56f0b10a37e406b1c73e194e3c50e27f7 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 18:57:34 -0500 Subject: [PATCH 017/178] try other dependencies --- src/conda/env_finite_amplitude_wave_diag.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 127d305a3..625680443 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -5,8 +5,10 @@ channels: dependencies: - python=3.10 - numpy=1.22.3 +- scipy=1.9 - netCDF4=1.5.8 - xarray=2023.2.0 - pytest==7.4.0 +- pip=22.0.4 - pip: - hn2016_falwa==0.7.1 From 109cd6563b2a5cd82a5e5009d99c9cfd02c97904 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 20:27:36 -0500 Subject: [PATCH 018/178] add dependencies --- .../finite_amplitude_wave_diag/daily_avg.py | 16 +++++++++++++--- src/conda/env_finite_amplitude_wave_diag.yml | 2 ++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 39498d06e..8837d5830 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -3,12 +3,15 @@ """ import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots - +from hn2016_falwa.xarrayinterface import QGDataset u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" wk_dir = "/home/clare/GitHub/mdtf/wkdir/" +u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" +v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" +t_daily_mean_path = f"{wk_dir}t_daily_mean.nc" def output_daily_avg(input_path, output_file, varname="ua"): @@ -28,6 +31,13 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") - v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") - t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") + # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") + # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") + data_u = xr.load_dataset(u_daily_mean_path) + data_v = xr.load_dataset(v_daily_mean_path) + data_t = xr.load_dataset(t_daily_mean_path) + qgds = QGDataset(data_u, data_v, data_t) + uvtinterp = qgds.interpolate_fields() + refstates = qgds.compute_reference_states() + print("Finished full procedures") diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 625680443..3b1ce270a 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -8,6 +8,8 @@ dependencies: - scipy=1.9 - netCDF4=1.5.8 - xarray=2023.2.0 +- cartopy=0.21.0 +- matplotlib=3.5.3 - pytest==7.4.0 - pip=22.0.4 - pip: From 8eb078033dc11c6432dd993e8ceaf5943ee4ff9d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 20:39:23 -0500 Subject: [PATCH 019/178] add var_names --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 8837d5830..1d4c7e579 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -30,13 +30,20 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': + var_names = { + 'plev': 'level', + 'ylat': 'lat', + 'xlon': 'lon', + 'u': 'ua', + 'v': 'va', + 't': 'ta'} # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") data_u = xr.load_dataset(u_daily_mean_path) data_v = xr.load_dataset(v_daily_mean_path) data_t = xr.load_dataset(t_daily_mean_path) - qgds = QGDataset(data_u, data_v, data_t) + qgds = QGDataset(data_u, data_v, data_t, var_names=var_names) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() From 61a619fd612ed1c0077d0afe01352db990e1a4a0 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 20:41:37 -0500 Subject: [PATCH 020/178] add var_names --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 1d4c7e579..3066c1954 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -34,16 +34,16 @@ def output_daily_avg(input_path, output_file, varname="ua"): 'plev': 'level', 'ylat': 'lat', 'xlon': 'lon', - 'u': 'ua', - 'v': 'va', - 't': 'ta'} + 'U': 'ua', + 'V': 'va', + 'T': 'ta'} # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") data_u = xr.load_dataset(u_daily_mean_path) data_v = xr.load_dataset(v_daily_mean_path) data_t = xr.load_dataset(t_daily_mean_path) - qgds = QGDataset(data_u, data_v, data_t, var_names=var_names) + qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names=var_names) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() From c23077ca0b1e9fc25db2ef148b3e23516680014e Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 19 Aug 2023 20:46:29 -0500 Subject: [PATCH 021/178] add var_names --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 3066c1954..e28640c89 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -34,9 +34,9 @@ def output_daily_avg(input_path, output_file, varname="ua"): 'plev': 'level', 'ylat': 'lat', 'xlon': 'lon', - 'U': 'ua', - 'V': 'va', - 'T': 'ta'} + 'u': 'ua', + 'v': 'va', + 't': 'ta'} # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") From 0502b7e9ff75308246ad3f4ee1ea5e1a45b33c8a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 09:37:30 -0500 Subject: [PATCH 022/178] extract 3 slices to local --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index e28640c89..32a853730 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -12,6 +12,9 @@ u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" t_daily_mean_path = f"{wk_dir}t_daily_mean.nc" +u_daily_mean_3steps_path = f"{wk_dir}u_daily_mean_3steps.nc" +v_daily_mean_3steps_path = f"{wk_dir}v_daily_mean_3steps.nc" +t_daily_mean_3steps_path = f"{wk_dir}t_daily_mean_3steps.nc" def output_daily_avg(input_path, output_file, varname="ua"): @@ -40,11 +43,8 @@ def output_daily_avg(input_path, output_file, varname="ua"): # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") - data_u = xr.load_dataset(u_daily_mean_path) - data_v = xr.load_dataset(v_daily_mean_path) - data_t = xr.load_dataset(t_daily_mean_path) - qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names=var_names) - uvtinterp = qgds.interpolate_fields() - refstates = qgds.compute_reference_states() + data_u = xr.open_dataset(u_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(u_daily_mean_3steps_path) + data_v = xr.open_dataset(v_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(v_daily_mean_3steps_path) + data_t = xr.open_dataset(t_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(t_daily_mean_3steps_path) print("Finished full procedures") From f21f12624950feeec183bef7a9b556a899d7242f Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 18:32:58 -0500 Subject: [PATCH 023/178] add --- .../finite_amplitude_wave_diag/daily_avg.py | 26 ++++------ .../daily_avg_model_notfinished.py | 50 +++++++++++++++++++ 2 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 32a853730..36da79e86 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -5,9 +5,10 @@ import matplotlib.pyplot as plt # python library we use to make plots from hn2016_falwa.xarrayinterface import QGDataset -u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" -v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" -t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" +data_dir = "/home/clare/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/" +u_path = f"{data_dir}era5_2022_u_component_of_wind.nc" +v_path = f"{data_dir}era5_2022_v_component_of_wind.nc" +t_path = f"{data_dir}era5_2022_temperature.nc" wk_dir = "/home/clare/GitHub/mdtf/wkdir/" u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" @@ -33,18 +34,9 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': - var_names = { - 'plev': 'level', - 'ylat': 'lat', - 'xlon': 'lon', - 'u': 'ua', - 'v': 'va', - 't': 'ta'} - # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") - # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") - # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") - data_u = xr.open_dataset(u_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(u_daily_mean_3steps_path) - data_v = xr.open_dataset(v_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(v_daily_mean_3steps_path) - data_t = xr.open_dataset(t_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(t_daily_mean_3steps_path) - + qgds = xr.open_mfdataset("era5_2022_[tuv].nc").resample(time="1D").mean() # get daily mean + print("Start interpolating.") + uvtinterp = qgds.interpolate_fields() + print("Finished interpolating. State reference state computation") + refstates = qgds.compute_reference_states() print("Finished full procedures") diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py b/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py new file mode 100644 index 000000000..32a853730 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py @@ -0,0 +1,50 @@ +""" +Compute daily average from sample files +""" +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots +from hn2016_falwa.xarrayinterface import QGDataset + +u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" +v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" +t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" +wk_dir = "/home/clare/GitHub/mdtf/wkdir/" +u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" +v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" +t_daily_mean_path = f"{wk_dir}t_daily_mean.nc" +u_daily_mean_3steps_path = f"{wk_dir}u_daily_mean_3steps.nc" +v_daily_mean_3steps_path = f"{wk_dir}v_daily_mean_3steps.nc" +t_daily_mean_3steps_path = f"{wk_dir}t_daily_mean_3steps.nc" + + +def output_daily_avg(input_path, output_file, varname="ua"): + input_file = xr.open_dataset(input_path) # xarray.Dataset + print(input_file) + print("================") + daily_resampled = input_file[varname].resample(time="1D").mean() + print(daily_resampled) + print("================") + print(f"daily_resampled.shape:\n{daily_resampled.shape}") + output_path = f"{wk_dir}{output_file}" + print(f"Start outputing file: {output_path}") + daily_resampled.to_netcdf(output_path) + print(f"Finished outputing file: {output_path}") + return output_path + + +if __name__ == '__main__': + var_names = { + 'plev': 'level', + 'ylat': 'lat', + 'xlon': 'lon', + 'u': 'ua', + 'v': 'va', + 't': 'ta'} + # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") + # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") + # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") + data_u = xr.open_dataset(u_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(u_daily_mean_3steps_path) + data_v = xr.open_dataset(v_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(v_daily_mean_3steps_path) + data_t = xr.open_dataset(t_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(t_daily_mean_3steps_path) + + print("Finished full procedures") From 9b7a675f1ba70c2f61b0ff27794b2cfddceef6c0 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 18:34:03 -0500 Subject: [PATCH 024/178] add missing line --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 36da79e86..37c1a94b8 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -34,7 +34,7 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': - qgds = xr.open_mfdataset("era5_2022_[tuv].nc").resample(time="1D").mean() # get daily mean + qgds = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc").resample(time="1D").mean() # get daily mean print("Start interpolating.") uvtinterp = qgds.interpolate_fields() print("Finished interpolating. State reference state computation") From 4ecc91b8562b83594e3aef43d8d0ce5fca59ed78 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 18:47:05 -0500 Subject: [PATCH 025/178] add dask --- src/conda/env_finite_amplitude_wave_diag.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 3b1ce270a..2764a340d 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -12,5 +12,6 @@ dependencies: - matplotlib=3.5.3 - pytest==7.4.0 - pip=22.0.4 +- dask - pip: - hn2016_falwa==0.7.1 From c709ad1f7d068a580d145377d14ff28a28bad1ea Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 19:00:39 -0500 Subject: [PATCH 026/178] add missing line --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 37c1a94b8..97a9c4d83 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -34,8 +34,9 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': - qgds = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc").resample(time="1D").mean() # get daily mean + data = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc").resample(time="1D").mean() # get daily mean print("Start interpolating.") + qgds = QGDataset(data) uvtinterp = qgds.interpolate_fields() print("Finished interpolating. State reference state computation") refstates = qgds.compute_reference_states() From b9c7d74b7cd2fe7f09e49bfc024eb0a580286a70 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 19:02:03 -0500 Subject: [PATCH 027/178] add missing --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 97a9c4d83..43b9f2c8d 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -34,7 +34,7 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': - data = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc").resample(time="1D").mean() # get daily mean + data = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc").resample(time="1D").mean(dim='time') # get daily mean print("Start interpolating.") qgds = QGDataset(data) uvtinterp = qgds.interpolate_fields() From 04260c445845948d26db21fbae226229f5e54cfd Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 20 Aug 2023 19:02:35 -0500 Subject: [PATCH 028/178] add missing --- diagnostics/finite_amplitude_wave_diag/daily_avg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/daily_avg.py index 43b9f2c8d..20b5c4080 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg.py @@ -34,7 +34,7 @@ def output_daily_avg(input_path, output_file, varname="ua"): if __name__ == '__main__': - data = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc").resample(time="1D").mean(dim='time') # get daily mean + data = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc") # get daily mean print("Start interpolating.") qgds = QGDataset(data) uvtinterp = qgds.interpolate_fields() From 957cf00e2327bea7ed39961a27caf74a04dc7887 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 18:47:46 -0500 Subject: [PATCH 029/178] tried on model data, found unphysical issues --- .../daily_avg_model_notfinished.py | 11 +-- .../gridfill_with_model_data.py | 86 +++++++++++++++++++ src/conda/env_finite_amplitude_wave_diag.yml | 4 +- 3 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py b/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py index 32a853730..f506032f6 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py @@ -1,14 +1,15 @@ """ -Compute daily average from sample files +Compute daily average from sample files. This is working on server """ +import os import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots from hn2016_falwa.xarrayinterface import QGDataset -u_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" -v_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" -t_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" -wk_dir = "/home/clare/GitHub/mdtf/wkdir/" +u_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" +v_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" +t_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" +wk_dir = f"{os.environ['HOME']}/GitHub/mdtf/wkdir/" u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" t_daily_mean_path = f"{wk_dir}t_daily_mean.nc" diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py b/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py new file mode 100644 index 000000000..ba6a18ec2 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py @@ -0,0 +1,86 @@ +""" +Attempt to work with daily mean data from daily_avg_model_notfinished.py +""" +import os +import xarray as xr +import gridfill +import numpy as np +import matplotlib.pyplot as plt +from hn2016_falwa.xarrayinterface import QGDataset +import scipy + +# These are local path to Clare's iMac +storage_path = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" +u_file = f"{storage_path}u_daily_mean_3steps.nc" +v_file = f"{storage_path}v_daily_mean_3steps.nc" +t_file = f"{storage_path}t_daily_mean_3steps.nc" + +interp_u_file = f"{storage_path}u_daily_mean_interp_3steps.nc" +interp_v_file = f"{storage_path}v_daily_mean_interp_3steps.nc" +interp_t_file = f"{storage_path}t_daily_mean_interp_3steps.nc" +output_interp = True + +coord_file = xr.open_dataset(u_file) +xlon = coord_file.coords['lon'] +ylat = coord_file.coords['lat'] +plev = coord_file.coords['level'] + + +def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): + """ + Apply gridfill to do interpolation on lat-lon grid using poisson solver, and then interpolate onto 1-degree grid + + Args: + lat_lon_field(np.ndarray): 2D array to apply gridfill on + itermax(int): maximum iteration for poisson solver + verbose(bool): verbose level of poisson solver + + Returns: + A 2D array of the same dimension with all nan filled. + """ + + lat_lon_filled, converged = gridfill.fill( + grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, + cyclic=True, itermax=itermax, verbose=verbose) + + return lat_lon_filled + + +if output_interp: + args_tuple = [(u_file, 'ua', interp_u_file), (v_file, 'va', interp_v_file), (t_file, 'ta', interp_t_file)] + for original_file, var_name, interp_file in args_tuple: + df = xr.open_dataset(original_file) + field_of_interest = df[var_name] + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[field_of_interest], + input_core_dims=(('lat', 'lon'),), + output_core_dims=(('lat', 'lon'),), + vectorize=True) + field_at_all_level = field_at_all_level.interp( + lat=np.arange(-90, 91), + kwargs={"fill_value": "extrapolate"}) + field_at_all_level.to_netcdf(interp_file) + print(f"Finished outputing {interp_file}") + +data = xr.open_mfdataset(f"{storage_path}[uvt]_daily_mean_interp_3steps.nc") +qgds = QGDataset(data, var_names={'u': 'ua', 'v': 'va', 't': 'ta'}, qgfield_kwargs={'northern_hemisphere_results_only': False}) + +uvtinterp = qgds.interpolate_fields() +refstates = qgds.compute_reference_states() +lwadiags = qgds.compute_lwa_and_barotropic_fluxes() + +# Problem encountered (2023/9/5) +# QGPV at k=0 are all 0 +# Check temperature in original file: +# coord_file.variables['ta'].isel(time=0).max(axis=-1).max(axis=-1) +# array([274.72104, 277.33417, 280.6038 , 277.43634, 276.58832, 275.09503, +# 262.54962, 272.56357, 281.4019 , 284.82413, 289.1702 , 295.15497, +# 300.94907, 304.54556, 306.85352, 308.36664, 309.40552, 310.41824, +# 310.63425, 310.75208, 310.814 , 310.87076, 310.94513], dtype=float32) +# coord_file.coords['level'].values +# array([1000., 925., 850., 775., 700., 600., 500., 400., 300., 250., +# 200., 150., 100., 70., 50., 30., 20., 10., 7., 5., +# 3., 2., 1.], dtype=float32) +# Something went wrong... + diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 2764a340d..3c945d8ba 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -1,7 +1,6 @@ name: _MDTF_finite_amplitude_wave_diag channels: - conda-forge -- defaults dependencies: - python=3.10 - numpy=1.22.3 @@ -13,5 +12,6 @@ dependencies: - pytest==7.4.0 - pip=22.0.4 - dask +- gridfill - pip: - - hn2016_falwa==0.7.1 + - hn2016_falwa==0.7.2 From b65c39198edb5c3359afad626ca8ff1315601585 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:38:27 -0500 Subject: [PATCH 030/178] add all --- .../download_t_era5.py | 52 ------------------ .../download_uvt_era5.py | 53 +++++++++++++++++++ .../finite_amplitude_wave_diag/era5_diag.py | 27 ++++++++++ .../export_env_var.sh | 10 ++++ 4 files changed, 90 insertions(+), 52 deletions(-) delete mode 100644 diagnostics/finite_amplitude_wave_diag/download_t_era5.py create mode 100644 diagnostics/finite_amplitude_wave_diag/download_uvt_era5.py create mode 100644 diagnostics/finite_amplitude_wave_diag/era5_diag.py create mode 100644 diagnostics/finite_amplitude_wave_diag/export_env_var.sh diff --git a/diagnostics/finite_amplitude_wave_diag/download_t_era5.py b/diagnostics/finite_amplitude_wave_diag/download_t_era5.py deleted file mode 100644 index e10a48811..000000000 --- a/diagnostics/finite_amplitude_wave_diag/download_t_era5.py +++ /dev/null @@ -1,52 +0,0 @@ -import cdsapi - -c = cdsapi.Client() - -c.retrieve( - 'reanalysis-era5-pressure-levels', - { - 'product_type': 'reanalysis', - 'format': 'netcdf', - 'pressure_level': [ - '1', '2', '3', - '5', '7', '10', - '20', '30', '50', - '70', '100', '125', - '150', '175', '200', - '225', '250', '300', - '350', '400', '450', - '500', '550', '600', - '650', '700', '750', - '775', '800', '825', - '850', '875', '900', - '925', '950', '975', - '1000', - ], - 'variable': 'temperature', - 'year': '2022', - 'month': [ - '01', '02', '03', - '04', '05', '06', - '07', '08', '09', - '10', '11', '12', - ], - 'day': [ - '01', '02', '03', - '04', '05', '06', - '07', '08', '09', - '10', '11', '12', - '13', '14', '15', - '16', '17', '18', - '19', '20', '21', - '22', '23', '24', - '25', '26', '27', - '28', '29', '30', - '31', - ], - 'time': [ - '00:00', '06:00', '12:00', - '18:00', - ], - 'anon_user_timestamp': '2023-07-31 18:00:58', - }, - 'download.nc') \ No newline at end of file diff --git a/diagnostics/finite_amplitude_wave_diag/download_uvt_era5.py b/diagnostics/finite_amplitude_wave_diag/download_uvt_era5.py new file mode 100644 index 000000000..dcbb5caea --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/download_uvt_era5.py @@ -0,0 +1,53 @@ +import cdsapi + +c = cdsapi.Client() + +tasks = [('u', 'u_component_of_wind'), ('v', 'v_component_of_wind'), ('t', 'temperature')] +year = 2022 + +for short, long in tasks: + c.retrieve( + 'reanalysis-era5-pressure-levels', + { + 'product_type': 'reanalysis', + 'format': 'netcdf', + 'pressure_level': [ + '1', '2', '3', + '5', '7', '10', + '20', '30', '50', + '70', '100', '125', + '150', '175', '200', + '225', '250', '300', + '350', '400', '450', + '500', '550', '600', + '650', '700', '750', + '775', '800', '825', + '850', '875', '900', + '925', '950', '975', + '1000', + ], + 'variable': 'temperature', + 'year': f'{year}', + 'month': [ + '01', '02', '03', + '04', '05', '06', + '07', '08', '09', + '10', '11', '12', + ], + 'day': [ + '01', '02', '03', + '04', '05', '06', + '07', '08', '09', + '10', '11', '12', + '13', '14', '15', + '16', '17', '18', + '19', '20', '21', + '22', '23', '24', + '25', '26', '27', + '28', '29', '30', + '31', + ], + 'time': ['00:00', '06:00', '12:00', '18:00'], + 'anon_user_timestamp': '2023-07-31 18:00:58', + }, + f'era5_{year}_{short}.nc') diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py new file mode 100644 index 000000000..73a2e5b7b --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -0,0 +1,27 @@ +import os +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots +from hn2016_falwa.xarrayinterface import QGDataset + +# 0) Get environment variables +input_u_path = os.environ["u_file"] +input_v_path = os.environ["v_file"] +input_t_path = os.environ["t_file"] +u_var_name = os.environ["u_var_name"] +v_var_name = os.environ["v_var_name"] +t_var_name = os.environ["t_var_name"] +time_coord_name = os.environ["time_coord"] +xlon_coord_name = os.environ["xlon_coord"] +ylat_coord_name = os.environ["ylat_coord"] +plev_coord_name = os.environ["plev_coord"] + +# 1) Loading model data files: +data_u = xr.load_dataset(input_u_path) +data_v = xr.load_dataset(input_v_path) +data_t = xr.load_dataset(input_t_path) + +# 2) Doing computations: +qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) +uvtinterp = qgds.interpolate_fields() +refstates = qgds.compute_reference_states() +lwadiags = qgds.compute_lwa_and_barotropic_fluxes() diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var.sh b/diagnostics/finite_amplitude_wave_diag/export_env_var.sh new file mode 100644 index 000000000..86f7596b9 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/export_env_var.sh @@ -0,0 +1,10 @@ +export u_file=$HOME/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/era5_2022_u.nc +export v_file=$HOME/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/era5_2022_v.nc +export t_file=$HOME/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/era5_2022_t.nc +export u_var_name=u +export v_var_name=v +export t_var_name=t +export time_coord=time +export xlon_coord=longitude +export ylat_coord=latitude +export plev_coord=level From b04b4bc29b035bdb78eea8bb4ddab2378f0fd8b1 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:44:02 -0500 Subject: [PATCH 031/178] season then daily mean --- diagnostics/finite_amplitude_wave_diag/era5_diag.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index 73a2e5b7b..c66d260d0 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -16,12 +16,13 @@ plev_coord_name = os.environ["plev_coord"] # 1) Loading model data files: -data_u = xr.load_dataset(input_u_path) -data_v = xr.load_dataset(input_v_path) -data_t = xr.load_dataset(input_t_path) +data_u = xr.load_dataset(input_u_path).sel(season='DJF').resample(time="1D").mean(dim="time") +data_v = xr.load_dataset(input_v_path).sel(season='DJF').resample(time="1D").mean(dim="time") +data_t = xr.load_dataset(input_t_path).sel(season='DJF').resample(time="1D").mean(dim="time") # 2) Doing computations: qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() lwadiags = qgds.compute_lwa_and_barotropic_fluxes() +print("Finished") From af9310a22b3617420bbac42f6607a82995554f44 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:44:56 -0500 Subject: [PATCH 032/178] open_dataset --- diagnostics/finite_amplitude_wave_diag/era5_diag.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index c66d260d0..27ef8dc18 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -16,9 +16,9 @@ plev_coord_name = os.environ["plev_coord"] # 1) Loading model data files: -data_u = xr.load_dataset(input_u_path).sel(season='DJF').resample(time="1D").mean(dim="time") -data_v = xr.load_dataset(input_v_path).sel(season='DJF').resample(time="1D").mean(dim="time") -data_t = xr.load_dataset(input_t_path).sel(season='DJF').resample(time="1D").mean(dim="time") +data_u = xr.open_dataset(input_u_path).sel(season='DJF').resample(time="1D").mean(dim="time") +data_v = xr.open_dataset(input_v_path).sel(season='DJF').resample(time="1D").mean(dim="time") +data_t = xr.open_dataset(input_t_path).sel(season='DJF').resample(time="1D").mean(dim="time") # 2) Doing computations: qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) From 373b83d27206af6dae5aa7632ffc4f22df858cea Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:47:35 -0500 Subject: [PATCH 033/178] open_dataset --- .../finite_amplitude_wave_diag/era5_diag.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index 27ef8dc18..7ddb7bf5f 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -16,9 +16,14 @@ plev_coord_name = os.environ["plev_coord"] # 1) Loading model data files: -data_u = xr.open_dataset(input_u_path).sel(season='DJF').resample(time="1D").mean(dim="time") -data_v = xr.open_dataset(input_v_path).sel(season='DJF').resample(time="1D").mean(dim="time") -data_t = xr.open_dataset(input_t_path).sel(season='DJF').resample(time="1D").mean(dim="time") +data_u = xr.open_dataset(input_u_path) +data_v = xr.open_dataset(input_v_path) +data_t = xr.open_dataset(input_t_path) + +# Select DJF and do daily mean +data_u = data_u.sel(time=data_u.time.dt.month.isin([1, 2, 12])).resample(time="1D").mean(dim="time") +data_v = data_v.sel(time=data_v.time.dt.month.isin([1, 2, 12])).resample(time="1D").mean(dim="time") +data_t = data_t.sel(time=data_t.time.dt.month.isin([1, 2, 12])).resample(time="1D").mean(dim="time") # 2) Doing computations: qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) @@ -26,3 +31,6 @@ refstates = qgds.compute_reference_states() lwadiags = qgds.compute_lwa_and_barotropic_fluxes() print("Finished") + + +data.sel(time=data.time.dt.month.isin([1, 2, 3, 10, 11, 12])) From 7e2fa6a8293dc51036fb7a79e1ecfd21187a04ac Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:49:22 -0500 Subject: [PATCH 034/178] open_dataset --- .../finite_amplitude_wave_diag/era5_diag.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index 7ddb7bf5f..68a284379 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -21,16 +21,16 @@ data_t = xr.open_dataset(input_t_path) # Select DJF and do daily mean -data_u = data_u.sel(time=data_u.time.dt.month.isin([1, 2, 12])).resample(time="1D").mean(dim="time") -data_v = data_v.sel(time=data_v.time.dt.month.isin([1, 2, 12])).resample(time="1D").mean(dim="time") -data_t = data_t.sel(time=data_t.time.dt.month.isin([1, 2, 12])).resample(time="1D").mean(dim="time") +# selected_months = [1, 2, 12] +print("Start computing daily mean.") +selected_months = [1] +data_u = data_u.sel(time=data_u.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +data_v = data_v.sel(time=data_v.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +data_t = data_t.sel(time=data_t.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # 2) Doing computations: +print("Start QGDataset calculation.") qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() -lwadiags = qgds.compute_lwa_and_barotropic_fluxes() print("Finished") - - -data.sel(time=data.time.dt.month.isin([1, 2, 3, 10, 11, 12])) From 48dfe21910333d652d30cb132868367e147fee16 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:54:57 -0500 Subject: [PATCH 035/178] open_dataset --- .../finite_amplitude_wave_diag/era5_diag.py | 16 +++++++++++++--- .../finite_amplitude_wave_diag/export_env_var.sh | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index 68a284379..d7153a4e5 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -4,6 +4,7 @@ from hn2016_falwa.xarrayinterface import QGDataset # 0) Get environment variables +wkdir = os.environ['wkdir'] input_u_path = os.environ["u_file"] input_v_path = os.environ["v_file"] input_t_path = os.environ["t_file"] @@ -24,13 +25,22 @@ # selected_months = [1, 2, 12] print("Start computing daily mean.") selected_months = [1] -data_u = data_u.sel(time=data_u.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -data_v = data_v.sel(time=data_v.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -data_t = data_t.sel(time=data_t.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# data_u = data_u.sel(time=data_u.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# data_v = data_v.sel(time=data_v.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# data_t = data_t.sel(time=data_t.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +data_u = data_u.sel(time=0) +data_v = data_v.sel(time=0) +data_t = data_t.sel(time=0) # 2) Doing computations: print("Start QGDataset calculation.") qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() +print(refstates) print("Finished") + +# 3) Saving output data: +out_path = f"{wkdir}/refstates.nc" + + diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var.sh b/diagnostics/finite_amplitude_wave_diag/export_env_var.sh index 86f7596b9..d5b259853 100644 --- a/diagnostics/finite_amplitude_wave_diag/export_env_var.sh +++ b/diagnostics/finite_amplitude_wave_diag/export_env_var.sh @@ -8,3 +8,4 @@ export time_coord=time export xlon_coord=longitude export ylat_coord=latitude export plev_coord=level +export wkdir=$HOME/clare/GitHub/mdtf/wkdir \ No newline at end of file From cf3dcce2a2bbbe025bd090ea9a5b2e55c5e1796e Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:55:42 -0500 Subject: [PATCH 036/178] open_dataset --- diagnostics/finite_amplitude_wave_diag/era5_diag.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index d7153a4e5..a0e7d69d7 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -28,9 +28,9 @@ # data_u = data_u.sel(time=data_u.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # data_v = data_v.sel(time=data_v.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # data_t = data_t.sel(time=data_t.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -data_u = data_u.sel(time=0) -data_v = data_v.sel(time=0) -data_t = data_t.sel(time=0) +data_u = data_u.isel(time=0) +data_v = data_v.isel(time=0) +data_t = data_t.isel(time=0) # 2) Doing computations: print("Start QGDataset calculation.") From 21e2571668a70dafd7d751327e41e12555344db4 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:57:22 -0500 Subject: [PATCH 037/178] open_dataset --- diagnostics/finite_amplitude_wave_diag/era5_diag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index a0e7d69d7..2ef5d3cfd 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -34,7 +34,7 @@ # 2) Doing computations: print("Start QGDataset calculation.") -qgds = QGDataset(data_u, data_v, data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) +qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() print(refstates) From 3efa87bba75158091a56757f7549866c6effd052 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 20:58:56 -0500 Subject: [PATCH 038/178] open_dataset --- diagnostics/finite_amplitude_wave_diag/era5_diag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag.py index 2ef5d3cfd..571ee0e69 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag.py @@ -34,7 +34,7 @@ # 2) Doing computations: print("Start QGDataset calculation.") -qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) +qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": "u", "v": "v", "t": "t"}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() print(refstates) From fd4a051abb3765c4ab3508527d7f8d8f77f38530 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:23:16 -0500 Subject: [PATCH 039/178] split files --- .../era5_diag_original.py | 79 +++++++++++++++++++ .../{era5_diag.py => era5_diag_xarray.py} | 2 + 2 files changed, 81 insertions(+) create mode 100644 diagnostics/finite_amplitude_wave_diag/era5_diag_original.py rename diagnostics/finite_amplitude_wave_diag/{era5_diag.py => era5_diag_xarray.py} (95%) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py new file mode 100644 index 000000000..cb2a5ac40 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -0,0 +1,79 @@ +import os +import sys +sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") +import math +import numpy as np +import xarray as xr +import matplotlib.pyplot as plt +from hn2016_falwa.oopinterface import QGFieldNH18 +import hn2016_falwa.utilities as utilities + +# 0) Get environment variables +wkdir = os.environ['wkdir'] +input_u_path = os.environ["u_file"] +input_v_path = os.environ["v_file"] +input_t_path = os.environ["t_file"] +u_var_name = os.environ["u_var_name"] +v_var_name = os.environ["v_var_name"] +t_var_name = os.environ["t_var_name"] +time_coord_name = os.environ["time_coord"] +xlon_coord_name = os.environ["xlon_coord"] +ylat_coord_name = os.environ["ylat_coord"] +plev_coord_name = os.environ["plev_coord"] + +# 1) Loading model data files: +u_file = xr.open_dataset(input_u_path) +v_file = xr.open_dataset(input_v_path) +t_file = xr.open_dataset(input_t_path) + +# Select DJF and do daily mean +# selected_months = [1, 2, 12] +print("Start computing daily mean.") +selected_months = [1] +# u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +u_file = u_file.isel(time=0) +v_file = v_file.isel(time=0) +t_file = t_file.isel(time=0) + +# 2) Doing computations: +print("Set coordinates") +ntimes = u_file.time.size +time_array = u_file.time +xlon = u_file.longitude.values + +# latitude has to be in ascending order +print(u_file.latitude) +ylat = u_file.latitude.values +if np.diff(ylat)[0] < 0: + print('Flip ylat.') + ylat = ylat[::-1] + +# pressure level has to be in descending order (ascending height) +print(u_file.level) +plev = u_file.level.values +if np.diff(plev)[0] > 0: + print('Flip plev.') + plev = plev[::-1] + +nlon = xlon.size +nlat = ylat.size +nlev = plev.size + +print("Start QGDataset calculation.") +tstep = 0 + +# 3) Saving output data: +out_path = f"{wkdir}/refstates.nc" +uu = u_file.u.isel(time=tstep).values[::-1, ::-1, :] +vv = v_file.v.isel(time=tstep).values[::-1, ::-1, :] +tt = t_file.t.isel(time=tstep).values[::-1, ::-1, :] +qgfield_object = QGFieldNH18(xlon, ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) +qgfield_object.interpolate_fields(return_named_tuple=False) +qgfield_object.compute_reference_states(return_named_tuple=False) +qgfield_object.compute_lwa_and_barotropic_fluxes(return_named_tuple=False) +print("Finished") + + + diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_xarray.py similarity index 95% rename from diagnostics/finite_amplitude_wave_diag/era5_diag.py rename to diagnostics/finite_amplitude_wave_diag/era5_diag_xarray.py index 571ee0e69..a40df9da1 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_xarray.py @@ -1,7 +1,9 @@ import os +import sys import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots from hn2016_falwa.xarrayinterface import QGDataset +sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") # 0) Get environment variables wkdir = os.environ['wkdir'] From 57e60639c5bcdd0ec606e9b7e0371fa8470f5c49 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:24:56 -0500 Subject: [PATCH 040/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index cb2a5ac40..6569f9054 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -66,9 +66,9 @@ # 3) Saving output data: out_path = f"{wkdir}/refstates.nc" -uu = u_file.u.isel(time=tstep).values[::-1, ::-1, :] -vv = v_file.v.isel(time=tstep).values[::-1, ::-1, :] -tt = t_file.t.isel(time=tstep).values[::-1, ::-1, :] +uu = u_file.u.values[::-1, ::-1, :] +vv = v_file.v.values[::-1, ::-1, :] +tt = t_file.t.values[::-1, ::-1, :] qgfield_object = QGFieldNH18(xlon, ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) qgfield_object.interpolate_fields(return_named_tuple=False) qgfield_object.compute_reference_states(return_named_tuple=False) From 1b1c09e5b3fa4fe4ff9699e6d57e4cb457a85a75 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:27:16 -0500 Subject: [PATCH 041/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 6569f9054..3f7b0094a 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -29,13 +29,14 @@ # Select DJF and do daily mean # selected_months = [1, 2, 12] print("Start computing daily mean.") +tstep = 100 selected_months = [1] # u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -u_file = u_file.isel(time=0) -v_file = v_file.isel(time=0) -t_file = t_file.isel(time=0) +u_file = u_file.isel(time=tstep) +v_file = v_file.isel(time=tstep) +t_file = t_file.isel(time=tstep) # 2) Doing computations: print("Set coordinates") @@ -62,7 +63,6 @@ nlev = plev.size print("Start QGDataset calculation.") -tstep = 0 # 3) Saving output data: out_path = f"{wkdir}/refstates.nc" From b77f17ccf48f67cb5f60ef155d7875af8cc29815 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:29:02 -0500 Subject: [PATCH 042/178] retry --- diagnostics/finite_amplitude_wave_diag/era5_diag_original.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 3f7b0094a..5461cc9a9 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -5,7 +5,7 @@ import numpy as np import xarray as xr import matplotlib.pyplot as plt -from hn2016_falwa.oopinterface import QGFieldNH18 +from hn2016_falwa.oopinterface import QGFieldNHN22 import hn2016_falwa.utilities as utilities # 0) Get environment variables @@ -69,7 +69,7 @@ uu = u_file.u.values[::-1, ::-1, :] vv = v_file.v.values[::-1, ::-1, :] tt = t_file.t.values[::-1, ::-1, :] -qgfield_object = QGFieldNH18(xlon, ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) +qgfield_object = QGFieldNHN22(xlon, ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) qgfield_object.interpolate_fields(return_named_tuple=False) qgfield_object.compute_reference_states(return_named_tuple=False) qgfield_object.compute_lwa_and_barotropic_fluxes(return_named_tuple=False) From 5c7186ff088e2cda1bca061af37720f8e700b570 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:36:50 -0500 Subject: [PATCH 043/178] retry --- .../era5_diag_original.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 5461cc9a9..5329be2fa 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -31,37 +31,35 @@ print("Start computing daily mean.") tstep = 100 selected_months = [1] -# u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -# v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -# t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -u_file = u_file.isel(time=tstep) -v_file = v_file.isel(time=tstep) -t_file = t_file.isel(time=tstep) # 2) Doing computations: print("Set coordinates") ntimes = u_file.time.size time_array = u_file.time xlon = u_file.longitude.values - # latitude has to be in ascending order print(u_file.latitude) ylat = u_file.latitude.values if np.diff(ylat)[0] < 0: print('Flip ylat.') ylat = ylat[::-1] - # pressure level has to be in descending order (ascending height) print(u_file.level) plev = u_file.level.values if np.diff(plev)[0] > 0: print('Flip plev.') plev = plev[::-1] - nlon = xlon.size nlat = ylat.size nlev = plev.size +# u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +# t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") +u_file = u_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact") +v_file = v_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact") +t_file = t_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact") + print("Start QGDataset calculation.") # 3) Saving output data: From 9dc3a02656e2c5ff558f201a0f914e920d852a6d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:38:17 -0500 Subject: [PATCH 044/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 5329be2fa..ded1fd62d 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -56,9 +56,9 @@ # u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -u_file = u_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact") -v_file = v_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact") -t_file = t_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact") +u_file = u_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact").mean() +v_file = v_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact").mean() +t_file = t_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact").mean() print("Start QGDataset calculation.") From 6fbda41ea7ba1e03fd23094ba81c8ee4d4f22a26 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:42:19 -0500 Subject: [PATCH 045/178] retry --- .../era5_diag_original.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index ded1fd62d..80528ab8d 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -56,18 +56,20 @@ # u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -u_file = u_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact").mean() -v_file = v_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact").mean() -t_file = t_file.isel(time=tstep).coarsen({'latitutde': 4, 'longitude': 4}, boundary="exact").mean() +new_xlon = np.arange(0, 360) +new_ylat = np.arange(-90, 91) +data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") print("Start QGDataset calculation.") # 3) Saving output data: out_path = f"{wkdir}/refstates.nc" -uu = u_file.u.values[::-1, ::-1, :] -vv = v_file.v.values[::-1, ::-1, :] -tt = t_file.t.values[::-1, ::-1, :] -qgfield_object = QGFieldNHN22(xlon, ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) +uu = data_u.u.values[::-1, :, :] +vv = data_v.v.values[::-1, :, :] +tt = data_t.t.values[::-1, :, :] +qgfield_object = QGFieldNHN22(new_xlon, new_ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) qgfield_object.interpolate_fields(return_named_tuple=False) qgfield_object.compute_reference_states(return_named_tuple=False) qgfield_object.compute_lwa_and_barotropic_fluxes(return_named_tuple=False) From 730716d395798effb3900a0b4a1d5f711d45202a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:43:11 -0500 Subject: [PATCH 046/178] retry --- diagnostics/finite_amplitude_wave_diag/era5_diag_original.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 80528ab8d..f7484356e 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -61,6 +61,9 @@ data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") +print("Examine data_u:") +print(data_u) +print(data_u.coords['latitude']) print("Start QGDataset calculation.") From d40275412511a2510affdfb7ff8d0ffd79ffb46f Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:47:56 -0500 Subject: [PATCH 047/178] retry --- .../era5_diag_original.py | 42 +++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index f7484356e..fcc3c1909 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -6,7 +6,7 @@ import xarray as xr import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22 -import hn2016_falwa.utilities as utilities +from hn2016_falwa.xarrayinterface import QGDataset # 0) Get environment variables wkdir = os.environ['wkdir'] @@ -53,30 +53,46 @@ nlat = ylat.size nlev = plev.size +selected_months = [1] # u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") # t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") new_xlon = np.arange(0, 360) new_ylat = np.arange(-90, 91) -data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") + +print("Compute daily average and interp onto coarser grid.") +data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ + .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_v = v_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ + .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ + .interp(latitude=new_ylat, longitude=new_xlon, method="linear") + print("Examine data_u:") print(data_u) print(data_u.coords['latitude']) -print("Start QGDataset calculation.") - # 3) Saving output data: out_path = f"{wkdir}/refstates.nc" -uu = data_u.u.values[::-1, :, :] -vv = data_v.v.values[::-1, :, :] -tt = data_t.t.values[::-1, :, :] -qgfield_object = QGFieldNHN22(new_xlon, new_ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) -qgfield_object.interpolate_fields(return_named_tuple=False) -qgfield_object.compute_reference_states(return_named_tuple=False) -qgfield_object.compute_lwa_and_barotropic_fluxes(return_named_tuple=False) +old_interface = False + +print("=== Start QGDataset calculation ===") +qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": "u", "v": "v", "t": "t"}) +uvtinterp = qgds.interpolate_fields() +refstates = qgds.compute_reference_states() +print(refstates) print("Finished") +if old_interface: + uu = data_u.u.values[::-1, :, :] + vv = data_v.v.values[::-1, :, :] + tt = data_t.t.values[::-1, :, :] + qgfield_object = QGFieldNHN22(new_xlon, new_ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) + qgfield_object.interpolate_fields(return_named_tuple=False) + qgfield_object.compute_reference_states(return_named_tuple=False) + qgfield_object.compute_lwa_and_barotropic_fluxes(return_named_tuple=False) + print("Finished") + + From d92ea9d086d806f48b92c5fdc5f295ad6b37bd67 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:57:32 -0500 Subject: [PATCH 048/178] retry --- .../era5_diag_original.py | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index fcc3c1909..c25388f0f 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -54,36 +54,44 @@ nlev = plev.size selected_months = [1] -# u_file = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -# v_file = v_file.sel(time=v_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -# t_file = t_file.sel(time=t_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") new_xlon = np.arange(0, 360) new_ylat = np.arange(-90, 91) print("Compute daily average and interp onto coarser grid.") -data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ +data_u = u_file.isel(time=np.arange(1, 11)).resample(time="1D").mean(dim="time")\ .interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_v = v_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ +data_v = v_file.isel(time=np.arange(1, 11)).resample(time="1D").mean(dim="time")\ .interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ +data_t = t_file.isel(time=np.arange(1, 11)).resample(time="1D").mean(dim="time")\ .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +# data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ +# .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +# data_v = v_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ +# .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +# data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ +# .interp(latitude=new_ylat, longitude=new_xlon, method="linear") + print("Examine data_u:") print(data_u) print(data_u.coords['latitude']) # 3) Saving output data: out_path = f"{wkdir}/refstates.nc" -old_interface = False print("=== Start QGDataset calculation ===") -qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": "u", "v": "v", "t": "t"}) +qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() +print("Examine refstates:") print(refstates) +lwadiags = qgds.compute_lwa_and_barotropic_fluxes() +lwadiags = lwadiags[["lwa_baro", "u_baro", "lwa"]] +print(f"Start outputing to the file: {out_path}") +xr.merge([refstates, lwadiags]).to_netcdf(out_path) print("Finished") - +old_interface = False if old_interface: uu = data_u.u.values[::-1, :, :] vv = data_v.v.values[::-1, :, :] From eae22e1c8d4ad7e487a89a59df29632ab02a8026 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 21:59:46 -0500 Subject: [PATCH 049/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index c25388f0f..10a8c300e 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -58,12 +58,10 @@ new_ylat = np.arange(-90, 91) print("Compute daily average and interp onto coarser grid.") -data_u = u_file.isel(time=np.arange(1, 11)).resample(time="1D").mean(dim="time")\ - .interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_v = v_file.isel(time=np.arange(1, 11)).resample(time="1D").mean(dim="time")\ - .interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_t = t_file.isel(time=np.arange(1, 11)).resample(time="1D").mean(dim="time")\ - .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +tstep = 1 +data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") # data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ # .interp(latitude=new_ylat, longitude=new_xlon, method="linear") From 63818e424037ffe96992fe955652a072444fc2a9 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:03:36 -0500 Subject: [PATCH 050/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 8 ++++---- diagnostics/finite_amplitude_wave_diag/export_env_var.sh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 10a8c300e..aaadb5871 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -59,9 +59,9 @@ print("Compute daily average and interp onto coarser grid.") tstep = 1 -data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") -data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="linear") +data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="nearest") # data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ # .interp(latitude=new_ylat, longitude=new_xlon, method="linear") @@ -75,7 +75,7 @@ print(data_u.coords['latitude']) # 3) Saving output data: -out_path = f"{wkdir}/refstates.nc" +out_path = f"{wkdir}/refstates_output.nc" print("=== Start QGDataset calculation ===") qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var.sh b/diagnostics/finite_amplitude_wave_diag/export_env_var.sh index d5b259853..d9b9a858c 100644 --- a/diagnostics/finite_amplitude_wave_diag/export_env_var.sh +++ b/diagnostics/finite_amplitude_wave_diag/export_env_var.sh @@ -8,4 +8,4 @@ export time_coord=time export xlon_coord=longitude export ylat_coord=latitude export plev_coord=level -export wkdir=$HOME/clare/GitHub/mdtf/wkdir \ No newline at end of file +export wkdir=$HOME/GitHub/mdtf/wkdir \ No newline at end of file From 49cfbb6ab52eb9c13c307c2dfec13df058578129 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:05:47 -0500 Subject: [PATCH 051/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index aaadb5871..f692e318b 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -58,10 +58,10 @@ new_ylat = np.arange(-90, 91) print("Compute daily average and interp onto coarser grid.") -tstep = 1 -data_u = u_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_v = v_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_t = t_file.isel(time=tstep).interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +tsteps = np.arange(10) +data_u = u_file.isel(time=tsteps).groupby("time.day").mean(dim='time').interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +data_v = v_file.isel(time=tsteps).groupby("time.day").mean(dim='time').interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +data_t = t_file.isel(time=tsteps).groupby("time.day").mean(dim='time').interp(latitude=new_ylat, longitude=new_xlon, method="nearest") # data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ # .interp(latitude=new_ylat, longitude=new_xlon, method="linear") From 463d4391d381dfabd4c687c8d7a34790f3e74346 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:16:27 -0500 Subject: [PATCH 052/178] test for one month --- .../era5_diag_original.py | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index f692e318b..00cb41e86 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -1,3 +1,4 @@ +# TODO: replace all with env variables import os import sys sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") @@ -53,22 +54,19 @@ nlat = ylat.size nlev = plev.size -selected_months = [1] + new_xlon = np.arange(0, 360) new_ylat = np.arange(-90, 91) print("Compute daily average and interp onto coarser grid.") -tsteps = np.arange(10) -data_u = u_file.isel(time=tsteps).groupby("time.day").mean(dim='time').interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_v = v_file.isel(time=tsteps).groupby("time.day").mean(dim='time').interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_t = t_file.isel(time=tsteps).groupby("time.day").mean(dim='time').interp(latitude=new_ylat, longitude=new_xlon, method="nearest") - -# data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ -# .interp(latitude=new_ylat, longitude=new_xlon, method="linear") -# data_v = v_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ -# .interp(latitude=new_ylat, longitude=new_xlon, method="linear") -# data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time")\ -# .interp(latitude=new_ylat, longitude=new_xlon, method="linear") +# selected_months = [1, 2, 12] # DJF +selected_months = [1] # TODO testing +data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ + .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +data_v = v_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ + .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") +data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ + .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") print("Examine data_u:") print(data_u) @@ -85,20 +83,19 @@ print(refstates) lwadiags = qgds.compute_lwa_and_barotropic_fluxes() lwadiags = lwadiags[["lwa_baro", "u_baro", "lwa"]] +# TODO: interpolate back onto original grid? +print("Compute seasonal average:") +seasonal_average = xr.merge([refstates, lwadiags]).mean(dim=time_coord_name) +print(seasonal_average) print(f"Start outputing to the file: {out_path}") -xr.merge([refstates, lwadiags]).to_netcdf(out_path) +seasonal_average.to_netcdf(out_path) print("Finished") -old_interface = False -if old_interface: - uu = data_u.u.values[::-1, :, :] - vv = data_v.v.values[::-1, :, :] - tt = data_t.t.values[::-1, :, :] - qgfield_object = QGFieldNHN22(new_xlon, new_ylat, plev, uu, vv, tt, northern_hemisphere_results_only=False) - qgfield_object.interpolate_fields(return_named_tuple=False) - qgfield_object.compute_reference_states(return_named_tuple=False) - qgfield_object.compute_lwa_and_barotropic_fluxes(return_named_tuple=False) - print("Finished") - +# 4) Saving output plots: +# 5) Loading obs data files & plotting obs figures +# 6) Cleaning up: +u_file.close() +v_file.close() +t_file.close() From fe03ea55af88ea98ff468fe23fce5a9149537d92 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:18:54 -0500 Subject: [PATCH 053/178] print out time --- .../era5_diag_original.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 00cb41e86..9fe67688c 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -2,7 +2,7 @@ import os import sys sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") -import math +import time import numpy as np import xarray as xr import matplotlib.pyplot as plt @@ -58,7 +58,7 @@ new_xlon = np.arange(0, 360) new_ylat = np.arange(-90, 91) -print("Compute daily average and interp onto coarser grid.") +print(f"Compute daily average and interp onto coarser grid. Time: {time.time()}") # selected_months = [1, 2, 12] # DJF selected_months = [1] # TODO testing data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ @@ -68,26 +68,26 @@ data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -print("Examine data_u:") +print(f"Finished computing daily average and interp onto coarser grid. Time: {time.time()}.\nExamine data_u:") print(data_u) print(data_u.coords['latitude']) # 3) Saving output data: out_path = f"{wkdir}/refstates_output.nc" -print("=== Start QGDataset calculation ===") +print(f"Start QGDataset calculation. Time: {time.time()}.") qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() -print("Examine refstates:") +print(f"Examine refstates. Time: {time.time()}.") print(refstates) lwadiags = qgds.compute_lwa_and_barotropic_fluxes() lwadiags = lwadiags[["lwa_baro", "u_baro", "lwa"]] # TODO: interpolate back onto original grid? -print("Compute seasonal average:") +print(f"Compute seasonal average. Time: {time.time()}.") seasonal_average = xr.merge([refstates, lwadiags]).mean(dim=time_coord_name) print(seasonal_average) -print(f"Start outputing to the file: {out_path}") +print(f"Start outputing to the file: {out_path}. Time: {time.time()}.") seasonal_average.to_netcdf(out_path) print("Finished") From ac56ec080da5b355471877d48b72d4eb9627c4b4 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:20:12 -0500 Subject: [PATCH 054/178] use datetime --- .../era5_diag_original.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 9fe67688c..2db5a2194 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -5,6 +5,7 @@ import time import numpy as np import xarray as xr +import datetime import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22 from hn2016_falwa.xarrayinterface import QGDataset @@ -58,7 +59,7 @@ new_xlon = np.arange(0, 360) new_ylat = np.arange(-90, 91) -print(f"Compute daily average and interp onto coarser grid. Time: {time.time()}") +print(f"Compute daily average and interp onto coarser grid. Time: {datetime.datetime.now()}") # selected_months = [1, 2, 12] # DJF selected_months = [1] # TODO testing data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ @@ -68,26 +69,26 @@ data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -print(f"Finished computing daily average and interp onto coarser grid. Time: {time.time()}.\nExamine data_u:") +print(f"Finished computing daily average and interp onto coarser grid. Time: {datetime.datetime.now()}.\nExamine data_u:") print(data_u) print(data_u.coords['latitude']) # 3) Saving output data: out_path = f"{wkdir}/refstates_output.nc" -print(f"Start QGDataset calculation. Time: {time.time()}.") +print(f"Start QGDataset calculation. Time: {datetime.datetime.now()}.") qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() -print(f"Examine refstates. Time: {time.time()}.") +print(f"Examine refstates. Time: {datetime.datetime.now()}.") print(refstates) lwadiags = qgds.compute_lwa_and_barotropic_fluxes() lwadiags = lwadiags[["lwa_baro", "u_baro", "lwa"]] # TODO: interpolate back onto original grid? -print(f"Compute seasonal average. Time: {time.time()}.") +print(f"Compute seasonal average. Time: {datetime.datetime.now()}.") seasonal_average = xr.merge([refstates, lwadiags]).mean(dim=time_coord_name) print(seasonal_average) -print(f"Start outputing to the file: {out_path}. Time: {time.time()}.") +print(f"Start outputing to the file: {out_path}. Time: {datetime.datetime.now()}.") seasonal_average.to_netcdf(out_path) print("Finished") From 6c24d58c95371d89cb30fdf38aeca75602c967e1 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:55:07 -0500 Subject: [PATCH 055/178] retry --- .../finite_amplitude_wave_diag/era5_diag_original.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 2db5a2194..76eee1348 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -62,11 +62,12 @@ print(f"Compute daily average and interp onto coarser grid. Time: {datetime.datetime.now()}") # selected_months = [1, 2, 12] # DJF selected_months = [1] # TODO testing -data_u = u_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ +time_selected = u_file.time.dt.month.isin(selected_months) +data_u = u_file.sel(time=time_selected).resample(time="1D").mean()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_v = v_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ +data_v = v_file.sel(time=time_selected).resample(time="1D").mean()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_t = t_file.sel(time=u_file.time.dt.month.isin(selected_months)).groupby("time.day").mean(dim='time')\ +data_t = t_file.sel(time=time_selected).resample(time="1D").mean()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") print(f"Finished computing daily average and interp onto coarser grid. Time: {datetime.datetime.now()}.\nExamine data_u:") From 865b115947dad95db310f53e3c2e2a274608b428 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 22:58:24 -0500 Subject: [PATCH 056/178] method="nearest" --- .../finite_amplitude_wave_diag/era5_diag_original.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 76eee1348..61983658c 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -63,11 +63,11 @@ # selected_months = [1, 2, 12] # DJF selected_months = [1] # TODO testing time_selected = u_file.time.dt.month.isin(selected_months) -data_u = u_file.sel(time=time_selected).resample(time="1D").mean()\ +data_u = u_file.sel(time=time_selected).resample(time="1D").first()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_v = v_file.sel(time=time_selected).resample(time="1D").mean()\ +data_v = v_file.sel(time=time_selected).resample(time="1D").first()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_t = t_file.sel(time=time_selected).resample(time="1D").mean()\ +data_t = t_file.sel(time=time_selected).resample(time="1D").first()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") print(f"Finished computing daily average and interp onto coarser grid. Time: {datetime.datetime.now()}.\nExamine data_u:") From 69aef56a1bbf47e0d94909b2681d764ec99d6239 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Sep 2023 23:04:22 -0500 Subject: [PATCH 057/178] run in background to time --- .../era5_diag_original.py | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 61983658c..ab2ab5e38 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -2,7 +2,6 @@ import os import sys sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") -import time import numpy as np import xarray as xr import datetime @@ -28,6 +27,11 @@ v_file = xr.open_dataset(input_v_path) t_file = xr.open_dataset(input_t_path) + +def print_process_time(process): + print(f"{process}. Time: {datetime.datetime.now()}") + + # Select DJF and do daily mean # selected_months = [1, 2, 12] print("Start computing daily mean.") @@ -55,7 +59,6 @@ nlat = ylat.size nlev = plev.size - new_xlon = np.arange(0, 360) new_ylat = np.arange(-90, 91) @@ -70,28 +73,28 @@ data_t = t_file.sel(time=time_selected).resample(time="1D").first()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -print(f"Finished computing daily average and interp onto coarser grid. Time: {datetime.datetime.now()}.\nExamine data_u:") +print_process_time("Finished computing daily average and interp onto coarser grid") print(data_u) -print(data_u.coords['latitude']) +print(data_u.coords[ylat_coord_name]) # 3) Saving output data: -out_path = f"{wkdir}/refstates_output.nc" +out_path = f"{wkdir}/refstates_2022Jan.nc" -print(f"Start QGDataset calculation. Time: {datetime.datetime.now()}.") +print_process_time("Start QGDataset calculation") qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() -print(f"Examine refstates. Time: {datetime.datetime.now()}.") +print_process_time("Examine refstates") print(refstates) lwadiags = qgds.compute_lwa_and_barotropic_fluxes() -lwadiags = lwadiags[["lwa_baro", "u_baro", "lwa"]] # TODO: interpolate back onto original grid? -print(f"Compute seasonal average. Time: {datetime.datetime.now()}.") -seasonal_average = xr.merge([refstates, lwadiags]).mean(dim=time_coord_name) +print_process_time("Compute seasonal average") +seasonal_average = xr.merge([uvtinterp, refstates, lwadiags]).mean(dim=time_coord_name) print(seasonal_average) -print(f"Start outputing to the file: {out_path}. Time: {datetime.datetime.now()}.") +print_process_time(f"Start outputing to the file: {out_path}") seasonal_average.to_netcdf(out_path) -print("Finished") +print_process_time("Finished") + # 4) Saving output plots: From 5cf400a523038ff5da6b9baa1cd8761eeeb31e82 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 17:51:18 -0500 Subject: [PATCH 058/178] add new files --- .../daily_avg_model_notfinished.py | 2 +- .../gridfill_utils.py | 22 +++++++++++++++ .../gridfill_with_model_data.py | 27 +++---------------- .../otc_model_data_gridfill.py | 18 +++++++++++++ 4 files changed, 44 insertions(+), 25 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/gridfill_utils.py create mode 100644 diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py b/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py index f506032f6..d49817098 100644 --- a/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py +++ b/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py @@ -1,5 +1,5 @@ """ -Compute daily average from sample files. This is working on server +Compute daily average from sample files. This is working on OTC """ import os import xarray as xr # python library we use to read netcdf files diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py new file mode 100644 index 000000000..ca9c245a5 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py @@ -0,0 +1,22 @@ +import gridfill +import numpy as np + + +def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): + """ + Apply gridfill to do interpolation on lat-lon grid using poisson solver, and then interpolate onto 1-degree grid + + Args: + lat_lon_field(np.ndarray): 2D array to apply gridfill on + itermax(int): maximum iteration for poisson solver + verbose(bool): verbose level of poisson solver + + Returns: + A 2D array of the same dimension with all nan filled. + """ + + lat_lon_filled, converged = gridfill.fill( + grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, + cyclic=True, itermax=itermax, verbose=verbose) + + return lat_lon_filled diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py b/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py index ba6a18ec2..6c5875ec9 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py @@ -1,13 +1,13 @@ """ Attempt to work with daily mean data from daily_avg_model_notfinished.py +This runs on iMac """ import os import xarray as xr -import gridfill import numpy as np -import matplotlib.pyplot as plt from hn2016_falwa.xarrayinterface import QGDataset -import scipy + +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level # These are local path to Clare's iMac storage_path = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" @@ -25,27 +25,6 @@ ylat = coord_file.coords['lat'] plev = coord_file.coords['level'] - -def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): - """ - Apply gridfill to do interpolation on lat-lon grid using poisson solver, and then interpolate onto 1-degree grid - - Args: - lat_lon_field(np.ndarray): 2D array to apply gridfill on - itermax(int): maximum iteration for poisson solver - verbose(bool): verbose level of poisson solver - - Returns: - A 2D array of the same dimension with all nan filled. - """ - - lat_lon_filled, converged = gridfill.fill( - grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, - cyclic=True, itermax=itermax, verbose=verbose) - - return lat_lon_filled - - if output_interp: args_tuple = [(u_file, 'ua', interp_u_file), (v_file, 'va', interp_v_file), (t_file, 'ta', interp_t_file)] for original_file, var_name, interp_file in args_tuple: diff --git a/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py new file mode 100644 index 000000000..97412d7f6 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py @@ -0,0 +1,18 @@ +""" +Run this on OTC to compute reference state for 1 timestep +""" +import os +import xarray as xr # python library we use to read netcdf files + + +wk_dir = f"{os.environ['HOME']}/GitHub/mdtf/wkdir/" +data_dir = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/" +u_path = f"{data_dir}atmos_inst.1984010100-1984123123.ua.nc" +v_path = f"{data_dir}atmos_inst.1984010100-1984123123.va.nc" +t_path = f"{data_dir}atmos_inst.1984010100-1984123123.ta.nc" + +# Extract just one timestamp +data = xr.open_mfdataset(f"{data_dir}atmos_inst.1984010100-1984123123.[uvt]a.nc") +print(data) + + From cc48fcfb8b71b9a25b835649d07e7245c006a957 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 17:54:32 -0500 Subject: [PATCH 059/178] add new files --- .../otc_model_data_gridfill.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py index 97412d7f6..52d19fcb1 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py @@ -11,8 +11,12 @@ v_path = f"{data_dir}atmos_inst.1984010100-1984123123.va.nc" t_path = f"{data_dir}atmos_inst.1984010100-1984123123.ta.nc" -# Extract just one timestamp -data = xr.open_mfdataset(f"{data_dir}atmos_inst.1984010100-1984123123.[uvt]a.nc") -print(data) +print("Start outputting 1 timestamp") +tstep = 100 +xr.open_dataset(u_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_1tstep_u.nc") +xr.open_dataset(v_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_1tstep_v.nc") +xr.open_dataset(t_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_1tstep_t.nc") +print("Finish outputting 1 timestamp") + From bd76fd35069203f43f81a56e5fe6fff40186c5fe Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:03:19 -0500 Subject: [PATCH 060/178] update all --- .../era5_diag_original.py | 10 +-- .../gridfill_utils.py | 6 ++ .../iMac_model_data_gridfill.py | 84 +++++++++++++++++++ .../otc_examine_model_data.py | 57 +++++++++++++ 4 files changed, 150 insertions(+), 7 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py create mode 100644 diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index ab2ab5e38..b5aca0aa0 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -1,12 +1,13 @@ # TODO: replace all with env variables import os import sys + +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import print_process_time + sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") import numpy as np import xarray as xr import datetime -import matplotlib.pyplot as plt -from hn2016_falwa.oopinterface import QGFieldNHN22 from hn2016_falwa.xarrayinterface import QGDataset # 0) Get environment variables @@ -27,11 +28,6 @@ v_file = xr.open_dataset(input_v_path) t_file = xr.open_dataset(input_t_path) - -def print_process_time(process): - print(f"{process}. Time: {datetime.datetime.now()}") - - # Select DJF and do daily mean # selected_months = [1, 2, 12] print("Start computing daily mean.") diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py index ca9c245a5..55dfb8a0b 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py @@ -1,3 +1,5 @@ +import datetime + import gridfill import numpy as np @@ -20,3 +22,7 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): cyclic=True, itermax=itermax, verbose=verbose) return lat_lon_filled + + +def print_process_time(process): + print(f"{process}. Time: {datetime.datetime.now()}") diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py new file mode 100644 index 000000000..0650504bc --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py @@ -0,0 +1,84 @@ +""" +Run this on OTC to compute reference state for 1 timestep +""" +import os +import numpy as np +import xarray as xr # python library we use to read netcdf files +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from hn2016_falwa.xarrayinterface import QGDataset +import matplotlib.pyplot as plt + + +wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" +data_dir = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" +u_path = f"{data_dir}atmos_inst_1tstep_u.nc" +v_path = f"{data_dir}atmos_inst_1tstep_v.nc" +t_path = f"{data_dir}atmos_inst_1tstep_t.nc" +gridfill_u_path = u_path.replace("u.nc", "u_gridfill.nc") +gridfill_v_path = v_path.replace("v.nc", "v_gridfill.nc") +gridfill_t_path = t_path.replace("t.nc", "t_gridfill.nc") + +coord_file = xr.open_dataset(u_path) +xlon = coord_file.coords['lon'] +ylat = coord_file.coords['lat'] +plev = coord_file.coords['level'] +coord_file.close() + +u_file = xr.open_dataset(u_path) +v_file = xr.open_dataset(v_path) +t_file = xr.open_dataset(t_path) + +# *** Examine data first *** +zonal_mean_u = np.ma.masked_invalid(u_file.ua.values).mean(axis=-1) +zonal_mean_v = np.ma.masked_invalid(v_file.va.values).mean(axis=-1) +zonal_mean_t = np.ma.masked_invalid(t_file.ta.values).mean(axis=-1) + +fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) +cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') +ax1.set_title("Zonal mean zonal wind u") +ax1.set_ylabel("Pressure [hPa]") +ax1.set_xlabel("Longitude [deg]") +fig.colorbar(cs1, ax=ax1, shrink=0.9) +ax1.invert_yaxis() +cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') +ax2.set_title("Zonal mean meridional wind v") +ax2.set_xlabel("Longitude [deg]") +fig.colorbar(cs2, ax=ax2, shrink=0.9) +ax2.invert_yaxis() +cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') +ax3.set_title("Zonal mean air temperature t") +ax3.set_xlabel("Longitude [deg]") +fig.colorbar(cs3, ax=ax3, shrink=0.9) +ax3.invert_yaxis() +plt.tight_layout() +plt.show() +print("Stop here") + + +# *** First do poisson solver *** +run_poisson = False +if run_poisson: + args_tuple = [(u_file, 'ua', gridfill_u_path), (v_file, 'va', gridfill_v_path), (t_file, 'ta', gridfill_t_path)] + for original_file, var_name, gridfill_file in args_tuple: + field_of_interest = original_file[var_name] + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[field_of_interest], + input_core_dims=(('lat', 'lon'),), + output_core_dims=(('lat', 'lon'),), + vectorize=True) + field_at_all_level.to_netcdf(gridfill_file) + print(f"Finished outputing {gridfill_file}") + +# *** Interpolate onto regular grid *** +all_files = xr.open_mfdataset(f"{data_dir}atmos_inst_1tstep_[uvt]_gridfill.nc") +all_files = all_files.interp( + coords={"lat": np.arange(-90, 91), "lon": np.arange(0, 360)}, + method="linear", + kwargs={"fill_value": 0}) +qgds = QGDataset(all_files, var_names={"u": "ua", "v": "va", "t": "ta"}) +uvtinterp = qgds.interpolate_fields() +print("Finished interpolate_fields") +# Error arises when solving reference state +print("Stop here") + diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py new file mode 100644 index 000000000..9485bcd3b --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -0,0 +1,57 @@ +""" +Run this on OTC to compute reference state for 1 timestep +""" +import os +import numpy as np +import xarray as xr # python library we use to read netcdf files +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from hn2016_falwa.xarrayinterface import QGDataset +import matplotlib.pyplot as plt + + +wk_dir = f"{os.environ['HOME']}/GitHub/mdtf/wkdir/" +data_dir = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/" +u_path = f"{data_dir}atmos_inst.1984010100-1984123123.ua.nc" +v_path = f"{data_dir}atmos_inst.1984010100-1984123123.va.nc" +t_path = f"{data_dir}atmos_inst.1984010100-1984123123.ta.nc" + +coord_file = xr.open_dataset(u_path) +xlon = coord_file.coords['lon'] +ylat = coord_file.coords['lat'] +plev = coord_file.coords['level'] +coord_file.close() + +u_file = xr.open_dataset(u_path) +v_file = xr.open_dataset(v_path) +t_file = xr.open_dataset(t_path) + +# *** Examine data first *** +for tstep in np.arange(0, 8761, 50): + time_str = str(u_file.isel(time=tstep).time) + zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) + zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) + zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) + + fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) + plt.suptitle(f"{time_str}") + cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') + ax1.set_title("Zonal mean zonal wind u") + ax1.set_ylabel("Pressure [hPa]") + ax1.set_xlabel("Longitude [deg]") + fig.colorbar(cs1, ax=ax1, shrink=0.9) + ax1.invert_yaxis() + cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') + ax2.set_title("Zonal mean meridional wind v") + ax2.set_xlabel("Longitude [deg]") + fig.colorbar(cs2, ax=ax2, shrink=0.9) + ax2.invert_yaxis() + cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') + ax3.set_title("Zonal mean air temperature t") + ax3.set_xlabel("Longitude [deg]") + fig.colorbar(cs3, ax=ax3, shrink=0.9) + ax3.invert_yaxis() + plt.tight_layout() + plt.savefig(f"zonal_mean_{time_str.replace(' ', '')}") + print(f"Finished processing {time_str}") + + From 91740af3bbe38a62b3df8fe874ce042b13ba5d7b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:03:55 -0500 Subject: [PATCH 061/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index 9485bcd3b..4a5cb8b81 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -4,8 +4,6 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level -from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt From afc0699580da913967e434fbec5686dc8e11a3cb Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:05:58 -0500 Subject: [PATCH 062/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index 4a5cb8b81..f2b3cd2c4 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -3,7 +3,9 @@ """ import os import numpy as np -import xarray as xr # python library we use to read netcdf files +import xarray as xr +import matplotlib +matplotlib.use('Agg') import matplotlib.pyplot as plt @@ -49,7 +51,7 @@ fig.colorbar(cs3, ax=ax3, shrink=0.9) ax3.invert_yaxis() plt.tight_layout() - plt.savefig(f"zonal_mean_{time_str.replace(' ', '')}") + plt.savefig(f"zonal_mean_{time_str.replace(' ', '')}.png") print(f"Finished processing {time_str}") From 9b55798b35af07cc2a454985132886e8c0b83da1 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:08:25 -0500 Subject: [PATCH 063/178] fix time str --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index f2b3cd2c4..bf7f0f7cc 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -27,7 +27,7 @@ # *** Examine data first *** for tstep in np.arange(0, 8761, 50): - time_str = str(u_file.isel(time=tstep).time) + time_str = u_file["time"].dt.strftime("%Y%m%d") zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) @@ -51,7 +51,7 @@ fig.colorbar(cs3, ax=ax3, shrink=0.9) ax3.invert_yaxis() plt.tight_layout() - plt.savefig(f"zonal_mean_{time_str.replace(' ', '')}.png") + plt.savefig(f"zonal_mean_{time_str}.png") print(f"Finished processing {time_str}") From e7fe7a541d7352cf8ed9acc9a62ba715993aaea3 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:09:28 -0500 Subject: [PATCH 064/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index bf7f0f7cc..6cc4eb72b 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -27,10 +27,10 @@ # *** Examine data first *** for tstep in np.arange(0, 8761, 50): - time_str = u_file["time"].dt.strftime("%Y%m%d") zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) + time_str = u_file.isel(time=tstep).time.dt.strftime("%Y%m%d") fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) plt.suptitle(f"{time_str}") From c3a357f8b57e8c3b78110bb1d67da4bbdf7de8cc Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:13:18 -0500 Subject: [PATCH 065/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index 6cc4eb72b..ebc7e0639 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -26,11 +26,12 @@ t_file = xr.open_dataset(t_path) # *** Examine data first *** -for tstep in np.arange(0, 8761, 50): +# for tstep in np.arange(0, 8761, 50): +for tstep in np.arange(0, 1): zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) - time_str = u_file.isel(time=tstep).time.dt.strftime("%Y%m%d") + time_str = str(u_file.isel(time=tstep)['time'].values) fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) plt.suptitle(f"{time_str}") From fd280c99486c249530ebc69ebf8e46b06f6da97c Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:14:00 -0500 Subject: [PATCH 066/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index ebc7e0639..e04874366 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -31,7 +31,7 @@ zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) - time_str = str(u_file.isel(time=tstep)['time'].values) + time_str = str(u_file.isel(time=tstep)['time'].values).split()[0] fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) plt.suptitle(f"{time_str}") From dbdb713f5b558ff26b38f30a707688a2f538f734 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:15:42 -0500 Subject: [PATCH 067/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index e04874366..f359f874c 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -26,8 +26,7 @@ t_file = xr.open_dataset(t_path) # *** Examine data first *** -# for tstep in np.arange(0, 8761, 50): -for tstep in np.arange(0, 1): +for tstep in np.arange(0, 8761, 50): zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) From 3c8898ecfec85c66c0ba8fe0712b4a08ad5e1e14 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:16:16 -0500 Subject: [PATCH 068/178] remove unnecessary --- .../finite_amplitude_wave_diag/otc_examine_model_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index f359f874c..fd0f557ca 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -26,7 +26,7 @@ t_file = xr.open_dataset(t_path) # *** Examine data first *** -for tstep in np.arange(0, 8761, 50): +for tstep in np.arange(0, 8761, 500): zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) From 72184edaf48e51cdc53db744785384950fe96816 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:45:06 -0500 Subject: [PATCH 069/178] rerun era5_diag_original --- .../era5_diag_original.py | 13 +++++++------ .../finite_amplitude_wave_diag/gridfill_utils.py | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index b5aca0aa0..d96443036 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -10,6 +10,7 @@ import datetime from hn2016_falwa.xarrayinterface import QGDataset +start_time = datetime.datetime.now() # 0) Get environment variables wkdir = os.environ['wkdir'] input_u_path = os.environ["u_file"] @@ -69,27 +70,27 @@ data_t = t_file.sel(time=time_selected).resample(time="1D").first()\ .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -print_process_time("Finished computing daily average and interp onto coarser grid") +print_process_time("Finished computing daily average and interp onto coarser grid", start_time) print(data_u) print(data_u.coords[ylat_coord_name]) # 3) Saving output data: out_path = f"{wkdir}/refstates_2022Jan.nc" -print_process_time("Start QGDataset calculation") +print_process_time("Start QGDataset calculation", start_time) qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() -print_process_time("Examine refstates") +print_process_time("Examine refstates", start_time) print(refstates) lwadiags = qgds.compute_lwa_and_barotropic_fluxes() # TODO: interpolate back onto original grid? -print_process_time("Compute seasonal average") +print_process_time("Compute seasonal average", start_time) seasonal_average = xr.merge([uvtinterp, refstates, lwadiags]).mean(dim=time_coord_name) print(seasonal_average) -print_process_time(f"Start outputing to the file: {out_path}") +print_process_time(f"Start outputing to the file: {out_path}", start_time) seasonal_average.to_netcdf(out_path) -print_process_time("Finished") +print_process_time("Finished", start_time) # 4) Saving output plots: diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py index 55dfb8a0b..01e957e86 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py @@ -24,5 +24,5 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): return lat_lon_filled -def print_process_time(process): - print(f"{process}. Time: {datetime.datetime.now()}") +def print_process_time(process, start_time): + print(f"{process}. Time: {(datetime.datetime.now() - start_time).total_seconds()}") From 23b82c03f0dee1fa15c2dd4ea815ac2f819a362d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 19:52:09 -0500 Subject: [PATCH 070/178] move print process time to --- diagnostics/finite_amplitude_wave_diag/era5_diag_original.py | 5 +++-- diagnostics/finite_amplitude_wave_diag/gridfill_utils.py | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index d96443036..119580232 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -2,14 +2,15 @@ import os import sys -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import print_process_time - sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") import numpy as np import xarray as xr import datetime from hn2016_falwa.xarrayinterface import QGDataset +def print_process_time(process, start_time): + print(f"{process}. Time: {(datetime.datetime.now() - start_time).total_seconds()}") + start_time = datetime.datetime.now() # 0) Get environment variables wkdir = os.environ['wkdir'] diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py index 01e957e86..ed6e27b8d 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py @@ -24,5 +24,3 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): return lat_lon_filled -def print_process_time(process, start_time): - print(f"{process}. Time: {(datetime.datetime.now() - start_time).total_seconds()}") From 0b837dd5bef475a4469ecae08e5a161c54ef79e9 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 20:51:46 -0500 Subject: [PATCH 071/178] otc_model_data_1tstep_extract.py --- .../iMac_model_data_gridfill.py | 63 ++++++++++--------- .../otc_examine_model_data.py | 2 +- ...ll.py => otc_model_data_1tstep_extract.py} | 10 +-- .../visualize_refstate.py | 12 ++++ 4 files changed, 53 insertions(+), 34 deletions(-) rename diagnostics/finite_amplitude_wave_diag/{otc_model_data_gridfill.py => otc_model_data_1tstep_extract.py} (83%) create mode 100644 diagnostics/finite_amplitude_wave_diag/visualize_refstate.py diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py index 0650504bc..4f135ad65 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py @@ -7,6 +7,7 @@ from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt +from hn2016_falwa.oopinterface import QGFieldNHN22 wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" @@ -29,30 +30,32 @@ t_file = xr.open_dataset(t_path) # *** Examine data first *** -zonal_mean_u = np.ma.masked_invalid(u_file.ua.values).mean(axis=-1) -zonal_mean_v = np.ma.masked_invalid(v_file.va.values).mean(axis=-1) -zonal_mean_t = np.ma.masked_invalid(t_file.ta.values).mean(axis=-1) +to_examine_data = False +if to_examine_data: + zonal_mean_u = np.ma.masked_invalid(u_file.ua.values).mean(axis=-1) + zonal_mean_v = np.ma.masked_invalid(v_file.va.values).mean(axis=-1) + zonal_mean_t = np.ma.masked_invalid(t_file.ta.values).mean(axis=-1) -fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) -cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') -ax1.set_title("Zonal mean zonal wind u") -ax1.set_ylabel("Pressure [hPa]") -ax1.set_xlabel("Longitude [deg]") -fig.colorbar(cs1, ax=ax1, shrink=0.9) -ax1.invert_yaxis() -cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') -ax2.set_title("Zonal mean meridional wind v") -ax2.set_xlabel("Longitude [deg]") -fig.colorbar(cs2, ax=ax2, shrink=0.9) -ax2.invert_yaxis() -cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') -ax3.set_title("Zonal mean air temperature t") -ax3.set_xlabel("Longitude [deg]") -fig.colorbar(cs3, ax=ax3, shrink=0.9) -ax3.invert_yaxis() -plt.tight_layout() -plt.show() -print("Stop here") + fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) + cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') + ax1.set_title("Zonal mean zonal wind u") + ax1.set_ylabel("Pressure [hPa]") + ax1.set_xlabel("Longitude [deg]") + fig.colorbar(cs1, ax=ax1, shrink=0.9) + ax1.invert_yaxis() + cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') + ax2.set_title("Zonal mean meridional wind v") + ax2.set_xlabel("Longitude [deg]") + fig.colorbar(cs2, ax=ax2, shrink=0.9) + ax2.invert_yaxis() + cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') + ax3.set_title("Zonal mean air temperature t") + ax3.set_xlabel("Longitude [deg]") + fig.colorbar(cs3, ax=ax3, shrink=0.9) + ax3.invert_yaxis() + plt.tight_layout() + plt.show() + print("Stop here") # *** First do poisson solver *** @@ -73,12 +76,16 @@ # *** Interpolate onto regular grid *** all_files = xr.open_mfdataset(f"{data_dir}atmos_inst_1tstep_[uvt]_gridfill.nc") all_files = all_files.interp( - coords={"lat": np.arange(-90, 91), "lon": np.arange(0, 360)}, + coords={ + "lat": np.arange(-90, 91, 1.5), + "lon": np.arange(0, 361, 1.5)}, method="linear", - kwargs={"fill_value": 0}) -qgds = QGDataset(all_files, var_names={"u": "ua", "v": "va", "t": "ta"}) + kwargs={"fill_value": "extrapolate"}) +qgds = QGDataset(all_files, var_names={"u": "ua", "v": "va", "t": "ta"}, qgfield=QGFieldNHN22) uvtinterp = qgds.interpolate_fields() print("Finished interpolate_fields") -# Error arises when solving reference state -print("Stop here") +refstates = qgds.compute_reference_states() # Error arises when solving reference state +plt.contourf(refstates['uref'].ylat, refstates['uref'].height, refstates['uref'], np.arange(-50, 51, 10)); plt.colorbar(); plt.show() +print("Finished compute_reference_states") + diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py index fd0f557ca..f4ffacf2e 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py @@ -1,5 +1,5 @@ """ -Run this on OTC to compute reference state for 1 timestep +Examine the zonal mean of u, v, T before gridfill """ import os import numpy as np diff --git a/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/otc_model_data_1tstep_extract.py similarity index 83% rename from diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py rename to diagnostics/finite_amplitude_wave_diag/otc_model_data_1tstep_extract.py index 52d19fcb1..e28e06350 100644 --- a/diagnostics/finite_amplitude_wave_diag/otc_model_data_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/otc_model_data_1tstep_extract.py @@ -1,5 +1,5 @@ """ -Run this on OTC to compute reference state for 1 timestep +Extract uvT data for 1 time step """ import os import xarray as xr # python library we use to read netcdf files @@ -12,10 +12,10 @@ t_path = f"{data_dir}atmos_inst.1984010100-1984123123.ta.nc" print("Start outputting 1 timestamp") -tstep = 100 -xr.open_dataset(u_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_1tstep_u.nc") -xr.open_dataset(v_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_1tstep_v.nc") -xr.open_dataset(t_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_1tstep_t.nc") +tstep = 1000 +xr.open_dataset(u_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_t{tstep}_u.nc") +xr.open_dataset(v_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_t{tstep}_v.nc") +xr.open_dataset(t_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_t{tstep}_t.nc") print("Finish outputting 1 timestamp") diff --git a/diagnostics/finite_amplitude_wave_diag/visualize_refstate.py b/diagnostics/finite_amplitude_wave_diag/visualize_refstate.py new file mode 100644 index 000000000..a3ae5c32e --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/visualize_refstate.py @@ -0,0 +1,12 @@ +import numpy as np +import xarray as xr +import matplotlib.pyplot as plt + +all_file = xr.open_dataset("refstates_2022Jan.nc") +plt.contourf( + all_file.uref['ylat'], + all_file.uref['height'], + all_file.uref, + np.arange(-50, 101, 10)) +plt.colorbar() +plt.show() From a60d842280a6d62ba004b1d9f2cbd360da1dbe1e Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 22:53:44 -0500 Subject: [PATCH 072/178] update --- .../iMac_model_data_gridfill.py | 69 ++++------- ..._model_data_interpolate_before_gridfill.py | 117 ++++++++++++++++++ .../iMac_model_data_zonal_mean.py | 60 +++++++++ .../send_to_sandro.py | 12 ++ 4 files changed, 215 insertions(+), 43 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py create mode 100644 diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py create mode 100644 diagnostics/finite_amplitude_wave_diag/send_to_sandro.py diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py index 4f135ad65..5abbf2f3b 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py @@ -25,67 +25,50 @@ plev = coord_file.coords['level'] coord_file.close() -u_file = xr.open_dataset(u_path) -v_file = xr.open_dataset(v_path) -t_file = xr.open_dataset(t_path) - -# *** Examine data first *** -to_examine_data = False -if to_examine_data: - zonal_mean_u = np.ma.masked_invalid(u_file.ua.values).mean(axis=-1) - zonal_mean_v = np.ma.masked_invalid(v_file.va.values).mean(axis=-1) - zonal_mean_t = np.ma.masked_invalid(t_file.ta.values).mean(axis=-1) - - fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) - cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') - ax1.set_title("Zonal mean zonal wind u") - ax1.set_ylabel("Pressure [hPa]") - ax1.set_xlabel("Longitude [deg]") - fig.colorbar(cs1, ax=ax1, shrink=0.9) - ax1.invert_yaxis() - cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') - ax2.set_title("Zonal mean meridional wind v") - ax2.set_xlabel("Longitude [deg]") - fig.colorbar(cs2, ax=ax2, shrink=0.9) - ax2.invert_yaxis() - cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') - ax3.set_title("Zonal mean air temperature t") - ax3.set_xlabel("Longitude [deg]") - fig.colorbar(cs3, ax=ax3, shrink=0.9) - ax3.invert_yaxis() - plt.tight_layout() - plt.show() - print("Stop here") - +all_file = xr.open_mfdataset("atmos_inst_t1000_[uvt].nc") +gridfill_file = "atmos_inst_t1000_gridfill_{var}.nc" # *** First do poisson solver *** -run_poisson = False +run_poisson = True if run_poisson: - args_tuple = [(u_file, 'ua', gridfill_u_path), (v_file, 'va', gridfill_v_path), (t_file, 'ta', gridfill_t_path)] - for original_file, var_name, gridfill_file in args_tuple: - field_of_interest = original_file[var_name] + args_tuple = ['ua', 'va', 'ta'] + field_list = [] + for var_name in args_tuple: field_at_all_level = xr.apply_ufunc( gridfill_each_level, - *[field_of_interest], + *[all_file[var_name]], input_core_dims=(('lat', 'lon'),), output_core_dims=(('lat', 'lon'),), - vectorize=True) - field_at_all_level.to_netcdf(gridfill_file) - print(f"Finished outputing {gridfill_file}") + vectorize=True, dask="allowed") + gridfill_file_path = gridfill_file.format(var=var_name) + field_at_all_level.to_netcdf(gridfill_file_path) + print(f"Finished outputing {gridfill_file_path}") # *** Interpolate onto regular grid *** -all_files = xr.open_mfdataset(f"{data_dir}atmos_inst_1tstep_[uvt]_gridfill.nc") +all_files = xr.open_mfdataset("atmos_inst_t1000_gridfill_[uvt]a.nc") all_files = all_files.interp( coords={ "lat": np.arange(-90, 91, 1.5), "lon": np.arange(0, 361, 1.5)}, - method="linear", + method="nearest", kwargs={"fill_value": "extrapolate"}) qgds = QGDataset(all_files, var_names={"u": "ua", "v": "va", "t": "ta"}, qgfield=QGFieldNHN22) uvtinterp = qgds.interpolate_fields() +plt.contourf( + uvtinterp['interpolated_u'].ylat, + uvtinterp['interpolated_u'].height, + uvtinterp['interpolated_u'].mean(axis=-1), + np.arange(-50, 51, 5)) +plt.colorbar() +plt.show() print("Finished interpolate_fields") refstates = qgds.compute_reference_states() # Error arises when solving reference state -plt.contourf(refstates['uref'].ylat, refstates['uref'].height, refstates['uref'], np.arange(-50, 51, 10)); plt.colorbar(); plt.show() +plt.contourf(refstates['uref'].ylat, + refstates['uref'].height, + refstates['uref'], + np.arange(-50, 51, 5)) +plt.colorbar() +plt.show() print("Finished compute_reference_states") diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py new file mode 100644 index 000000000..f8f0940c2 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py @@ -0,0 +1,117 @@ +""" +Run this on OTC to compute reference state for 1 timestep +Seems it is working on a coarse grid... +Continue from here next time +""" +import os +import numpy as np +import xarray as xr # python library we use to read netcdf files +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from hn2016_falwa.xarrayinterface import QGDataset +import matplotlib.pyplot as plt +from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 + + +wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" +data_dir = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" +u_path = f"{data_dir}atmos_inst_1tstep_u.nc" +v_path = f"{data_dir}atmos_inst_1tstep_v.nc" +t_path = f"{data_dir}atmos_inst_1tstep_t.nc" +gridfill_u_path = u_path.replace("u.nc", "u_gridfill.nc") +gridfill_v_path = v_path.replace("v.nc", "v_gridfill.nc") +gridfill_t_path = t_path.replace("t.nc", "t_gridfill.nc") + +coord_file = xr.open_dataset(u_path) +xlon = coord_file.coords['lon'] +ylat = coord_file.coords['lat'] +plev = coord_file.coords['level'] +coord_file.close() + +run_poisson = False +all_files = xr.open_mfdataset("atmos_inst_t1000_[uvt].nc")\ + .interp( + coords={ + "lat": np.arange(-90, 91, 1.5), + "lon": np.arange(0, 361, 1.5)}, + method="linear", + kwargs={"fill_value": "extrapolate"}) # installed package bottleneck +if not run_poisson: + all_files = all_files.fillna(10) +gridfill_file = "atmos_inst_t1000_gridfill_{var}.nc" + +# *** First do poisson solver *** +if run_poisson: + args_tuple = ['ua', 'va', 'ta'] + field_list = [] + for var_name in args_tuple: + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[all_files[var_name]], + input_core_dims=(('lat', 'lon'),), + output_core_dims=(('lat', 'lon'),), + vectorize=True, dask="allowed") + gridfill_file_path = gridfill_file.format(var=var_name) + field_at_all_level.to_netcdf(gridfill_file_path) + print(f"Finished outputing {gridfill_file_path}") + all_files = xr.open_mfdataset("atmos_inst_t1000_gridfill_[uvt]a.nc") + +# *** Interpolate onto regular grid *** +qgds = QGDataset( + all_files, + var_names={"u": "ua", "v": "va", "t": "ta"}, + qgfield=QGFieldNH18) +uvtinterp = qgds.interpolate_fields() +plt.contourf( + uvtinterp['interpolated_u'].ylat, + uvtinterp['interpolated_u'].height, + uvtinterp['interpolated_u'].mean(axis=-1), + np.arange(-50, 51, 5), cmap='rainbow') +plt.title("Zonal mean zonal wind") +plt.colorbar() +plt.show() +print("Finished interpolate_fields") +refstates = qgds.compute_reference_states() # Error arises when solving reference state +plt.contourf(refstates['uref'].ylat, + refstates['uref'].height, + refstates['uref'], + np.arange(-50, 101, 5), cmap='rainbow') +plt.title("Uref") +plt.colorbar() +plt.show() +print("Finished compute_reference_states") +refstates = qgds.compute_lwa_and_barotropic_fluxes() # Error arises when solving reference state +plt.contourf(refstates['lwa'].ylat, + refstates['lwa'].height, + refstates['lwa'].mean(axis=-1), np.arange(0, 200, 10), cmap='rainbow') +plt.title("Zonal mean FAWA") +plt.colorbar() +plt.show() +print("Finished compute_lwa_and_barotropic_fluxes") + +plt.contourf(refstates['lwa_baro'].xlon, + refstates['lwa_baro'].ylat, + refstates['lwa_baro'], + 40, cmap='rainbow') +plt.title("Barotropic LWA") +plt.colorbar() +plt.show() + +height_level_index = 10 + +plt.contourf(uvtinterp['qgpv'].xlon, + uvtinterp['qgpv'].ylat, + uvtinterp['qgpv'].isel(height=height_level_index), + 40, cmap='rainbow') +plt.title(f"QGPV at k={height_level_index}") +plt.colorbar() +plt.show() + +plt.contourf(refstates['lwa'].xlon, + refstates['lwa'].ylat, + refstates['lwa'].isel(height=height_level_index), + 40, cmap='rainbow') +plt.title(f"LWA at k={height_level_index}") +plt.colorbar() +plt.show() + + diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py new file mode 100644 index 000000000..439943d97 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py @@ -0,0 +1,60 @@ +""" +Run this on OTC to compute reference state for 1 timestep +""" +import os +import numpy as np +import xarray as xr # python library we use to read netcdf files +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from hn2016_falwa.xarrayinterface import QGDataset +import matplotlib.pyplot as plt +from hn2016_falwa.oopinterface import QGFieldNHN22 + + +wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" +data_dir = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" +u_path = f"{data_dir}atmos_inst_1tstep_u.nc" +v_path = f"{data_dir}atmos_inst_1tstep_v.nc" +t_path = f"{data_dir}atmos_inst_1tstep_t.nc" +gridfill_u_path = u_path.replace("u.nc", "u_gridfill.nc") +gridfill_v_path = v_path.replace("v.nc", "v_gridfill.nc") +gridfill_t_path = t_path.replace("t.nc", "t_gridfill.nc") + +coord_file = xr.open_dataset(u_path) +xlon = coord_file.coords['lon'] +ylat = coord_file.coords['lat'] +plev = coord_file.coords['level'] +coord_file.close() + +u_file = xr.open_dataset(u_path) +v_file = xr.open_dataset(v_path) +t_file = xr.open_dataset(t_path) + +# *** Examine data first *** +to_examine_data = False +if to_examine_data: + zonal_mean_u = np.ma.masked_invalid(u_file.ua.values).mean(axis=-1) + zonal_mean_v = np.ma.masked_invalid(v_file.va.values).mean(axis=-1) + zonal_mean_t = np.ma.masked_invalid(t_file.ta.values).mean(axis=-1) + + fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) + cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') + ax1.set_title("Zonal mean zonal wind u") + ax1.set_ylabel("Pressure [hPa]") + ax1.set_xlabel("Longitude [deg]") + fig.colorbar(cs1, ax=ax1, shrink=0.9) + ax1.invert_yaxis() + cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') + ax2.set_title("Zonal mean meridional wind v") + ax2.set_xlabel("Longitude [deg]") + fig.colorbar(cs2, ax=ax2, shrink=0.9) + ax2.invert_yaxis() + cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') + ax3.set_title("Zonal mean air temperature t") + ax3.set_xlabel("Longitude [deg]") + fig.colorbar(cs3, ax=ax3, shrink=0.9) + ax3.invert_yaxis() + plt.tight_layout() + plt.show() + print("Stop here") + + diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py new file mode 100644 index 000000000..06d1605c9 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -0,0 +1,12 @@ +""" +Extract some sample data and send to Sandro +""" +import os +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots +from hn2016_falwa.xarrayinterface import QGDataset + +original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" +file_handle = xr.open_mfdataset(original_file_path).resample(time="M").first() +print("file_handle") +print(file_handle) From fa30a820ad73ceb580779e422634654d4516bb0c Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 22:56:43 -0500 Subject: [PATCH 073/178] update --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index 06d1605c9..60e42ee67 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -2,11 +2,12 @@ Extract some sample data and send to Sandro """ import os +import numpy as np import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots from hn2016_falwa.xarrayinterface import QGDataset original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" -file_handle = xr.open_mfdataset(original_file_path).resample(time="M").first() +file_handle = xr.open_mfdataset(original_file_path).isel(time=np.arange(0, 8761, 730)) print("file_handle") print(file_handle) From 01b8b2aa5ebba92dc8286ccadbd0dfc56e8ef412 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 22:57:09 -0500 Subject: [PATCH 074/178] update --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index 60e42ee67..162bda5b8 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -8,6 +8,6 @@ from hn2016_falwa.xarrayinterface import QGDataset original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" -file_handle = xr.open_mfdataset(original_file_path).isel(time=np.arange(0, 8761, 730)) +file_handle = xr.open_mfdataset(original_file_path).isel(time=np.arange(0, 8760, 730)) print("file_handle") print(file_handle) From f864c3311c31550cf30b3640ca5f9e60a18f7dfa Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 6 Sep 2023 22:58:12 -0500 Subject: [PATCH 075/178] update --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index 162bda5b8..b1b0255d7 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -9,5 +9,7 @@ original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" file_handle = xr.open_mfdataset(original_file_path).isel(time=np.arange(0, 8760, 730)) +file_handle.to_netcdf("send_to_sandro.nc") print("file_handle") print(file_handle) +print("Finished") From f17b08f48f982cbb313e25d40fcf6d65e1edc5ab Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 09:13:54 -0500 Subject: [PATCH 076/178] send_to_sandro.py --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index b1b0255d7..b20d8a57a 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -8,8 +8,11 @@ from hn2016_falwa.xarrayinterface import QGDataset original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" -file_handle = xr.open_mfdataset(original_file_path).isel(time=np.arange(0, 8760, 730)) -file_handle.to_netcdf("send_to_sandro.nc") +tstep = 0 +file_handle = xr.open_mfdataset(original_file_path).isel(time=tstep) print("file_handle") print(file_handle) -print("Finished") +filename = f"send_to_sandro_t{tstep}.nc" +print(f"Start outputting {filename}") +file_handle.to_netcdf(filename) +print(f"Finished outputting {filename}") From 09450c40634ad6e1079f37a5793359e256001388 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 09:18:21 -0500 Subject: [PATCH 077/178] update --- .../finite_amplitude_wave_diag/send_to_sandro.py | 16 ++++++++-------- src/conda/env_finite_amplitude_wave_diag.yml | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index b20d8a57a..b1a6d84b0 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -8,11 +8,11 @@ from hn2016_falwa.xarrayinterface import QGDataset original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" -tstep = 0 -file_handle = xr.open_mfdataset(original_file_path).isel(time=tstep) -print("file_handle") -print(file_handle) -filename = f"send_to_sandro_t{tstep}.nc" -print(f"Start outputting {filename}") -file_handle.to_netcdf(filename) -print(f"Finished outputting {filename}") +for tstep in np.arange(0, 8760, 730): + file_handle = xr.open_mfdataset(original_file_path).isel(time=tstep) + print("file_handle") + print(file_handle) + filename = f"send_to_sandro_t{tstep}.nc" + print(f"Start outputting {filename}") + file_handle.to_netcdf(filename) + print(f"Finished outputting {filename}") diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 3c945d8ba..9eb345087 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -13,5 +13,6 @@ dependencies: - pip=22.0.4 - dask - gridfill +- bottleneck - pip: - hn2016_falwa==0.7.2 From d4881917af1e8cb39c824b30a87b407162931cbf Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 09:20:08 -0500 Subject: [PATCH 078/178] update --- .../send_to_sandro.py | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index b1a6d84b0..cd19cebd3 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -7,12 +7,22 @@ import matplotlib.pyplot as plt # python library we use to make plots from hn2016_falwa.xarrayinterface import QGDataset -original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.[uvt]a.nc" -for tstep in np.arange(0, 8760, 730): - file_handle = xr.open_mfdataset(original_file_path).isel(time=tstep) - print("file_handle") - print(file_handle) - filename = f"send_to_sandro_t{tstep}.nc" - print(f"Start outputting {filename}") - file_handle.to_netcdf(filename) - print(f"Finished outputting {filename}") + +# *** Combine files *** +file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc", concat_dim='time') +print(file_handle) +print(file_handle.coords['time']) + + +to_output_step_by_step = False +if to_output_step_by_step: + original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/"+\ + "atmos_inst.1984010100-1984123123.[uvt]a.nc" + for tstep in np.arange(0, 8760, 730): + file_handle = xr.open_mfdataset(original_file_path).isel(time=tstep) + print("file_handle") + print(file_handle) + filename = f"send_to_sandro_t{tstep}.nc" + print(f"Start outputting {filename}") + file_handle.to_netcdf(filename) + print(f"Finished outputting {filename}") From 9fc4a35a3337998ea0947ebec3b90f5bf87418b5 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 09:20:33 -0500 Subject: [PATCH 079/178] update --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index cd19cebd3..7aff10220 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -9,7 +9,7 @@ # *** Combine files *** -file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc", concat_dim='time') +file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc") print(file_handle) print(file_handle.coords['time']) From 534a9a117b151a5cc1cbec20507bade04c8da800 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 09:22:54 -0500 Subject: [PATCH 080/178] update --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index 7aff10220..1acf9d2f9 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -9,7 +9,7 @@ # *** Combine files *** -file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc") +file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc", concat_dim='time', combine='nested') print(file_handle) print(file_handle.coords['time']) From 5618389719242da1a4ee098fff1436d420d58d82 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 09:23:39 -0500 Subject: [PATCH 081/178] update --- diagnostics/finite_amplitude_wave_diag/send_to_sandro.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py index 1acf9d2f9..f11962493 100644 --- a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py +++ b/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py @@ -8,10 +8,11 @@ from hn2016_falwa.xarrayinterface import QGDataset -# *** Combine files *** +# *** Combine files: concatenate over time *** file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc", concat_dim='time', combine='nested') print(file_handle) print(file_handle.coords['time']) +file_handle.to_netcdf("send_to_sandro_12_time_slice.nc") to_output_step_by_step = False From c4b874432934b3b144814a808973375a3d02f213 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 21:25:56 -0500 Subject: [PATCH 082/178] upload file --- .../extract_one_timeslice.py | 12 ++++++ .../gridfill_utils.py | 43 ++++++++++++++++++- ..._model_data_interpolate_before_gridfill.py | 23 ++++++---- 3 files changed, 68 insertions(+), 10 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py diff --git a/diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py b/diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py new file mode 100644 index 000000000..059e82c53 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py @@ -0,0 +1,12 @@ +""" +Extract one time slice from model data from OTC +""" +import os +import xarray as xr + +data_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/" + \ + "atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc" +data_file = xr.open_mfdataset(data_path).isel(time=0) +print(data_file) +data_file.to_netcdf("GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc") +print("Finish") diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py index ed6e27b8d..358453920 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py @@ -6,7 +6,8 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): """ - Apply gridfill to do interpolation on lat-lon grid using poisson solver, and then interpolate onto 1-degree grid + Fill missing values in lat-lon grids with values derived by solving Poisson's equation + using a relaxation scheme. Args: lat_lon_field(np.ndarray): 2D array to apply gridfill on @@ -24,3 +25,43 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): return lat_lon_filled +def fill_nan_with_zonal_mean_each_level(lat_lon_field): + """ + The solution is from the StackOverflow thread: + https://stackoverflow.com/questions/18689235/numpy-array-replace-nan-values-with-average-of-columns + Args: + lat_lon_field(np.ndarray): field of dimension (lat, lon) + Returns: + A 2D array of the same shape as lat_lon_field with NaN filled with zonal mean value + """ + + copy_array = lat_lon_field.copy() + zonal_mean = np.nan_to_num(np.nanmean(copy_array, axis=-1), nan=10) + inds = np.where(np.isnan(copy_array)) + copy_array[inds] = np.take(zonal_mean, inds[0]) + return copy_array + + +def use_northern_hem_data_for_southern_hem(lat_lon_field): + """ + The solution is from the StackOverflow thread: + https://stackoverflow.com/questions/18689235/numpy-array-replace-nan-values-with-average-of-columns + Args: + lat_lon_field(np.ndarray): field of dimension (lat, lon) + Returns: + A 2D array of the same shape as lat_lon_field with NaN filled with zonal mean value + """ + + copy_array = lat_lon_field.copy() + zonal_mean = np.nan_to_num(np.nanmean(copy_array, axis=-1), nan=10) + inds = np.where(np.isnan(copy_array)) + copy_array[inds] = np.take(zonal_mean, inds[0]) + return copy_array + +if __name__ == '__main__': + narray = np.array([[1, 0, 1, np.nan], [np.nan, 3, 4, 5],]) + results = fill_nan_with_zonal_mean_each_level(narray) + print(results.shape) + print(results) + print(np.nanmean(narray, axis=-1)) + print(results.mean(axis=-1)) diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py index f8f0940c2..2ba33c0cc 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py @@ -10,6 +10,7 @@ from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 +from hn2016_falwa.xarrayinterface import hemisphere_to_globe wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" @@ -27,39 +28,43 @@ plev = coord_file.coords['level'] coord_file.close() -run_poisson = False +run_gridfill = True + all_files = xr.open_mfdataset("atmos_inst_t1000_[uvt].nc")\ .interp( coords={ - "lat": np.arange(-90, 91, 1.5), - "lon": np.arange(0, 361, 1.5)}, + "lat": np.arange(0, 91, 3), + "lon": np.arange(0, 361, 3)}, method="linear", kwargs={"fill_value": "extrapolate"}) # installed package bottleneck -if not run_poisson: - all_files = all_files.fillna(10) gridfill_file = "atmos_inst_t1000_gridfill_{var}.nc" # *** First do poisson solver *** -if run_poisson: +if run_gridfill: args_tuple = ['ua', 'va', 'ta'] field_list = [] for var_name in args_tuple: field_at_all_level = xr.apply_ufunc( gridfill_each_level, - *[all_files[var_name]], + *[all_files[var_name].load()], input_core_dims=(('lat', 'lon'),), output_core_dims=(('lat', 'lon'),), - vectorize=True, dask="allowed") + vectorize=True, dask="forbidden") gridfill_file_path = gridfill_file.format(var=var_name) field_at_all_level.to_netcdf(gridfill_file_path) print(f"Finished outputing {gridfill_file_path}") all_files = xr.open_mfdataset("atmos_inst_t1000_gridfill_[uvt]a.nc") +else: + all_files = all_files.fillna(10) + +# *** Create symmetric data *** +all_files = hemisphere_to_globe(all_files) # *** Interpolate onto regular grid *** qgds = QGDataset( all_files, var_names={"u": "ua", "v": "va", "t": "ta"}, - qgfield=QGFieldNH18) + qgfield=QGFieldNHN22) uvtinterp = qgds.interpolate_fields() plt.contourf( uvtinterp['interpolated_u'].ylat, From 65f4fe7f007788168af315dd2341e758f33d0a3b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 7 Sep 2023 23:15:37 -0500 Subject: [PATCH 083/178] Save progress. Main driver: finite_amplitude_wave_diag_zonal_mean.py --- .../finite_amplitude_wave_diag_zonal_mean.py | 210 +++++++++++------- ..._model_data_interpolate_before_gridfill.py | 39 ++-- 2 files changed, 150 insertions(+), 99 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index fcf56c4e0..3bf1a5efa 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -1,63 +1,44 @@ -# MDTF Example Diagnostic POD +# Finite-amplitude Rossby wave POD # ================================================================================ -# This script does a simple diagnostic calculation to illustrate how to adapt code -# for use in the MDTF diagnostic framework. The main change is to set input/output -# paths, variable names etc. from shell environment variables the framework -# provides, instead of hard-coding them. +# Calculate finite-amplitude wave diagnostics that quantifies wave-mean flow +# interactions. # -# Below, this script consists of 2 parts: (1) a template of comprehensive header POD -# developers must include in their POD's main driver script, (2) actual code, and -# (3) extensive in-line comments. +# Last update: 09/07/2023 # ================================================================================ -# -# This file is part of the Example Diagnostic POD of the MDTF code package (see mdtf/MDTF-diagnostics/LICENSE.txt) -# -# Example Diagnostic POD -# -# Last update: 8/1/2020 -# -# This is a example POD that you can use as a template for your diagnostics. -# If this were a real POD, you'd place a one-paragraph synopsis of your -# diagnostic here (like an abstract). -# # Version & Contact info # -# Here you should describe who contributed to the diagnostic, and who should be -# contacted for further information: -# -# - Version/revision information: version 1 (5/06/2020) -# - PI (name, affiliation, email) -# - Developer/point of contact (name, affiliation, email) -# - Other contributors -# +# - Version/revision information: version 1 (09/07/2023) +# - PI: Clare S. Y. Huang. The University of Chicago. csyhuang@uchicago.edu. +# - Developer/point of contact (name, affiliation, email): (same as PI) +# - Other contributors: Christopher Polster (JGU Mainz), Noboru Nakamura (UChicago) +# ================================================================================ # Open source copyright agreement # -# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). -# Unless you've distirbuted your script elsewhere, you don't need to change this. -# -# Functionality +# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +# ================================================================================ +# Functionality (not written yet) # # In this section you should summarize the stages of the calculations your # diagnostic performs, and how they translate to the individual source code files # provided in your submission. This will, e.g., let maintainers fixing a bug or # people with questions about how your code works know where to look. -# -# Required programming language and libraries +# ================================================================================ +# Required programming language and libraries (not written yet) # # In this section you should summarize the programming languages and third-party # libraries used by your diagnostic. You also provide this information in the # ``settings.jsonc`` file, but here you can give helpful comments to human # maintainers (eg, "We need at least version 1.5 of this library because we call # this function.") -# -# Required model output variables +# ================================================================================ +# Required model output variables (not written yet) # # In this section you should describe each variable in the input data your # diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, # but here you should go into detail on the assumptions your diagnostic makes # about the structure of the data. -# -# References +# ================================================================================ +# References (not written yet) # # Here you should cite the journal articles providing the scientific basis for # your diagnostic. @@ -65,71 +46,136 @@ # Maloney, E. D, and Co-authors, 2019: Process-oriented evaluation of climate # and wether forcasting models. BAMS, 100(9), 1665-1686, # doi:10.1175/BAMS-D-18-0042.1. -# +# ================================================================================ import os import matplotlib matplotlib.use('Agg') # non-X windows backend # Commands to load third-party libraries. Any code you don't include that's # not part of your language's standard library should be listed in the # settings.jsonc file. +import netCDF4 +import numpy as np import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots +from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from hn2016_falwa.xarrayinterface import QGDataset +from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 +from hn2016_falwa.constant import SCALE_HEIGHT, P_GROUND +from hn2016_falwa.xarrayinterface import hemisphere_to_globe -### 1) Loading model data files: ############################################### +# 1) Loading model data files: # # The framework copies model data to a regular directory structure of the form # //...nc # Here and frequency are requested in the "varlist" part of # settings.json. +load_environ = False +if load_environ: + uvt_path = os.environ["UVT_FILE"] + u_var_name = os.environ["U_VAR"] + v_var_name = os.environ["V_VAR"] + t_var_name = os.environ["T_VAR"] + time_coord_name = os.environ["TIME_COORD"] + plev_name = os.environ["LEV_COORD"] + lat_name = os.environ["LAT_COORD"] + lon_name = os.environ["LON_COORD"] +else: + # iMac path + uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc" + u_var_name = "ua" + v_var_name = "va" + t_var_name = "ta" + time_coord_name = "time" + plev_name = "plev" + lat_name = "lat" + lon_name = "lon" +# Regular grid +xlon = np.arange(0, 361, 1.5) +ylat = np.arange(-90, 91, 1.5) + +# 2) Doing computations: +model_dataset = xr.open_mfdataset(uvt_path) # command to load the netcdf file + +# === 2.0) Save original grid === +original_grid = { + time_coord_name: model_dataset.coords[time_coord_name], + plev_name: model_dataset.coords[plev_name], + lat_name: model_dataset.coords[lat_name], + lon_name: model_dataset.coords[lon_name]} + +# === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === +num_of_nan = model_dataset['ua'].isnull().sum().values +do_gridfill = True if num_of_nan > 0 else False # Boolean +if do_gridfill: + print("NaN detected in u/v/T field. Do gridfill with poisson solver.") + gridfill_file_path = "gridfill_{var}.nc" + args_tuple = [u_var_name, v_var_name, t_var_name] + field_list = [] + for var_name in args_tuple: + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[model_dataset[var_name]], + input_core_dims=(('lat', 'lon'),), + output_core_dims=(('lat', 'lon'),), + vectorize=True, dask="allowed") + field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) + print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") + print("Finished gridfill") + gridfill_file_path = gridfill_file_path.format(var="*") +else: + gridfill_file_path = uvt_path # Original file + print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") +model_dataset.close() -# The following command sets input_path to the value of the shell environment -# variable called TAS_FILE. This variable is set by the framework to let the -# script know where the locally downloaded copy of the data for this variable -# (which we called "tas") is. -input_path = os.environ["TAS_FILE"] - -# command to load the netcdf file -model_dataset = xr.open_dataset(input_path) - - -### 2) Doing computations: ##################################################### -# -# Diagnostics in the framework are intended to work with native output from a -# variety of models. For this reason, variable names should not be hard-coded -# but instead set from environment variables. -# -tas_var_name = os.environ["tas_var"] -# For safety, don't even assume that the time dimension of the input file is -# named "time": -time_coord_name = os.environ["time_coord"] - -# The only computation done here: compute the time average of input data -tas_data = model_dataset[tas_var_name] -model_mean_tas = tas_data.mean(dim = time_coord_name) -# Note that we supplied the observational data as time averages, to save space -# and avoid having to repeat that calculation each time the diagnostic is run. - -# Logging relevant debugging or progress information is a good idea. Anything -# your diagnostic prints to STDOUT will be saved to its own log file. -print("Computed time average of {tas_var} for {CASENAME}.".format(**os.environ)) - - -### 3) Saving output data: ##################################################### -# -# Diagnostics should write output data to disk to a) make relevant results +# === 2.2) INTERPOLATION: Interpolate onto regular grid for simplicity === +gridfilled_dataset = xr.open_mfdataset(gridfill_file_path) +gridfilled_dataset = gridfilled_dataset.interp( + coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) +if gridfilled_dataset[plev_name].units == 'Pa': # Shall divide by 100 + gridfilled_dataset = gridfilled_dataset.assign_coords({plev_name: gridfilled_dataset[plev_name] // 100}) + gridfilled_dataset[plev_name].attrs["units"] = 'hPa' + +# === 2.3) VERTICAL RESOLUTION: determine the maximum pseudo-height this calculation can handle === +dz = 1000 # TODO Variable to set earlier? +hmax = -SCALE_HEIGHT*np.log(gridfilled_dataset[plev_name].min()/P_GROUND) +kmax = int(hmax//dz)+1 + +# === 2.3) WAVE ACTIVITY COMPUTATION: Compute Uref, FAWA, barotropic components of u and LWA === +qgds = QGDataset( + gridfilled_dataset, + var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}, + qgfield=QGFieldNH18, + qgfield_kwargs={"dz": dz, "kmax": kmax}) +qgds.interpolate_fields() # No need to retrieve variables +refstates = qgds.compute_reference_states()['uref'] +lwadiags = qgds.compute_lwa_and_barotropic_fluxes()['lwa_baro', 'u_baro'] +# TODO: +# RefState has to be interpolated back onto plev-lat grid +# lwadiags has to be interpolated back onto lat-lon grid + +""" +New coordinate can also be attached to an existing dimension: + +lon_2 = np.array([300, 289, 0, 1]) +da.assign_coords(lon_2=("lon", lon_2)) + +array([0.5488135 , 0.71518937, 0.60276338, 0.54488318]) +Coordinates: + * lon (lon) int64 358 359 0 1 + lon_2 (lon) int64 300 289 0 1 +""" + +# === 3) Saving output data (TODO not yet finished) === +# Diagnostics should write output data to disk to a) make relevant results # available to the user for further use or b) to pass large amounts of data # between stages of a calculation run as different sub-scripts. Data can be in # any format (as long as it's documented) and should be written to the # directory /model/netCDF (created by the framework). -# -out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) - -# write out time averages as a netcdf file -model_mean_tas.to_netcdf(out_path) - +out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) # TODO set it +lwadiags.to_netcdf(out_path) # (not done) write out time averages as a netcdf file -### 4) Saving output plots: #################################################### +# === 4) Saving output plots (TODO not yet finished) === # # Plots should be saved in EPS or PS format at //PS # (created by the framework). Plots can be given any filename, but should have @@ -155,7 +201,7 @@ def plot_and_save_figure(model_or_obs, title_string, dataset): # set an informative title using info about the analysis set in env vars title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) # Plot the model data: -plot_and_save_figure("model", title_string, model_mean_tas) +plot_and_save_figure("model", title_string, model_dataset) ### 5) Loading obs data files & plotting obs figures: ########################## diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py index 2ba33c0cc..4b51648fb 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py @@ -30,15 +30,17 @@ run_gridfill = True -all_files = xr.open_mfdataset("atmos_inst_t1000_[uvt].nc")\ +all_files = xr.open_dataset("GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc") +all_files = all_files\ + .assign_coords({'plev': all_files.plev // 100})\ .interp( coords={ - "lat": np.arange(0, 91, 3), - "lon": np.arange(0, 361, 3)}, - method="linear", - kwargs={"fill_value": "extrapolate"}) # installed package bottleneck -gridfill_file = "atmos_inst_t1000_gridfill_{var}.nc" - + "lat": np.arange(-90, 91, 1.5), + "lon": np.arange(0, 361, 1.5)}, + method="linear") + # kwargs={"fill_value": "extrapolate"}) # installed package bottleneck +gridfill_file = "GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice_gridfill_{var}.nc" +gridfill_file_all = gridfill_file.format(var="[uvt]a") # *** First do poisson solver *** if run_gridfill: args_tuple = ['ua', 'va', 'ta'] @@ -53,33 +55,36 @@ gridfill_file_path = gridfill_file.format(var=var_name) field_at_all_level.to_netcdf(gridfill_file_path) print(f"Finished outputing {gridfill_file_path}") - all_files = xr.open_mfdataset("atmos_inst_t1000_gridfill_[uvt]a.nc") + all_files = xr.open_mfdataset(gridfill_file_all) else: all_files = all_files.fillna(10) # *** Create symmetric data *** -all_files = hemisphere_to_globe(all_files) +# all_files = hemisphere_to_globe(all_files) # *** Interpolate onto regular grid *** qgds = QGDataset( all_files, var_names={"u": "ua", "v": "va", "t": "ta"}, - qgfield=QGFieldNHN22) + qgfield=QGFieldNH18, + qgfield_kwargs={"kmax": 33}) uvtinterp = qgds.interpolate_fields() plt.contourf( uvtinterp['interpolated_u'].ylat, uvtinterp['interpolated_u'].height, uvtinterp['interpolated_u'].mean(axis=-1), - np.arange(-50, 51, 5), cmap='rainbow') + 40, + cmap='rainbow') plt.title("Zonal mean zonal wind") plt.colorbar() plt.show() print("Finished interpolate_fields") refstates = qgds.compute_reference_states() # Error arises when solving reference state -plt.contourf(refstates['uref'].ylat, +plt.contourf(refstates['uref'].ylat[2:-2], refstates['uref'].height, - refstates['uref'], - np.arange(-50, 101, 5), cmap='rainbow') + refstates['uref'][:, 2:-2], + 40, + cmap='rainbow') plt.title("Uref") plt.colorbar() plt.show() @@ -87,7 +92,7 @@ refstates = qgds.compute_lwa_and_barotropic_fluxes() # Error arises when solving reference state plt.contourf(refstates['lwa'].ylat, refstates['lwa'].height, - refstates['lwa'].mean(axis=-1), np.arange(0, 200, 10), cmap='rainbow') + refstates['lwa'].mean(axis=-1), 40, cmap='rainbow') plt.title("Zonal mean FAWA") plt.colorbar() plt.show() @@ -104,8 +109,8 @@ height_level_index = 10 plt.contourf(uvtinterp['qgpv'].xlon, - uvtinterp['qgpv'].ylat, - uvtinterp['qgpv'].isel(height=height_level_index), + uvtinterp['qgpv'].ylat[3:-3], + uvtinterp['qgpv'].isel(height=height_level_index)[3:-3, :], 40, cmap='rainbow') plt.title(f"QGPV at k={height_level_index}") plt.colorbar() From 01f0b8bcfa078b60f0fa4220a6672a0c78bffa89 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 18:59:38 -0500 Subject: [PATCH 084/178] extract 10 timeslices --- .../{extract_one_timeslice.py => extract_ten_timeslice.py} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename diagnostics/finite_amplitude_wave_diag/{extract_one_timeslice.py => extract_ten_timeslice.py} (85%) diff --git a/diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py b/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py similarity index 85% rename from diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py rename to diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py index 059e82c53..52ee47d11 100644 --- a/diagnostics/finite_amplitude_wave_diag/extract_one_timeslice.py +++ b/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py @@ -6,7 +6,7 @@ data_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/" + \ "atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc" -data_file = xr.open_mfdataset(data_path).isel(time=0) +data_file = xr.open_mfdataset(data_path).isel(time=10) print(data_file) -data_file.to_netcdf("GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc") +data_file.to_netcdf("GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc") print("Finish") From 45a2dfec0be73e175931bba2fd12d2883b175401 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 19:01:14 -0500 Subject: [PATCH 085/178] extract again --- .../finite_amplitude_wave_diag/extract_ten_timeslice.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py b/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py index 52ee47d11..a93a5a3b6 100644 --- a/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py +++ b/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py @@ -2,11 +2,12 @@ Extract one time slice from model data from OTC """ import os +import numpy import xarray as xr data_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/" + \ "atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc" -data_file = xr.open_mfdataset(data_path).isel(time=10) +data_file = xr.open_mfdataset(data_path).isel(time=np.arange(10)) print(data_file) data_file.to_netcdf("GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc") print("Finish") From 2ffc9f17a514507ffa989f094c9e9163ee58e7b9 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 19:01:54 -0500 Subject: [PATCH 086/178] extract 10 timeslices --- diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py b/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py index a93a5a3b6..87d56fb75 100644 --- a/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py +++ b/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py @@ -2,7 +2,7 @@ Extract one time slice from model data from OTC """ import os -import numpy +import numpy as np import xarray as xr data_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/" + \ From 51cc107080ecf0a758640807151774ee9448f5d6 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 21:39:44 -0500 Subject: [PATCH 087/178] try running on OTC --- .../era5_diag_original.py | 2 +- .../export_env_var2.sh | 9 + .../finite_amplitude_wave_diag_zonal_mean.py | 427 ++++++++++++------ diagnostics/precip_buoy_diag/vert_cython.pyx | 2 +- 4 files changed, 303 insertions(+), 137 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/export_env_var2.sh diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py index 119580232..ce0beeb7c 100644 --- a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py +++ b/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py @@ -82,7 +82,7 @@ def print_process_time(process, start_time): qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) uvtinterp = qgds.interpolate_fields() refstates = qgds.compute_reference_states() -print_process_time("Examine refstates", start_time) +print_process_time("Examine yz_var", start_time) print(refstates) lwadiags = qgds.compute_lwa_and_barotropic_fluxes() # TODO: interpolate back onto original grid? diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh b/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh new file mode 100644 index 000000000..d5de25959 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh @@ -0,0 +1,9 @@ +export UVT_FILE=$HOME/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc +export U_VAR=u +export V_VAR=v +export T_VAR=t +export TIME_COORD=time +export LON_COORD=lon +export LAT_COORD=lat +export LEV_COORD=level +export WK_DIR=$HOME/GitHub/mdtf/wkdir diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 3bf1a5efa..0ea49959c 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -49,20 +49,25 @@ # ================================================================================ import os import matplotlib -matplotlib.use('Agg') # non-X windows backend +from collections import namedtuple +import socket + +from xarray import Dataset + +if socket.gethostname() == 'otc': + matplotlib.use('Agg') # non-X windows backend # Commands to load third-party libraries. Any code you don't include that's # not part of your language's standard library should be listed in the # settings.jsonc file. import netCDF4 import numpy as np -import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots +from cartopy import crs as ccrs from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 from hn2016_falwa.constant import SCALE_HEIGHT, P_GROUND -from hn2016_falwa.xarrayinterface import hemisphere_to_globe - # 1) Loading model data files: # @@ -70,7 +75,7 @@ # //...nc # Here and frequency are requested in the "varlist" part of # settings.json. -load_environ = False +load_environ = True if load_environ: uvt_path = os.environ["UVT_FILE"] u_var_name = os.environ["U_VAR"] @@ -80,9 +85,10 @@ plev_name = os.environ["LEV_COORD"] lat_name = os.environ["LAT_COORD"] lon_name = os.environ["LON_COORD"] + wk_dir = os.environ["WK_DIR"] else: # iMac path - uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc" + uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" u_var_name = "ua" v_var_name = "va" t_var_name = "ta" @@ -90,12 +96,41 @@ plev_name = "plev" lat_name = "lat" lon_name = "lon" -# Regular grid -xlon = np.arange(0, 361, 1.5) -ylat = np.arange(-90, 91, 1.5) + wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" +# Regular grid defined by developer +xlon = np.arange(0, 361, 1.0) +ylat = np.arange(-90, 91, 1.0) + + +# === Define functions === +def convert_pseudoheight_to_hPa(height_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) + return p_array + + +def convert_hPa_to_pseudoheight(p_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) + return height_array # 2) Doing computations: model_dataset = xr.open_mfdataset(uvt_path) # command to load the netcdf file +if model_dataset[plev_name].units == 'Pa': # Pa shall be divided by 100 to become hPa + model_dataset = model_dataset.assign_coords({plev_name: model_dataset[plev_name] // 100}) + model_dataset[plev_name].attrs["units"] = 'hPa' # === 2.0) Save original grid === original_grid = { @@ -104,145 +139,267 @@ lat_name: model_dataset.coords[lat_name], lon_name: model_dataset.coords[lon_name]} -# === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === -num_of_nan = model_dataset['ua'].isnull().sum().values -do_gridfill = True if num_of_nan > 0 else False # Boolean -if do_gridfill: - print("NaN detected in u/v/T field. Do gridfill with poisson solver.") - gridfill_file_path = "gridfill_{var}.nc" - args_tuple = [u_var_name, v_var_name, t_var_name] - field_list = [] - for var_name in args_tuple: - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[model_dataset[var_name]], - input_core_dims=(('lat', 'lon'),), - output_core_dims=(('lat', 'lon'),), - vectorize=True, dask="allowed") - field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) - print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") - print("Finished gridfill") - gridfill_file_path = gridfill_file_path.format(var="*") -else: - gridfill_file_path = uvt_path # Original file - print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") -model_dataset.close() - -# === 2.2) INTERPOLATION: Interpolate onto regular grid for simplicity === -gridfilled_dataset = xr.open_mfdataset(gridfill_file_path) -gridfilled_dataset = gridfilled_dataset.interp( - coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) -if gridfilled_dataset[plev_name].units == 'Pa': # Shall divide by 100 - gridfilled_dataset = gridfilled_dataset.assign_coords({plev_name: gridfilled_dataset[plev_name] // 100}) - gridfilled_dataset[plev_name].attrs["units"] = 'hPa' - -# === 2.3) VERTICAL RESOLUTION: determine the maximum pseudo-height this calculation can handle === -dz = 1000 # TODO Variable to set earlier? -hmax = -SCALE_HEIGHT*np.log(gridfilled_dataset[plev_name].min()/P_GROUND) -kmax = int(hmax//dz)+1 - -# === 2.3) WAVE ACTIVITY COMPUTATION: Compute Uref, FAWA, barotropic components of u and LWA === -qgds = QGDataset( - gridfilled_dataset, - var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}, - qgfield=QGFieldNH18, - qgfield_kwargs={"dz": dz, "kmax": kmax}) -qgds.interpolate_fields() # No need to retrieve variables -refstates = qgds.compute_reference_states()['uref'] -lwadiags = qgds.compute_lwa_and_barotropic_fluxes()['lwa_baro', 'u_baro'] -# TODO: -# RefState has to be interpolated back onto plev-lat grid -# lwadiags has to be interpolated back onto lat-lon grid - -""" -New coordinate can also be attached to an existing dimension: - -lon_2 = np.array([300, 289, 0, 1]) -da.assign_coords(lon_2=("lon", lon_2)) - -array([0.5488135 , 0.71518937, 0.60276338, 0.54488318]) -Coordinates: - * lon (lon) int64 358 359 0 1 - lon_2 (lon) int64 300 289 0 1 -""" - -# === 3) Saving output data (TODO not yet finished) === + +def compute_from_sampled_data(sampled_dataset): + # === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === + num_of_nan = sampled_dataset['ua'].isnull().sum().values + do_gridfill = True if num_of_nan > 0 else False # Boolean + if do_gridfill: + print("NaN detected in u/v/T field. Do gridfill with poisson solver.") + gridfill_file_path = "gridfill_{var}.nc" + args_tuple = [u_var_name, v_var_name, t_var_name] + for var_name in args_tuple: + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[sampled_dataset[var_name]], + input_core_dims=(('lat', 'lon'),), + output_core_dims=(('lat', 'lon'),), + vectorize=True, dask="allowed") + field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) + print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") + print("Finished gridfill") + gridfill_file_path = gridfill_file_path.format(var="*") + else: + gridfill_file_path = uvt_path # Original file + print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") + + # === 2.2) INTERPOLATION: Interpolate onto regular grid for simplicity === + gridfilled_dataset = xr.open_mfdataset(gridfill_file_path) + gridfilled_dataset = gridfilled_dataset.interp( + coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) + + # === 2.3) VERTICAL RESOLUTION: determine the maximum pseudo-height this calculation can handle === + dz = 1000 # TODO Variable to set earlier? + hmax = -SCALE_HEIGHT * np.log(gridfilled_dataset[plev_name].min() / P_GROUND) + kmax = int(hmax // dz) + 1 + + # === 2.4) WAVE ACTIVITY COMPUTATION: Compute Uref, FAWA, barotropic components of u and LWA === + qgds = QGDataset( + gridfilled_dataset, + var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}, + qgfield=QGFieldNH18, + qgfield_kwargs={"dz": dz, "kmax": kmax}) + uvtinterp = qgds.interpolate_fields()[['interpolated_u']] \ + .interp(coords={ + "xlon": (lon_name, original_grid[lon_name].data), + "ylat": (lat_name, original_grid[lat_name].data)}) # No variables needed from this dataset + refstates = qgds.compute_reference_states()[['uref']].interp(coords={ + "ylat": (lat_name, original_grid[lat_name].data)}) + # TODO: determine whether to interpolate back to plev grid + lwadiags = qgds.compute_lwa_and_barotropic_fluxes()[['lwa_baro', 'u_baro', 'lwa']] \ + .interp(coords={ + "xlon": (lon_name, original_grid[lon_name].data), + "ylat": (lat_name, original_grid[lat_name].data)}) + output_dataset = xr.Dataset(data_vars={ + 'zonal_mean_u': uvtinterp.interpolated_u.mean(axis=-1), + 'uref': refstates.uref, + 'zonal_mean_lwa': lwadiags.lwa.mean(axis=-1), + 'lwa_baro': lwadiags.lwa_baro, + 'u_baro': lwadiags.u_baro}) + return output_dataset + + +def calculate_covariance(lwa_baro, u_baro): + """ + Calculate covariance. + Args: + lwa_baro: dataset.lwa_baro + u_baro: dataset.u_baro + Returns: + cov_map in dimension of (lat, lon) + """ + baro_matrix_shape = lwa_baro.data.shape + # dataset.lwa_baro.data.shape # (10, 90, 144) + # dataset.u_baro.data.shape # (10, 90, 144) + flatten_lwa_baro = lwa_baro.data.reshape(baro_matrix_shape[0], baro_matrix_shape[1] * baro_matrix_shape[2]) + flatten_u_baro = u_baro.data.reshape(baro_matrix_shape[0], baro_matrix_shape[1] * baro_matrix_shape[2]) + covv = np.cov(m=flatten_lwa_baro, y=flatten_u_baro, rowvar=False) + row_cov = np.diagonal(covv, offset=baro_matrix_shape[1] * baro_matrix_shape[2]) + cov_map = row_cov.reshape(baro_matrix_shape[1], baro_matrix_shape[2]) + return cov_map + + +def time_average_processing(dataset: xr.Dataset): + SeasonalAverage = namedtuple( + "SeasonalAverage", [ + "zonal_mean_u", + "uref", + "zonal_mean_lwa", + "lwa_baro", + "u_baro", + "covariance_lwa_u_baro"]) + + seasonal_avg_zonal_mean_u = dataset.zonal_mean_u.mean(axis=0) + seasonal_avg_zonal_mean_lwa = dataset.zonal_mean_lwa.mean(axis=0) + seasonal_avg_uref = dataset.uref.mean(axis=0) + seasonal_avg_lwa_baro = dataset.lwa_baro.mean(axis=0) + seasonal_avg_u_baro = dataset.u_baro.mean(axis=0) + seasonal_covariance_lwa_u_baro = calculate_covariance(lwa_baro=dataset.lwa_baro, u_baro=dataset.u_baro) + seasonal_avg_data = SeasonalAverage( + seasonal_avg_zonal_mean_u, seasonal_avg_uref, seasonal_avg_zonal_mean_lwa, + seasonal_avg_lwa_baro, seasonal_avg_u_baro, seasonal_covariance_lwa_u_baro) + return seasonal_avg_data + + +def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plot_path): + cmap = "jet" + fig = plt.figure(figsize=(9, 12)) + fig.suptitle(title_str) + # *** Zonal mean U *** + ax1 = fig.add_subplot(3, 2, 1) + fig1 = ax1.contourf( + original_grid['lat'], np.arange(0, 1000 * 33, 1000), + seasonal_average_data.zonal_mean_u, + 30, cmap=cmap) + fig.colorbar(fig1, ax=ax1) + ax1.set_title('zonal mean U') + ax1.set_xlim([-80, 80]) + + # *** FAWA *** + ax3 = fig.add_subplot(3, 2, 3) + fig3 = ax3.contourf( + original_grid['lat'], np.arange(0, 1000 * 33, 1000), + seasonal_average_data.zonal_mean_lwa, + 30, cmap=cmap) + fig.colorbar(fig3, ax=ax3) + ax3.set_title('zonal mean LWA') + ax3.set_xlim([-80, 80]) + + # *** Uref *** + ax2 = fig.add_subplot(3, 2, 5) + fig2 = ax2.contourf( + original_grid['lat'], np.arange(0, 1000 * 33, 1000), + seasonal_average_data.uref, + 30, cmap=cmap) + fig.colorbar(fig2, ax=ax2) + ax2.set_title('zonal mean Uref') + ax2.set_xlim([-80, 80]) + + # *** U baro *** + ax5 = fig.add_subplot(3, 2, 2, projection=ccrs.PlateCarree(180)) + ax5.coastlines(color='black', alpha=0.7) + ax5.set_aspect('auto', adjustable=None) + fig5 = ax5.contourf( + original_grid['lon'], original_grid['lat'], + seasonal_average_data.u_baro, + 30, cmap=cmap) + ax5.set_xticks(np.arange(0, 361, 60), crs=ccrs.PlateCarree()) + ax5.set_yticks(np.arange(-90, 91, 30), crs=ccrs.PlateCarree()) + fig.colorbar(fig5, ax=ax5) + ax5.set_title('U baro') + + # *** LWA baro *** + ax4 = fig.add_subplot(3, 2, 4, projection=ccrs.PlateCarree(180)) + ax4.coastlines(color='black', alpha=0.7) + ax4.set_aspect('auto', adjustable=None) + fig4 = ax4.contourf( + original_grid['lon'], original_grid['lat'], + seasonal_average_data.lwa_baro, 30, cmap=cmap) + ax4.set_xticks(np.arange(0, 361, 60), crs=ccrs.PlateCarree()) + ax4.set_yticks(np.arange(-90, 91, 30), crs=ccrs.PlateCarree()) + fig.colorbar(fig4, ax=ax4) + ax4.set_title('LWA baro') + + # *** Covariance between LWA and U *** + ax6 = fig.add_subplot(3, 2, 6, projection=ccrs.PlateCarree(180)) + ax6.coastlines(color='black', alpha=0.7) + ax6.set_aspect('auto', adjustable=None) + fig6 = ax6.contourf( + original_grid['lon'], original_grid['lat'], + seasonal_average_data.covariance_lwa_u_baro, + 30, cmap="Purples_r") + ax6.set_xticks(np.arange(0, 361, 60), crs=ccrs.PlateCarree()) + ax6.set_yticks(np.arange(-90, 91, 30), crs=ccrs.PlateCarree()) + fig.colorbar(fig6, ax=ax6) + ax6.set_title('Covariance between LWA and U(baro)') + plt.tight_layout() + # plt.show() + plt.savefig(plot_path, bbox_inches='tight') + + +# === 3) Saving output data === # Diagnostics should write output data to disk to a) make relevant results # available to the user for further use or b) to pass large amounts of data # between stages of a calculation run as different sub-scripts. Data can be in -# any format (as long as it's documented) and should be written to the +# any format (as long as it's documented) and should be written to the # directory /model/netCDF (created by the framework). -out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) # TODO set it -lwadiags.to_netcdf(out_path) # (not done) write out time averages as a netcdf file -# === 4) Saving output plots (TODO not yet finished) === -# -# Plots should be saved in EPS or PS format at //PS -# (created by the framework). Plots can be given any filename, but should have -# the extension ".eps" or ".ps". To make the webpage output, the framework will -# convert these to bitmaps with the same name but extension ".png". - -# Define a python function to make the plot, since we'll be doing it twice and -# we don't want to repeat ourselves. -def plot_and_save_figure(model_or_obs, title_string, dataset): - # initialize the plot - plt.figure(figsize=(12,6)) - plot_axes = plt.subplot(1,1,1) - # actually plot the data (makes a lat-lon colormap) - dataset.plot(ax = plot_axes) - plot_axes.set_title(title_string) - # save the plot in the right location - plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( - model_or_obs=model_or_obs, **os.environ - ) - plt.savefig(plot_path, bbox_inches='tight') -# end of function +# *** Produce data by season, daily *** +if __name__ == '__main__': + season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} + # season_dict = {"DJF": [1, 2, 12]} + out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} + for season in season_dict: + selected_months = season_dict.get(season) + plot_path = f"FAWA_Diag_{season}.eps" + # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps" + sampled_dataset = model_dataset.sel( + time=model_dataset.time.dt.month.isin(selected_months)) \ + .resample(time="1D").mean(dim="time") + intermediate_dataset: xr.Dataset = compute_from_sampled_data(sampled_dataset) + out_path = out_paths[season] # TODO set it + intermediate_dataset.to_netcdf(out_path) + print(f"Finished outputing intermediate dataset: {out_path}") + seasonal_avg_data = time_average_processing(intermediate_dataset) + plot_finite_amplitude_wave_diagnostics( + seasonal_avg_data, + title_str=f'Finite-amplitude diagnostic plots for {season}', + plot_path=plot_path) + print(f"Finishing outputting {plot_path}.") + print("Finish the whole process") -# set an informative title using info about the analysis set in env vars -title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) -# Plot the model data: -plot_and_save_figure("model", title_string, model_dataset) + # === 4) Saving output plots (TODO not yet finished) === + # + # Plots should be saved in EPS or PS format at //PS + # (created by the framework). Plots can be given any filename, but should have + # the extension ".eps" or ".ps". To make the webpage output, the framework will + # convert these to bitmaps with the same name but extension ".png". -### 5) Loading obs data files & plotting obs figures: ########################## -# -# If your diagnostic uses any model-independent supporting data (eg. reference -# or observational data) larger than a few kB of text, it should be provided via -# the observational data distribution instead of being included with the source -# code. This data can be in any format: the framework doesn't process it. The -# environment variable OBS_DATA will be set to a path where the framework has -# copied a directory containing your supplied data. -# -# The following command replaces the substring "{OBS_DATA}" with the value of -# the OBS_DATA environment variable. -input_path = "{OBS_DATA}/example_tas_means.nc".format(**os.environ) + # Define a python function to make the plot, since we'll be doing it twice and + # we don't want to repeat ourselves. -# command to load the netcdf file -obs_dataset = xr.open_dataset(input_path) -obs_mean_tas = obs_dataset['mean_tas'] + def plot_and_save_figure(model_or_obs, title_string, final_dataset): + """ + Args: + model_or_obs(str): shall either be 'model' or 'obs_data' + title_string(str): title of the main plot + final_dataset: processed dataset (mean already taken) + """ + # initialize the plot + plt.figure(figsize=(12, 6)) + plot_axes = plt.subplot(1, 1, 1) + # actually plot the data (makes a lat-lon colormap) + final_dataset.plot(ax=plot_axes) + plot_axes.set_title(title_string) + # save the plot in the right location + plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( + model_or_obs=model_or_obs, **os.environ + ) + plt.savefig(plot_path, bbox_inches='tight') -# Plot the observational data: -title_string = "Observations: mean {tas_var}".format(**os.environ) -plot_and_save_figure("obs", title_string, obs_mean_tas) + # end of function -### 6) Cleaning up: ############################################################ -# -# In addition to your language's normal housekeeping, don't forget to delete any -# temporary/scratch files you created in step 4). -# -model_dataset.close() -obs_dataset.close() + # set an informative title using info about the analysis set in env vars + title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) + # Plot the model data: + # plot_and_save_figure("model", title_string, model_dataset) + # 6) Cleaning up: + # + # In addition to your language's normal housekeeping, don't forget to delete any + # temporary/scratch files you created in step 4). + # + model_dataset.close() ### 7) Error/Exception-Handling Example ######################################## -nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) -try: - nonexistent_dataset = xr.open_dataset(nonexistent_file_path) -except IOError as error: - print(error) - print("This message is printed by the example POD because exception-handling is working!") - +# nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) +# try: +# nonexistent_dataset = xr.open_dataset(nonexistent_file_path) +# except IOError as error: +# print(error) +# print("This message is printed by the example POD because exception-handling is working!") ### 8) Confirm POD executed sucessfully ######################################## -print("Last log message by Example POD: finished successfully!") +# print("Last log message by Example POD: finished successfully!") diff --git a/diagnostics/precip_buoy_diag/vert_cython.pyx b/diagnostics/precip_buoy_diag/vert_cython.pyx index dc03ccbf0..2eb8af1ad 100644 --- a/diagnostics/precip_buoy_diag/vert_cython.pyx +++ b/diagnostics/precip_buoy_diag/vert_cython.pyx @@ -123,7 +123,7 @@ np.ndarray[DTYPE1_t, ndim=1] ind_low): ## Mid-level ## # if (j=im): # op4[i]+=var[j,i]*dp[j,i] -# op5[i]+=var1[j,i]*dp[j,i] +# op5[i]+=lwa_baro[j,i]*dp[j,i] def vert_integ_exneri_variable_bl(np.ndarray[DTYPE_t, ndim=2] var, From d24cea86e0f5bab36d26750b018540de8cee76bb Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 21:41:09 -0500 Subject: [PATCH 088/178] gridfill move to main program --- .../finite_amplitude_wave_diag_zonal_mean.py | 24 ++++++++++++++++++- .../gridfill_utils.py | 24 ------------------- .../gridfill_with_model_data.py | 2 +- .../iMac_model_data_gridfill.py | 2 +- ..._model_data_interpolate_before_gridfill.py | 2 +- .../iMac_model_data_zonal_mean.py | 2 +- 6 files changed, 27 insertions(+), 29 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 0ea49959c..3c173aa92 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -48,6 +48,8 @@ # doi:10.1175/BAMS-D-18-0042.1. # ================================================================================ import os + +import gridfill import matplotlib from collections import namedtuple import socket @@ -64,7 +66,6 @@ import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots from cartopy import crs as ccrs -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 from hn2016_falwa.constant import SCALE_HEIGHT, P_GROUND @@ -103,6 +104,26 @@ # === Define functions === +def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): + """ + Fill missing values in lat-lon grids with values derived by solving Poisson's equation + using a relaxation scheme. + + Args: + lat_lon_field(np.ndarray): 2D array to apply gridfill on + itermax(int): maximum iteration for poisson solver + verbose(bool): verbose level of poisson solver + + Returns: + A 2D array of the same dimension with all nan filled. + """ + + lat_lon_filled, converged = gridfill.fill( + grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, + cyclic=True, itermax=itermax, verbose=verbose) + + return lat_lon_filled + def convert_pseudoheight_to_hPa(height_array): """ Args: @@ -403,3 +424,4 @@ def plot_and_save_figure(model_or_obs, title_string, final_dataset): ### 8) Confirm POD executed sucessfully ######################################## # print("Last log message by Example POD: finished successfully!") + diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py index 358453920..fc524a2a8 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py @@ -1,30 +1,6 @@ -import datetime - -import gridfill import numpy as np -def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): - """ - Fill missing values in lat-lon grids with values derived by solving Poisson's equation - using a relaxation scheme. - - Args: - lat_lon_field(np.ndarray): 2D array to apply gridfill on - itermax(int): maximum iteration for poisson solver - verbose(bool): verbose level of poisson solver - - Returns: - A 2D array of the same dimension with all nan filled. - """ - - lat_lon_filled, converged = gridfill.fill( - grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, - cyclic=True, itermax=itermax, verbose=verbose) - - return lat_lon_filled - - def fill_nan_with_zonal_mean_each_level(lat_lon_field): """ The solution is from the StackOverflow thread: diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py b/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py index 6c5875ec9..05e5dcacc 100644 --- a/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py @@ -7,7 +7,7 @@ import numpy as np from hn2016_falwa.xarrayinterface import QGDataset -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level # These are local path to Clare's iMac storage_path = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py index 5abbf2f3b..abcf9a3d9 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py @@ -4,7 +4,7 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22 diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py index 4b51648fb..b38311abb 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py @@ -6,7 +6,7 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py index 439943d97..c3e41b726 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py @@ -4,7 +4,7 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.gridfill_utils import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22 From f033ccb1bd903a9a74f1782558dca5425d547dca Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 21:43:47 -0500 Subject: [PATCH 089/178] fix environ --- diagnostics/finite_amplitude_wave_diag/export_env_var2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh b/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh index d5de25959..035937b5e 100644 --- a/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh +++ b/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh @@ -5,5 +5,5 @@ export T_VAR=t export TIME_COORD=time export LON_COORD=lon export LAT_COORD=lat -export LEV_COORD=level +export LEV_COORD=plev export WK_DIR=$HOME/GitHub/mdtf/wkdir From 2ebfe9a7b4385c1d528d1f2cd40ae012e23f3a1b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 21:44:46 -0500 Subject: [PATCH 090/178] fix names --- diagnostics/finite_amplitude_wave_diag/export_env_var2.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh b/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh index 035937b5e..5343a5094 100644 --- a/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh +++ b/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh @@ -1,7 +1,7 @@ export UVT_FILE=$HOME/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc -export U_VAR=u -export V_VAR=v -export T_VAR=t +export U_VAR=ua +export V_VAR=va +export T_VAR=ta export TIME_COORD=time export LON_COORD=lon export LAT_COORD=lat From 84d8fc36909f0beb27f69bbda4a0cf5d74390307 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 21:52:54 -0500 Subject: [PATCH 091/178] fasten gridfill --- .../finite_amplitude_wave_diag_zonal_mean.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 3c173aa92..77c1a64ee 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -76,7 +76,7 @@ # //...nc # Here and frequency are requested in the "varlist" part of # settings.json. -load_environ = True +load_environ = (socket.gethostname() == 'otc') if load_environ: uvt_path = os.environ["UVT_FILE"] u_var_name = os.environ["U_VAR"] @@ -117,6 +117,8 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): Returns: A 2D array of the same dimension with all nan filled. """ + if np.isnan(lat_lon_field).sum() == 0: + return lat_lon_field lat_lon_filled, converged = gridfill.fill( grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, @@ -163,7 +165,7 @@ def convert_hPa_to_pseudoheight(p_array): def compute_from_sampled_data(sampled_dataset): # === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === - num_of_nan = sampled_dataset['ua'].isnull().sum().values + num_of_nan = sampled_dataset[u_var_name].isnull().sum().values do_gridfill = True if num_of_nan > 0 else False # Boolean if do_gridfill: print("NaN detected in u/v/T field. Do gridfill with poisson solver.") From 6ce07ca14ad4d055e4f6392b46c6328ab5c8f74f Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 8 Sep 2023 21:55:48 -0500 Subject: [PATCH 092/178] close files when not needed --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 77c1a64ee..7b582c8e7 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -179,6 +179,7 @@ def compute_from_sampled_data(sampled_dataset): output_core_dims=(('lat', 'lon'),), vectorize=True, dask="allowed") field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) + field_at_all_level.close() print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") print("Finished gridfill") gridfill_file_path = gridfill_file_path.format(var="*") @@ -202,6 +203,7 @@ def compute_from_sampled_data(sampled_dataset): var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}, qgfield=QGFieldNH18, qgfield_kwargs={"dz": dz, "kmax": kmax}) + gridfilled_dataset.close() uvtinterp = qgds.interpolate_fields()[['interpolated_u']] \ .interp(coords={ "xlon": (lon_name, original_grid[lon_name].data), From 5511d92813cddbcc93338ec3c3967a06d2dc45c6 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 14:51:26 -0500 Subject: [PATCH 093/178] change to new interface to test on otc --- .../finite_amplitude_wave_diag_zonal_mean.py | 55 +++++++++---------- .../finite_amplitude_wave_diag/settings.jsonc | 12 +++- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 7b582c8e7..64144d926 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -51,6 +51,7 @@ import gridfill import matplotlib +from matplotlib import gridspec from collections import namedtuple import socket @@ -77,7 +78,7 @@ # Here and frequency are requested in the "varlist" part of # settings.json. load_environ = (socket.gethostname() == 'otc') -if load_environ: +if load_environ: # otc path uvt_path = os.environ["UVT_FILE"] u_var_name = os.environ["U_VAR"] v_var_name = os.environ["V_VAR"] @@ -87,8 +88,7 @@ lat_name = os.environ["LAT_COORD"] lon_name = os.environ["LON_COORD"] wk_dir = os.environ["WK_DIR"] -else: - # iMac path +else: # iMac path uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" u_var_name = "ua" v_var_name = "va" @@ -204,23 +204,18 @@ def compute_from_sampled_data(sampled_dataset): qgfield=QGFieldNH18, qgfield_kwargs={"dz": dz, "kmax": kmax}) gridfilled_dataset.close() - uvtinterp = qgds.interpolate_fields()[['interpolated_u']] \ - .interp(coords={ - "xlon": (lon_name, original_grid[lon_name].data), - "ylat": (lat_name, original_grid[lat_name].data)}) # No variables needed from this dataset - refstates = qgds.compute_reference_states()[['uref']].interp(coords={ - "ylat": (lat_name, original_grid[lat_name].data)}) - # TODO: determine whether to interpolate back to plev grid - lwadiags = qgds.compute_lwa_and_barotropic_fluxes()[['lwa_baro', 'u_baro', 'lwa']] \ - .interp(coords={ + # Compute reference states and LWA + qgds.interpolate_fields(return_dataset=False) + qgds.compute_reference_states(return_dataset=False) + qgds.compute_lwa_and_barotropic_fluxes(return_dataset=False) + output_dataset = xr.Dataset(data_vars={ + 'uref': qgds.uref, + 'zonal_mean_u': qgds.interpolated_u.mean(axis=-1), + 'zonal_mean_lwa': qgds.lwa.mean(axis=-1), + 'lwa_baro': qgds.lwa_baro, + 'u_baro': qgds.u_baro}).interp(coords={ "xlon": (lon_name, original_grid[lon_name].data), "ylat": (lat_name, original_grid[lat_name].data)}) - output_dataset = xr.Dataset(data_vars={ - 'zonal_mean_u': uvtinterp.interpolated_u.mean(axis=-1), - 'uref': refstates.uref, - 'zonal_mean_lwa': lwadiags.lwa.mean(axis=-1), - 'lwa_baro': lwadiags.lwa_baro, - 'u_baro': lwadiags.u_baro}) return output_dataset @@ -269,9 +264,12 @@ def time_average_processing(dataset: xr.Dataset): def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plot_path): cmap = "jet" fig = plt.figure(figsize=(9, 12)) + # create grid for different subplots + spec = gridspec.GridSpec( + ncols=2, nrows=3, width_ratios=[1, 2], wspace=0.3, hspace=0.3, height_ratios=[1, 1, 1]) fig.suptitle(title_str) # *** Zonal mean U *** - ax1 = fig.add_subplot(3, 2, 1) + ax1 = fig.add_subplot(spec[0]) fig1 = ax1.contourf( original_grid['lat'], np.arange(0, 1000 * 33, 1000), seasonal_average_data.zonal_mean_u, @@ -281,7 +279,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo ax1.set_xlim([-80, 80]) # *** FAWA *** - ax3 = fig.add_subplot(3, 2, 3) + ax3 = fig.add_subplot(spec[2]) fig3 = ax3.contourf( original_grid['lat'], np.arange(0, 1000 * 33, 1000), seasonal_average_data.zonal_mean_lwa, @@ -291,7 +289,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo ax3.set_xlim([-80, 80]) # *** Uref *** - ax2 = fig.add_subplot(3, 2, 5) + ax2 = fig.add_subplot(spec[4]) fig2 = ax2.contourf( original_grid['lat'], np.arange(0, 1000 * 33, 1000), seasonal_average_data.uref, @@ -301,7 +299,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo ax2.set_xlim([-80, 80]) # *** U baro *** - ax5 = fig.add_subplot(3, 2, 2, projection=ccrs.PlateCarree(180)) + ax5 = fig.add_subplot(spec[1], projection=ccrs.PlateCarree(180)) ax5.coastlines(color='black', alpha=0.7) ax5.set_aspect('auto', adjustable=None) fig5 = ax5.contourf( @@ -314,7 +312,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo ax5.set_title('U baro') # *** LWA baro *** - ax4 = fig.add_subplot(3, 2, 4, projection=ccrs.PlateCarree(180)) + ax4 = fig.add_subplot(spec[3], projection=ccrs.PlateCarree(180)) ax4.coastlines(color='black', alpha=0.7) ax4.set_aspect('auto', adjustable=None) fig4 = ax4.contourf( @@ -326,7 +324,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo ax4.set_title('LWA baro') # *** Covariance between LWA and U *** - ax6 = fig.add_subplot(3, 2, 6, projection=ccrs.PlateCarree(180)) + ax6 = fig.add_subplot(spec[5], projection=ccrs.PlateCarree(180)) ax6.coastlines(color='black', alpha=0.7) ax6.set_aspect('auto', adjustable=None) fig6 = ax6.contourf( @@ -338,7 +336,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo fig.colorbar(fig6, ax=ax6) ax6.set_title('Covariance between LWA and U(baro)') plt.tight_layout() - # plt.show() + plt.show() plt.savefig(plot_path, bbox_inches='tight') @@ -351,8 +349,8 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # *** Produce data by season, daily *** if __name__ == '__main__': - season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} - # season_dict = {"DJF": [1, 2, 12]} + # season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} + season_dict = {"DJF": [1, 2, 12]} out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} for season in season_dict: selected_months = season_dict.get(season) @@ -399,8 +397,7 @@ def plot_and_save_figure(model_or_obs, title_string, final_dataset): plot_axes.set_title(title_string) # save the plot in the right location plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( - model_or_obs=model_or_obs, **os.environ - ) + model_or_obs=model_or_obs, **os.environ) plt.savefig(plot_path, bbox_inches='tight') diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index b068ee7f8..ff11bf955 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -9,7 +9,8 @@ "xarray", "netCDF4", "numpy", - "cartopy" + "cartopy", + "hn2016_falwa" ] } }, @@ -36,6 +37,15 @@ "pod_env_vars":{ "start_year" : "1993", "end_year" : "2009", + "UVT_FILE": "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc", + "U_VAR": "ua", + "V_VAR": "va", + "T_VAR": "ta", + "TIME_COORD": "time", + "LEV_COORD": "plev", + "LAT_COORD": "lat", + "LON_COORD": "lon", + "WK_DIR": "wkdir" }, "varlist":{ "ua":{ From 6eed37e52a9a08b3dc6d5339d05021bbfc3d4b1b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 15:12:16 -0500 Subject: [PATCH 094/178] save progress --- .../finite_amplitude_wave_diag_zonal_mean.py | 30 +++++-------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 64144d926..2c67b1d48 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -89,7 +89,8 @@ lon_name = os.environ["LON_COORD"] wk_dir = os.environ["WK_DIR"] else: # iMac path - uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" + uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ + "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" u_var_name = "ua" v_var_name = "va" t_var_name = "ta" @@ -355,7 +356,9 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo for season in season_dict: selected_months = season_dict.get(season) plot_path = f"FAWA_Diag_{season}.eps" - # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps" + # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( + # model_or_obs=model_or_obs, **os.environ) + # plt.savefig(plot_path, bbox_inches='tight') sampled_dataset = model_dataset.sel( time=model_dataset.time.dt.month.isin(selected_months)) \ .resample(time="1D").mean(dim="time") @@ -382,27 +385,6 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # Define a python function to make the plot, since we'll be doing it twice and # we don't want to repeat ourselves. - def plot_and_save_figure(model_or_obs, title_string, final_dataset): - """ - Args: - model_or_obs(str): shall either be 'model' or 'obs_data' - title_string(str): title of the main plot - final_dataset: processed dataset (mean already taken) - """ - # initialize the plot - plt.figure(figsize=(12, 6)) - plot_axes = plt.subplot(1, 1, 1) - # actually plot the data (makes a lat-lon colormap) - final_dataset.plot(ax=plot_axes) - plot_axes.set_title(title_string) - # save the plot in the right location - plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( - model_or_obs=model_or_obs, **os.environ) - plt.savefig(plot_path, bbox_inches='tight') - - - # end of function - # set an informative title using info about the analysis set in env vars title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) # Plot the model data: @@ -415,6 +397,7 @@ def plot_and_save_figure(model_or_obs, title_string, final_dataset): # model_dataset.close() + ### 7) Error/Exception-Handling Example ######################################## # nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) # try: @@ -423,6 +406,7 @@ def plot_and_save_figure(model_or_obs, title_string, final_dataset): # print(error) # print("This message is printed by the example POD because exception-handling is working!") + ### 8) Confirm POD executed sucessfully ######################################## # print("Last log message by Example POD: finished successfully!") From 3f071902870e70487a34eb861c97f45250d12236 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 16:27:48 -0500 Subject: [PATCH 095/178] change latitude analysis resolution to 1.5 deg --- .../finite_amplitude_wave_diag_zonal_mean.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 2c67b1d48..1dfbead52 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -100,8 +100,8 @@ lon_name = "lon" wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" # Regular grid defined by developer -xlon = np.arange(0, 361, 1.0) -ylat = np.arange(-90, 91, 1.0) +xlon = np.arange(0, 361, 1.5) +ylat = np.arange(-90, 91, 1.5) # === Define functions === From 58acbba12893b6d4f57a1bd8bd9da02f09900c81 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 16:29:16 -0500 Subject: [PATCH 096/178] update src/default_tests.jsonc --- src/default_tests.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_tests.jsonc b/src/default_tests.jsonc index efe7d6be9..a75211c90 100644 --- a/src/default_tests.jsonc +++ b/src/default_tests.jsonc @@ -84,13 +84,13 @@ // Location of the Anaconda/miniconda installation to use for managing // dependencies (path returned by running `conda info --base`.) If empty, // framework will attempt to determine location of system's conda installation. - "conda_root": "", + "conda_root": "/home/clare/miniconda3", // Directory containing the framework-specific conda environments. This should // be equal to the "--env_dir" flag passed to conda_env_setup.sh. If left // blank, the framework will look for its environments in the system default // location. - "conda_env_root": "", + "conda_env_root": "/home/clare/miniconda3/envs", // SETTINGS ------------------------------------------------------------------ // Any command-line option recognized by the mdtf script (type `mdtf --help`) From ea4a32af3fd776eca13f504505a2dc6df653ba65 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 16:32:11 -0500 Subject: [PATCH 097/178] use env variable in default_tests.jsonc --- src/default_tests.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_tests.jsonc b/src/default_tests.jsonc index 69a110898..18bed5492 100644 --- a/src/default_tests.jsonc +++ b/src/default_tests.jsonc @@ -84,13 +84,13 @@ // Location of the Anaconda/miniconda or micromamba binary installation to use for managing // dependencies (path returned by running `[conda | micromamba] info`.) If empty, // framework will attempt to determine location of system's conda installation. - "conda_root": "/home/clare/miniconda3", + "conda_root": "$HOME/miniconda3", // Directory containing the framework-specific conda environments. This should // be equal to the "--env_dir" flag passed to conda_env_setup.sh. If left // blank, the framework will look for its environments in the system default // location. - "conda_env_root": "/home/clare/miniconda3/envs", + "conda_env_root": "$HOME/miniconda3/envs", // SETTINGS ------------------------------------------------------------------ // Any command-line option recognized by the mdtf script (type `mdtf --help`) From 0441d6e3a7769773bf3b064e46ec15c8ad179595 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 16:33:14 -0500 Subject: [PATCH 098/178] Print out analysis resolution --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 1dfbead52..1bc2fea01 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -102,6 +102,8 @@ # Regular grid defined by developer xlon = np.arange(0, 361, 1.5) ylat = np.arange(-90, 91, 1.5) +print(f"Use xlon: {xlon}") +print(f"Use ylat: {ylat}") # === Define functions === From e492a7e0929999f71336c15c56af2725de7fca26 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 17:34:03 -0500 Subject: [PATCH 099/178] sample just first timestamp of a day --- .../finite_amplitude_wave_diag_zonal_mean.py | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 1bc2fea01..3999f38c7 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -48,6 +48,7 @@ # doi:10.1175/BAMS-D-18-0042.1. # ================================================================================ import os +from typing import Tuple import gridfill import matplotlib @@ -77,6 +78,7 @@ # //...nc # Here and frequency are requested in the "varlist" part of # settings.json. +already_done_gridfill = True load_environ = (socket.gethostname() == 'otc') if load_environ: # otc path uvt_path = os.environ["UVT_FILE"] @@ -166,11 +168,12 @@ def convert_hPa_to_pseudoheight(p_array): lon_name: model_dataset.coords[lon_name]} -def compute_from_sampled_data(sampled_dataset): +def implement_gridfill(sampled_dataset) -> Tuple[str, bool]: # === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === num_of_nan = sampled_dataset[u_var_name].isnull().sum().values - do_gridfill = True if num_of_nan > 0 else False # Boolean - if do_gridfill: + need_gridfill = True if num_of_nan > 0 else False # Boolean + done_interpolation_onto_lat_grid = False + if need_gridfill: print("NaN detected in u/v/T field. Do gridfill with poisson solver.") gridfill_file_path = "gridfill_{var}.nc" args_tuple = [u_var_name, v_var_name, t_var_name] @@ -181,19 +184,29 @@ def compute_from_sampled_data(sampled_dataset): input_core_dims=(('lat', 'lon'),), output_core_dims=(('lat', 'lon'),), vectorize=True, dask="allowed") + # Do interpolation to reduce space needed + field_at_all_level = field_at_all_level.interp( + coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) + done_interpolation_onto_lat_grid = True + print("Interpolated onto regular lat grid.") field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) field_at_all_level.close() print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") - print("Finished gridfill") gridfill_file_path = gridfill_file_path.format(var="*") + print(f"Finished gridfill. Filepath: {gridfill_file_path}") else: gridfill_file_path = uvt_path # Original file print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") + return gridfill_file_path, done_interpolation_onto_lat_grid + + +def compute_from_sampled_data(gridfill_file_path: str, done_interpolation_onto_lat_grid: bool): # === 2.2) INTERPOLATION: Interpolate onto regular grid for simplicity === gridfilled_dataset = xr.open_mfdataset(gridfill_file_path) - gridfilled_dataset = gridfilled_dataset.interp( - coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) + if not done_interpolation_onto_lat_grid: + gridfilled_dataset = gridfilled_dataset.interp( + coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) # === 2.3) VERTICAL RESOLUTION: determine the maximum pseudo-height this calculation can handle === dz = 1000 # TODO Variable to set earlier? @@ -363,8 +376,11 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # plt.savefig(plot_path, bbox_inches='tight') sampled_dataset = model_dataset.sel( time=model_dataset.time.dt.month.isin(selected_months)) \ - .resample(time="1D").mean(dim="time") - intermediate_dataset: xr.Dataset = compute_from_sampled_data(sampled_dataset) + .resample(time="1D").first() + #.resample(time="1D").mean(dim="time") + gridfill_file_path, done_interpolation_onto_lat_grid = implement_gridfill(sampled_dataset=sampled_dataset) + intermediate_dataset: xr.Dataset = compute_from_sampled_data( + gridfill_file_path=gridfill_file_path, done_interpolation_onto_lat_grid=done_interpolation_onto_lat_grid) out_path = out_paths[season] # TODO set it intermediate_dataset.to_netcdf(out_path) print(f"Finished outputing intermediate dataset: {out_path}") @@ -376,7 +392,6 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo print(f"Finishing outputting {plot_path}.") print("Finish the whole process") - # === 4) Saving output plots (TODO not yet finished) === # # Plots should be saved in EPS or PS format at //PS From 8f9736a04fbfca7c1284e20a79f36572a3dcfc71 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 17:34:58 -0500 Subject: [PATCH 100/178] 'first' with skipna=True is not yet implemented on dask arrays --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 3999f38c7..2be03a357 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -376,7 +376,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # plt.savefig(plot_path, bbox_inches='tight') sampled_dataset = model_dataset.sel( time=model_dataset.time.dt.month.isin(selected_months)) \ - .resample(time="1D").first() + .resample(time="1D", skipna=False).first() #.resample(time="1D").mean(dim="time") gridfill_file_path, done_interpolation_onto_lat_grid = implement_gridfill(sampled_dataset=sampled_dataset) intermediate_dataset: xr.Dataset = compute_from_sampled_data( From 46287a2b7c9f27b22615387f40a1796e620c2487 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 17:52:48 -0500 Subject: [PATCH 101/178] use groupby instead of resample --- .../finite_amplitude_wave_diag_zonal_mean.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 2be03a357..8264fe753 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -374,10 +374,9 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( # model_or_obs=model_or_obs, **os.environ) # plt.savefig(plot_path, bbox_inches='tight') - sampled_dataset = model_dataset.sel( - time=model_dataset.time.dt.month.isin(selected_months)) \ - .resample(time="1D", skipna=False).first() - #.resample(time="1D").mean(dim="time") + sampled_dataset = model_dataset.where( + model_dataset.time.dt.month.isin(selected_months), drop=True) \ + .groupby("time.day").mean("time") gridfill_file_path, done_interpolation_onto_lat_grid = implement_gridfill(sampled_dataset=sampled_dataset) intermediate_dataset: xr.Dataset = compute_from_sampled_data( gridfill_file_path=gridfill_file_path, done_interpolation_onto_lat_grid=done_interpolation_onto_lat_grid) From c16b2a1002ebe8b17ea7f06e51ee1927a31e3ad0 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 17:56:56 -0500 Subject: [PATCH 102/178] do four seasons --- .../finite_amplitude_wave_diag_zonal_mean.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 8264fe753..de6d9f45d 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -365,8 +365,8 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # *** Produce data by season, daily *** if __name__ == '__main__': - # season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} - season_dict = {"DJF": [1, 2, 12]} + season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} + # season_dict = {"DJF": [1, 2, 12]} out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} for season in season_dict: selected_months = season_dict.get(season) @@ -402,7 +402,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # we don't want to repeat ourselves. # set an informative title using info about the analysis set in env vars - title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) + # title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) # Plot the model data: # plot_and_save_figure("model", title_string, model_dataset) From 1475ecd4af78ea9ee876f8ebcad1b50aec402c4f Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 18:22:02 -0500 Subject: [PATCH 103/178] remove unused files --- .../finite_amplitude_wave_diag_zonal_mean.py | 33 +++---------------- .../{ => unused}/daily_avg.py | 0 .../daily_avg_model_notfinished.py | 0 .../{ => unused}/download_uvt_era5.py | 0 .../{ => unused}/era5_diag_original.py | 0 .../{ => unused}/era5_diag_xarray.py | 0 .../{ => unused}/example.html | 0 .../{ => unused}/example_diag.py | 0 .../{ => unused}/export_env_var.sh | 0 .../{ => unused}/export_env_var2.sh | 0 .../{ => unused}/extract_ten_timeslice.py | 0 .../{ => unused}/gridfill_utils.py | 0 .../{ => unused}/gridfill_with_model_data.py | 0 .../{ => unused}/iMac_model_data_gridfill.py | 0 ..._model_data_interpolate_before_gridfill.py | 2 +- .../iMac_model_data_zonal_mean.py | 0 .../{ => unused}/otc_examine_model_data.py | 0 .../otc_model_data_1tstep_extract.py | 0 .../{ => unused}/send_to_sandro.py | 0 .../{ => unused}/visualize_refstate.py | 2 +- 20 files changed, 6 insertions(+), 31 deletions(-) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/daily_avg.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/daily_avg_model_notfinished.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/download_uvt_era5.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/era5_diag_original.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/era5_diag_xarray.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/example.html (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/example_diag.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/export_env_var.sh (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/export_env_var2.sh (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/extract_ten_timeslice.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/gridfill_utils.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/gridfill_with_model_data.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/iMac_model_data_gridfill.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/iMac_model_data_interpolate_before_gridfill.py (97%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/iMac_model_data_zonal_mean.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/otc_examine_model_data.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/otc_model_data_1tstep_extract.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/send_to_sandro.py (100%) rename diagnostics/finite_amplitude_wave_diag/{ => unused}/visualize_refstate.py (80%) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index de6d9f45d..9079bc8fa 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -17,53 +17,27 @@ # The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). # ================================================================================ # Functionality (not written yet) -# -# In this section you should summarize the stages of the calculations your -# diagnostic performs, and how they translate to the individual source code files -# provided in your submission. This will, e.g., let maintainers fixing a bug or -# people with questions about how your code works know where to look. # ================================================================================ # Required programming language and libraries (not written yet) -# -# In this section you should summarize the programming languages and third-party -# libraries used by your diagnostic. You also provide this information in the -# ``settings.jsonc`` file, but here you can give helpful comments to human -# maintainers (eg, "We need at least version 1.5 of this library because we call -# this function.") # ================================================================================ # Required model output variables (not written yet) -# -# In this section you should describe each variable in the input data your -# diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, -# but here you should go into detail on the assumptions your diagnostic makes -# about the structure of the data. # ================================================================================ # References (not written yet) -# -# Here you should cite the journal articles providing the scientific basis for -# your diagnostic. -# -# Maloney, E. D, and Co-authors, 2019: Process-oriented evaluation of climate -# and wether forcasting models. BAMS, 100(9), 1665-1686, -# doi:10.1175/BAMS-D-18-0042.1. # ================================================================================ import os +import socket from typing import Tuple import gridfill import matplotlib from matplotlib import gridspec from collections import namedtuple -import socket - -from xarray import Dataset if socket.gethostname() == 'otc': matplotlib.use('Agg') # non-X windows backend # Commands to load third-party libraries. Any code you don't include that's # not part of your language's standard library should be listed in the # settings.jsonc file. -import netCDF4 import numpy as np import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots @@ -102,8 +76,8 @@ lon_name = "lon" wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" # Regular grid defined by developer -xlon = np.arange(0, 361, 1.5) -ylat = np.arange(-90, 91, 1.5) +xlon = np.arange(0, 361, 1.0) +ylat = np.arange(-90, 91, 1.0) print(f"Use xlon: {xlon}") print(f"Use ylat: {ylat}") @@ -354,6 +328,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo plt.tight_layout() plt.show() plt.savefig(plot_path, bbox_inches='tight') + plt.savefig(plot_path.replace(".eps", ".png"), bbox_inches='tight') # === 3) Saving output data === diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/unused/daily_avg.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/daily_avg.py rename to diagnostics/finite_amplitude_wave_diag/unused/daily_avg.py diff --git a/diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py b/diagnostics/finite_amplitude_wave_diag/unused/daily_avg_model_notfinished.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/daily_avg_model_notfinished.py rename to diagnostics/finite_amplitude_wave_diag/unused/daily_avg_model_notfinished.py diff --git a/diagnostics/finite_amplitude_wave_diag/download_uvt_era5.py b/diagnostics/finite_amplitude_wave_diag/unused/download_uvt_era5.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/download_uvt_era5.py rename to diagnostics/finite_amplitude_wave_diag/unused/download_uvt_era5.py diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_original.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/era5_diag_original.py rename to diagnostics/finite_amplitude_wave_diag/unused/era5_diag_original.py diff --git a/diagnostics/finite_amplitude_wave_diag/era5_diag_xarray.py b/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_xarray.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/era5_diag_xarray.py rename to diagnostics/finite_amplitude_wave_diag/unused/era5_diag_xarray.py diff --git a/diagnostics/finite_amplitude_wave_diag/example.html b/diagnostics/finite_amplitude_wave_diag/unused/example.html similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/example.html rename to diagnostics/finite_amplitude_wave_diag/unused/example.html diff --git a/diagnostics/finite_amplitude_wave_diag/example_diag.py b/diagnostics/finite_amplitude_wave_diag/unused/example_diag.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/example_diag.py rename to diagnostics/finite_amplitude_wave_diag/unused/example_diag.py diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var.sh b/diagnostics/finite_amplitude_wave_diag/unused/export_env_var.sh similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/export_env_var.sh rename to diagnostics/finite_amplitude_wave_diag/unused/export_env_var.sh diff --git a/diagnostics/finite_amplitude_wave_diag/export_env_var2.sh b/diagnostics/finite_amplitude_wave_diag/unused/export_env_var2.sh similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/export_env_var2.sh rename to diagnostics/finite_amplitude_wave_diag/unused/export_env_var2.sh diff --git a/diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py b/diagnostics/finite_amplitude_wave_diag/unused/extract_ten_timeslice.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/extract_ten_timeslice.py rename to diagnostics/finite_amplitude_wave_diag/unused/extract_ten_timeslice.py diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/unused/gridfill_utils.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/gridfill_utils.py rename to diagnostics/finite_amplitude_wave_diag/unused/gridfill_utils.py diff --git a/diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py b/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/gridfill_with_model_data.py rename to diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/iMac_model_data_gridfill.py rename to diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py similarity index 97% rename from diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py rename to diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py index b38311abb..e47a33361 100644 --- a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_interpolate_before_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py @@ -30,7 +30,7 @@ run_gridfill = True -all_files = xr.open_dataset("GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc") +all_files = xr.open_dataset("../GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc") all_files = all_files\ .assign_coords({'plev': all_files.plev // 100})\ .interp( diff --git a/diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/iMac_model_data_zonal_mean.py rename to diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py diff --git a/diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/unused/otc_examine_model_data.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/otc_examine_model_data.py rename to diagnostics/finite_amplitude_wave_diag/unused/otc_examine_model_data.py diff --git a/diagnostics/finite_amplitude_wave_diag/otc_model_data_1tstep_extract.py b/diagnostics/finite_amplitude_wave_diag/unused/otc_model_data_1tstep_extract.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/otc_model_data_1tstep_extract.py rename to diagnostics/finite_amplitude_wave_diag/unused/otc_model_data_1tstep_extract.py diff --git a/diagnostics/finite_amplitude_wave_diag/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/unused/send_to_sandro.py similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/send_to_sandro.py rename to diagnostics/finite_amplitude_wave_diag/unused/send_to_sandro.py diff --git a/diagnostics/finite_amplitude_wave_diag/visualize_refstate.py b/diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py similarity index 80% rename from diagnostics/finite_amplitude_wave_diag/visualize_refstate.py rename to diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py index a3ae5c32e..d3f49010b 100644 --- a/diagnostics/finite_amplitude_wave_diag/visualize_refstate.py +++ b/diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py @@ -2,7 +2,7 @@ import xarray as xr import matplotlib.pyplot as plt -all_file = xr.open_dataset("refstates_2022Jan.nc") +all_file = xr.open_dataset("../refstates_2022Jan.nc") plt.contourf( all_file.uref['ylat'], all_file.uref['height'], From a31d4027cb547cc49efbfc4291289430ab099ad1 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:00:37 -0500 Subject: [PATCH 104/178] refactored --- .../coordinate_utils.py | 26 ++ .../data_preprocessor.py | 3 + .../finite_amplitude_wave_diag_zonal_mean.py | 249 ++++++++++++------ 3 files changed, 191 insertions(+), 87 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/coordinate_utils.py create mode 100644 diagnostics/finite_amplitude_wave_diag/data_preprocessor.py diff --git a/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py b/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py new file mode 100644 index 000000000..047f622ba --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py @@ -0,0 +1,26 @@ +import numpy as np +from hn2016_falwa.constant import P_GROUND, SCALE_HEIGHT + + +def convert_pseudoheight_to_hPa(height_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) + return p_array + + +def convert_hPa_to_pseudoheight(p_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) + return height_array diff --git a/diagnostics/finite_amplitude_wave_diag/data_preprocessor.py b/diagnostics/finite_amplitude_wave_diag/data_preprocessor.py new file mode 100644 index 000000000..b28b04f64 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/data_preprocessor.py @@ -0,0 +1,3 @@ + + + diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 9079bc8fa..52840fc95 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -26,7 +26,7 @@ # ================================================================================ import os import socket -from typing import Tuple +from typing import Tuple, Optional import gridfill import matplotlib @@ -43,9 +43,155 @@ import matplotlib.pyplot as plt # python library we use to make plots from cartopy import crs as ccrs from hn2016_falwa.xarrayinterface import QGDataset -from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 +from hn2016_falwa.oopinterface import QGFieldNH18 from hn2016_falwa.constant import SCALE_HEIGHT, P_GROUND + +class DataPreprocessor: + def __init__( + self, wk_dir, xlon, ylat, u_var_name, v_var_name, t_var_name, plev_name, lat_name, lon_name, time_coord_name): + + self._wk_dir = wk_dir + self._xlon: np.array = xlon # user input + self._ylat: np.array = ylat # user input + self._u_var_name: str = u_var_name + self._v_var_name: str = v_var_name + self._t_var_name: str = t_var_name + self._plev_name: str = plev_name + self._lat_name: str = lat_name + self._lon_name: str = lon_name + self._original_plev = None + self._original_lat = None + self._original_lon = None + self._original_time_coord = None + self._time_coord_name: str = time_coord_name + self._sampled_dataset = None # Shall be xarray. Set type later + self._gridfill_needed: Optional[bool] = None + self._yz_mask = None + self._xy_mask = None + + def _save_original_coordinates(self, dataset): + self._original_plev = dataset.coords[plev_name] + self._original_lat = dataset.coords[lat_name] + self._original_lon = dataset.coords[lon_name] + + def _check_if_gridfill_is_needed(self, sampled_dataset): + num_of_nan = sampled_dataset[self._u_var_name].isnull().sum().values + if num_of_nan > 0: + self._gridfill_needed = True + self._do_save_mask(sampled_dataset) + else: + self._gridfill_needed = False + + def _do_save_mask(self, dataset): + self._yz_mask = dataset[self._u_var_name].isel({self._time_coord_name: 0})\ + .to_masked_array().mask.sum(axis=-1).astype(np.bool) + self._xy_mask = dataset[self._u_var_name].isel({self._time_coord_name: 0})\ + .to_masked_array().mask.sum(axis=0).astype(np.bool) + + def _save_preprocessed_data(self, dataset, output_path): + dataset.to_netcdf(output_path) + print(f"Finished outputing intermediate dataset: {output_path}") + + def _interpolate_onto_regular_grid(self, dataset): + dataset = dataset.interp( + coords={self._lat_name: self._ylat, self._lon_name: self._xlon}, + method="linear", + kwargs={"fill_value": "extrapolate"}) + return dataset + + def _implement_gridfill(self, dataset: xr.Dataset): + if not self._gridfill_needed: + print("No NaN values detected. Gridfill not needed. Bypass DataPreprocessor._implement_gridfill.") + return dataset + # *** Implement gridfill procedure *** + print(f"self._gridfill_needed = True. Do gridfill with poisson solver.") + args_tuple = [self._u_var_name, self._v_var_name, self._t_var_name] + gridfill_file_path = self._wk_dir + "/gridfill_{var}.nc" + for var_name in args_tuple: + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[sampled_dataset[var_name]], + input_core_dims=((self._lat_name, self._lon_name),), + output_core_dims=((self._lat_name, self._lon_name),), + vectorize=True, dask="allowed") + field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) + field_at_all_level.close() + print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") + load_gridfill_path = gridfill_file_path.format(var="*") + gridfilled_dataset = xr.open_mfdataset(load_gridfill_path) + return gridfilled_dataset + + def output_preprocess_data(self, sampled_dataset, output_path): + """ + Main procedure executed by this class + """ + self._save_original_coordinates(sampled_dataset) + self._check_if_gridfill_is_needed(sampled_dataset) + dataset = self._implement_gridfill(sampled_dataset) + dataset = self._interpolate_onto_regular_grid(dataset) # Interpolate onto regular grid + self._save_preprocessed_data(dataset, output_path) # Save preprocessed data + return dataset + + +""" +def implement_gridfill(sampled_dataset) -> Tuple[str, bool]: + # === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === + num_of_nan = sampled_dataset[u_var_name].isnull().sum().values + need_gridfill = True if num_of_nan > 0 else False # Boolean + done_interpolation_onto_lat_grid = False + if need_gridfill: + print("NaN detected in u/v/T field. Do gridfill with poisson solver.") + gridfill_file_path = "gridfill_{var}.nc" + args_tuple = [u_var_name, v_var_name, t_var_name] + for var_name in args_tuple: + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[sampled_dataset[var_name]], + input_core_dims=(('lat', 'lon'),), + output_core_dims=(('lat', 'lon'),), + vectorize=True, dask="allowed") + # Do interpolation to reduce space needed + field_at_all_level = field_at_all_level.interp( + coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) + done_interpolation_onto_lat_grid = True + print("Interpolated onto regular lat grid.") + field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) + field_at_all_level.close() + print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") + gridfill_file_path = gridfill_file_path.format(var="*") + print(f"Finished gridfill. Filepath: {gridfill_file_path}") + else: + gridfill_file_path = uvt_path # Original file + print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") + return gridfill_file_path, done_interpolation_onto_lat_grid +""" + + +def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): + """ + Fill missing values in lat-lon grids with values derived by solving Poisson's equation + using a relaxation scheme. + + Args: + lat_lon_field(np.ndarray): 2D array to apply gridfill on + itermax(int): maximum iteration for poisson solver + verbose(bool): verbose level of poisson solver + + Returns: + A 2D array of the same dimension with all nan filled. + """ + if np.isnan(lat_lon_field).sum() == 0: + return lat_lon_field + + lat_lon_filled, converged = gridfill.fill( + grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, + cyclic=True, itermax=itermax, verbose=verbose) + + return lat_lon_filled + + + # 1) Loading model data files: # # The framework copies model data to a regular directory structure of the form @@ -82,52 +228,6 @@ print(f"Use ylat: {ylat}") -# === Define functions === -def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): - """ - Fill missing values in lat-lon grids with values derived by solving Poisson's equation - using a relaxation scheme. - - Args: - lat_lon_field(np.ndarray): 2D array to apply gridfill on - itermax(int): maximum iteration for poisson solver - verbose(bool): verbose level of poisson solver - - Returns: - A 2D array of the same dimension with all nan filled. - """ - if np.isnan(lat_lon_field).sum() == 0: - return lat_lon_field - - lat_lon_filled, converged = gridfill.fill( - grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, - cyclic=True, itermax=itermax, verbose=verbose) - - return lat_lon_filled - -def convert_pseudoheight_to_hPa(height_array): - """ - Args: - height_array(np.array): pseudoheight in [m] - - Returns: - np.array which contains pressure levels in [hPa] - """ - p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) - return p_array - - -def convert_hPa_to_pseudoheight(p_array): - """ - Args: - height_array(np.array): pseudoheight in [m] - - Returns: - np.array which contains pressure levels in [hPa] - """ - height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) - return height_array - # 2) Doing computations: model_dataset = xr.open_mfdataset(uvt_path) # command to load the netcdf file if model_dataset[plev_name].units == 'Pa': # Pa shall be divided by 100 to become hPa @@ -142,38 +242,7 @@ def convert_hPa_to_pseudoheight(p_array): lon_name: model_dataset.coords[lon_name]} -def implement_gridfill(sampled_dataset) -> Tuple[str, bool]: - # === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === - num_of_nan = sampled_dataset[u_var_name].isnull().sum().values - need_gridfill = True if num_of_nan > 0 else False # Boolean - done_interpolation_onto_lat_grid = False - if need_gridfill: - print("NaN detected in u/v/T field. Do gridfill with poisson solver.") - gridfill_file_path = "gridfill_{var}.nc" - args_tuple = [u_var_name, v_var_name, t_var_name] - for var_name in args_tuple: - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[sampled_dataset[var_name]], - input_core_dims=(('lat', 'lon'),), - output_core_dims=(('lat', 'lon'),), - vectorize=True, dask="allowed") - # Do interpolation to reduce space needed - field_at_all_level = field_at_all_level.interp( - coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) - done_interpolation_onto_lat_grid = True - print("Interpolated onto regular lat grid.") - field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) - field_at_all_level.close() - print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") - gridfill_file_path = gridfill_file_path.format(var="*") - print(f"Finished gridfill. Filepath: {gridfill_file_path}") - else: - gridfill_file_path = uvt_path # Original file - print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") - return gridfill_file_path, done_interpolation_onto_lat_grid - - +""" def compute_from_sampled_data(gridfill_file_path: str, done_interpolation_onto_lat_grid: bool): # === 2.2) INTERPOLATION: Interpolate onto regular grid for simplicity === @@ -207,6 +276,7 @@ def compute_from_sampled_data(gridfill_file_path: str, done_interpolation_onto_l "xlon": (lon_name, original_grid[lon_name].data), "ylat": (lat_name, original_grid[lat_name].data)}) return output_dataset +""" def calculate_covariance(lwa_baro, u_baro): @@ -343,21 +413,26 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} # season_dict = {"DJF": [1, 2, 12]} out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} + + # Construct data preprocessor + data_preprocessor = DataPreprocessor( + wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, + plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) + for season in season_dict: selected_months = season_dict.get(season) - plot_path = f"FAWA_Diag_{season}.eps" + plot_path = f"FAWA_Diag_{season}_new.eps" # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( # model_or_obs=model_or_obs, **os.environ) # plt.savefig(plot_path, bbox_inches='tight') + + # Do temporal sampling to reduce the data size sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ .groupby("time.day").mean("time") - gridfill_file_path, done_interpolation_onto_lat_grid = implement_gridfill(sampled_dataset=sampled_dataset) - intermediate_dataset: xr.Dataset = compute_from_sampled_data( - gridfill_file_path=gridfill_file_path, done_interpolation_onto_lat_grid=done_interpolation_onto_lat_grid) - out_path = out_paths[season] # TODO set it - intermediate_dataset.to_netcdf(out_path) - print(f"Finished outputing intermediate dataset: {out_path}") + intermediate_output_path = out_paths[season] # TODO set it + intermediate_dataset: xr.Dataset = data_preprocessor.output_preprocess_data( + sampled_dataset=sampled_dataset, output_path=intermediate_output_path) seasonal_avg_data = time_average_processing(intermediate_dataset) plot_finite_amplitude_wave_diagnostics( seasonal_avg_data, From a2ad8b38a173d1ba608d2f72fc1d0ce36ecd000c Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:02:21 -0500 Subject: [PATCH 105/178] refactored --- .../finite_amplitude_wave_diag_zonal_mean.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 52840fc95..668faca3f 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -65,6 +65,7 @@ def __init__( self._original_lon = None self._original_time_coord = None self._time_coord_name: str = time_coord_name + self._new_time_coord_name: str = "day" self._sampled_dataset = None # Shall be xarray. Set type later self._gridfill_needed: Optional[bool] = None self._yz_mask = None @@ -84,9 +85,9 @@ def _check_if_gridfill_is_needed(self, sampled_dataset): self._gridfill_needed = False def _do_save_mask(self, dataset): - self._yz_mask = dataset[self._u_var_name].isel({self._time_coord_name: 0})\ + self._yz_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ .to_masked_array().mask.sum(axis=-1).astype(np.bool) - self._xy_mask = dataset[self._u_var_name].isel({self._time_coord_name: 0})\ + self._xy_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ .to_masked_array().mask.sum(axis=0).astype(np.bool) def _save_preprocessed_data(self, dataset, output_path): From 15954ec98779ee77ff1b83e51a5a5acdbf38e214 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:06:27 -0500 Subject: [PATCH 106/178] fix --- .../finite_amplitude_wave_diag_zonal_mean.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 668faca3f..c0b6e54e4 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -243,14 +243,7 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): lon_name: model_dataset.coords[lon_name]} -""" -def compute_from_sampled_data(gridfill_file_path: str, done_interpolation_onto_lat_grid: bool): - - # === 2.2) INTERPOLATION: Interpolate onto regular grid for simplicity === - gridfilled_dataset = xr.open_mfdataset(gridfill_file_path) - if not done_interpolation_onto_lat_grid: - gridfilled_dataset = gridfilled_dataset.interp( - coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) +def compute_from_sampled_data(gridfilled_dataset: xr.Dataset): # === 2.3) VERTICAL RESOLUTION: determine the maximum pseudo-height this calculation can handle === dz = 1000 # TODO Variable to set earlier? @@ -277,7 +270,6 @@ def compute_from_sampled_data(gridfill_file_path: str, done_interpolation_onto_l "xlon": (lon_name, original_grid[lon_name].data), "ylat": (lat_name, original_grid[lat_name].data)}) return output_dataset -""" def calculate_covariance(lwa_baro, u_baro): @@ -434,7 +426,8 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo intermediate_output_path = out_paths[season] # TODO set it intermediate_dataset: xr.Dataset = data_preprocessor.output_preprocess_data( sampled_dataset=sampled_dataset, output_path=intermediate_output_path) - seasonal_avg_data = time_average_processing(intermediate_dataset) + fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) + seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) plot_finite_amplitude_wave_diagnostics( seasonal_avg_data, title_str=f'Finite-amplitude diagnostic plots for {season}', From d6d72474db1547daf8ee8c261355cfddd148e47e Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:23:07 -0500 Subject: [PATCH 107/178] Try again --- .../finite_amplitude_wave_diag_zonal_mean.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index c0b6e54e4..6b7cf9358 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -86,12 +86,13 @@ def _check_if_gridfill_is_needed(self, sampled_dataset): def _do_save_mask(self, dataset): self._yz_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ - .to_masked_array().mask.sum(axis=-1).astype(np.bool) + .to_masked_array().mask.sum(axis=-1).astype(bool) self._xy_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ - .to_masked_array().mask.sum(axis=0).astype(np.bool) + .to_masked_array().mask.sum(axis=0).astype(bool) def _save_preprocessed_data(self, dataset, output_path): dataset.to_netcdf(output_path) + dataset.close() print(f"Finished outputing intermediate dataset: {output_path}") def _interpolate_onto_regular_grid(self, dataset): From 9fd76a024455f0da5c7afa0da78faaabb83f6bb0 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:24:23 -0500 Subject: [PATCH 108/178] close file --- .../finite_amplitude_wave_diag_zonal_mean.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 6b7cf9358..d64436d0b 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -121,8 +121,7 @@ def _implement_gridfill(self, dataset: xr.Dataset): field_at_all_level.close() print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") load_gridfill_path = gridfill_file_path.format(var="*") - gridfilled_dataset = xr.open_mfdataset(load_gridfill_path) - return gridfilled_dataset + return load_gridfill_path def output_preprocess_data(self, sampled_dataset, output_path): """ @@ -130,8 +129,10 @@ def output_preprocess_data(self, sampled_dataset, output_path): """ self._save_original_coordinates(sampled_dataset) self._check_if_gridfill_is_needed(sampled_dataset) - dataset = self._implement_gridfill(sampled_dataset) - dataset = self._interpolate_onto_regular_grid(dataset) # Interpolate onto regular grid + gridfill_path = self._implement_gridfill(sampled_dataset) + gridfilled_dataset = xr.open_mfdataset(gridfill_path) + dataset = self._interpolate_onto_regular_grid(gridfilled_dataset) # Interpolate onto regular grid + gridfilled_dataset.close() self._save_preprocessed_data(dataset, output_path) # Save preprocessed data return dataset From 608f3ff5df8987c129d04b41f8e73af0f8a04d74 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:29:51 -0500 Subject: [PATCH 109/178] close file --- .../finite_amplitude_wave_diag_zonal_mean.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index d64436d0b..fdfc21f4b 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -134,7 +134,7 @@ def output_preprocess_data(self, sampled_dataset, output_path): dataset = self._interpolate_onto_regular_grid(gridfilled_dataset) # Interpolate onto regular grid gridfilled_dataset.close() self._save_preprocessed_data(dataset, output_path) # Save preprocessed data - return dataset + dataset.close() """ @@ -426,14 +426,17 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo model_dataset.time.dt.month.isin(selected_months), drop=True) \ .groupby("time.day").mean("time") intermediate_output_path = out_paths[season] # TODO set it - intermediate_dataset: xr.Dataset = data_preprocessor.output_preprocess_data( + data_preprocessor.output_preprocess_data( sampled_dataset=sampled_dataset, output_path=intermediate_output_path) + intermediate_dataset = xr.open_mfdataset(intermediate_output_path) fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) plot_finite_amplitude_wave_diagnostics( seasonal_avg_data, title_str=f'Finite-amplitude diagnostic plots for {season}', plot_path=plot_path) + intermediate_dataset.close() + fawa_diagnostics_dataset.close() print(f"Finishing outputting {plot_path}.") print("Finish the whole process") From 244156adbf44241654de5bff560092071b747393 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 20:33:21 -0500 Subject: [PATCH 110/178] close file --- .../finite_amplitude_wave_diag_zonal_mean.py | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index fdfc21f4b..5dd83bb18 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -25,6 +25,7 @@ # References (not written yet) # ================================================================================ import os +import gc import socket from typing import Tuple, Optional @@ -93,7 +94,7 @@ def _do_save_mask(self, dataset): def _save_preprocessed_data(self, dataset, output_path): dataset.to_netcdf(output_path) dataset.close() - print(f"Finished outputing intermediate dataset: {output_path}") + print(f"Finished outputing preprocessed dataset: {output_path}") def _interpolate_onto_regular_grid(self, dataset): dataset = dataset.interp( @@ -409,12 +410,12 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # season_dict = {"DJF": [1, 2, 12]} out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} - # Construct data preprocessor - data_preprocessor = DataPreprocessor( - wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, - plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) - for season in season_dict: + # Construct data preprocessor + data_preprocessor = DataPreprocessor( + wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, + plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) + selected_months = season_dict.get(season) plot_path = f"FAWA_Diag_{season}_new.eps" # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( @@ -425,20 +426,23 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ .groupby("time.day").mean("time") - intermediate_output_path = out_paths[season] # TODO set it + preprocessed_output_path = out_paths[season] # TODO set it data_preprocessor.output_preprocess_data( - sampled_dataset=sampled_dataset, output_path=intermediate_output_path) - intermediate_dataset = xr.open_mfdataset(intermediate_output_path) + sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) + intermediate_dataset = xr.open_mfdataset(preprocessed_output_path) fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) plot_finite_amplitude_wave_diagnostics( seasonal_avg_data, title_str=f'Finite-amplitude diagnostic plots for {season}', plot_path=plot_path) + sampled_dataset.close() intermediate_dataset.close() fawa_diagnostics_dataset.close() print(f"Finishing outputting {plot_path}.") + gc.collect() print("Finish the whole process") + model_dataset.close() # === 4) Saving output plots (TODO not yet finished) === # From 6310c92eb414aef02b014562178bdb797b5f3366 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 21:01:28 -0500 Subject: [PATCH 111/178] test on cluster --- .../coordinate_utils.py | 26 ------ .../data_preprocessor.py | 3 - .../finite_amplitude_wave_diag_zonal_mean.py | 81 +++++++++---------- 3 files changed, 38 insertions(+), 72 deletions(-) delete mode 100644 diagnostics/finite_amplitude_wave_diag/data_preprocessor.py diff --git a/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py b/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py index 047f622ba..e69de29bb 100644 --- a/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py @@ -1,26 +0,0 @@ -import numpy as np -from hn2016_falwa.constant import P_GROUND, SCALE_HEIGHT - - -def convert_pseudoheight_to_hPa(height_array): - """ - Args: - height_array(np.array): pseudoheight in [m] - - Returns: - np.array which contains pressure levels in [hPa] - """ - p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) - return p_array - - -def convert_hPa_to_pseudoheight(p_array): - """ - Args: - height_array(np.array): pseudoheight in [m] - - Returns: - np.array which contains pressure levels in [hPa] - """ - height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) - return height_array diff --git a/diagnostics/finite_amplitude_wave_diag/data_preprocessor.py b/diagnostics/finite_amplitude_wave_diag/data_preprocessor.py deleted file mode 100644 index b28b04f64..000000000 --- a/diagnostics/finite_amplitude_wave_diag/data_preprocessor.py +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 5dd83bb18..a6f2b2325 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -45,7 +45,33 @@ from cartopy import crs as ccrs from hn2016_falwa.xarrayinterface import QGDataset from hn2016_falwa.oopinterface import QGFieldNH18 -from hn2016_falwa.constant import SCALE_HEIGHT, P_GROUND +from hn2016_falwa.constant import P_GROUND, SCALE_HEIGHT + + +def convert_pseudoheight_to_hPa(height_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) + return p_array + + +def convert_hPa_to_pseudoheight(p_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) + return height_array + + class DataPreprocessor: @@ -138,40 +164,6 @@ def output_preprocess_data(self, sampled_dataset, output_path): dataset.close() -""" -def implement_gridfill(sampled_dataset) -> Tuple[str, bool]: - # === 2.1) GRIDFILL: Check if any NaN exist. If yes, do gridfill. === - num_of_nan = sampled_dataset[u_var_name].isnull().sum().values - need_gridfill = True if num_of_nan > 0 else False # Boolean - done_interpolation_onto_lat_grid = False - if need_gridfill: - print("NaN detected in u/v/T field. Do gridfill with poisson solver.") - gridfill_file_path = "gridfill_{var}.nc" - args_tuple = [u_var_name, v_var_name, t_var_name] - for var_name in args_tuple: - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[sampled_dataset[var_name]], - input_core_dims=(('lat', 'lon'),), - output_core_dims=(('lat', 'lon'),), - vectorize=True, dask="allowed") - # Do interpolation to reduce space needed - field_at_all_level = field_at_all_level.interp( - coords={lat_name: ylat, lon_name: xlon}, method="linear", kwargs={"fill_value": "extrapolate"}) - done_interpolation_onto_lat_grid = True - print("Interpolated onto regular lat grid.") - field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) - field_at_all_level.close() - print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") - gridfill_file_path = gridfill_file_path.format(var="*") - print(f"Finished gridfill. Filepath: {gridfill_file_path}") - else: - gridfill_file_path = uvt_path # Original file - print(f"No gridfill is necessary. Continue to work on {gridfill_file_path}") - return gridfill_file_path, done_interpolation_onto_lat_grid -""" - - def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): """ Fill missing values in lat-lon grids with values derived by solving Poisson's equation @@ -252,6 +244,7 @@ def compute_from_sampled_data(gridfilled_dataset: xr.Dataset): dz = 1000 # TODO Variable to set earlier? hmax = -SCALE_HEIGHT * np.log(gridfilled_dataset[plev_name].min() / P_GROUND) kmax = int(hmax // dz) + 1 + original_pseudoheight = convert_hPa_to_pseudoheight(original_grid[plev_name]).rename("height") # === 2.4) WAVE ACTIVITY COMPUTATION: Compute Uref, FAWA, barotropic components of u and LWA === qgds = QGDataset( @@ -317,7 +310,7 @@ def time_average_processing(dataset: xr.Dataset): return seasonal_avg_data -def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plot_path): +def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, title_str, plot_path): cmap = "jet" fig = plt.figure(figsize=(9, 12)) # create grid for different subplots @@ -327,7 +320,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # *** Zonal mean U *** ax1 = fig.add_subplot(spec[0]) fig1 = ax1.contourf( - original_grid['lat'], np.arange(0, 1000 * 33, 1000), + original_grid['lat'], analysis_height_array, seasonal_average_data.zonal_mean_u, 30, cmap=cmap) fig.colorbar(fig1, ax=ax1) @@ -337,7 +330,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # *** FAWA *** ax3 = fig.add_subplot(spec[2]) fig3 = ax3.contourf( - original_grid['lat'], np.arange(0, 1000 * 33, 1000), + original_grid['lat'], analysis_height_array, seasonal_average_data.zonal_mean_lwa, 30, cmap=cmap) fig.colorbar(fig3, ax=ax3) @@ -347,7 +340,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # *** Uref *** ax2 = fig.add_subplot(spec[4]) fig2 = ax2.contourf( - original_grid['lat'], np.arange(0, 1000 * 33, 1000), + original_grid['lat'], analysis_height_array, seasonal_average_data.uref, 30, cmap=cmap) fig.colorbar(fig2, ax=ax2) @@ -407,7 +400,6 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # *** Produce data by season, daily *** if __name__ == '__main__': season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} - # season_dict = {"DJF": [1, 2, 12]} out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} for season in season_dict: @@ -431,15 +423,19 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) intermediate_dataset = xr.open_mfdataset(preprocessed_output_path) fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) + analysis_height_array = fawa_diagnostics_dataset.coords['height'].data seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) plot_finite_amplitude_wave_diagnostics( seasonal_avg_data, + analysis_height_array, title_str=f'Finite-amplitude diagnostic plots for {season}', plot_path=plot_path) + print(f"Finishing outputting {plot_path}.") + + # Close xarray datasets sampled_dataset.close() intermediate_dataset.close() fawa_diagnostics_dataset.close() - print(f"Finishing outputting {plot_path}.") gc.collect() print("Finish the whole process") model_dataset.close() @@ -463,8 +459,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, title_str, plo # # In addition to your language's normal housekeeping, don't forget to delete any # temporary/scratch files you created in step 4). - # - model_dataset.close() + ### 7) Error/Exception-Handling Example ######################################## From 42389db0113281748279ef0113a66187059a1432 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 21:42:31 -0500 Subject: [PATCH 112/178] try running on cluster --- .../finite_amplitude_wave_diag_zonal_mean.py | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index a6f2b2325..3635a6557 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -115,7 +115,7 @@ def _do_save_mask(self, dataset): self._yz_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ .to_masked_array().mask.sum(axis=-1).astype(bool) self._xy_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ - .to_masked_array().mask.sum(axis=0).astype(bool) + .to_masked_array().mask[:, :, :].sum(axis=0).astype(bool) def _save_preprocessed_data(self, dataset, output_path): dataset.to_netcdf(output_path) @@ -310,7 +310,19 @@ def time_average_processing(dataset: xr.Dataset): return seasonal_avg_data -def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, title_str, plot_path): +def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, title_str, plot_path, + xy_mask=None, yz_mask=None): + if xy_mask is None: + xy_mask = np.zeros_like(seasonal_average_data.u_baro) + yland, xland = [], [] + else: + yland, xland = np.where(xy_mask) + if yz_mask is None: + yz_mask = np.zeros_like(seasonal_average_data.zonal_mean_u) + lon_range = np.arange(-180, 181, 60) + lat_range = np.arange(-90, 91, 30) + + cmap = "jet" fig = plt.figure(figsize=(9, 12)) # create grid for different subplots @@ -348,40 +360,44 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh ax2.set_xlim([-80, 80]) # *** U baro *** - ax5 = fig.add_subplot(spec[1], projection=ccrs.PlateCarree(180)) + ax5 = fig.add_subplot(spec[1], projection=ccrs.PlateCarree()) ax5.coastlines(color='black', alpha=0.7) ax5.set_aspect('auto', adjustable=None) fig5 = ax5.contourf( original_grid['lon'], original_grid['lat'], seasonal_average_data.u_baro, 30, cmap=cmap) - ax5.set_xticks(np.arange(0, 361, 60), crs=ccrs.PlateCarree()) - ax5.set_yticks(np.arange(-90, 91, 30), crs=ccrs.PlateCarree()) + ax5.scatter(original_grid['lon'][xland], original_grid['lat'][yland], s=1, c='gray') + ax5.set_xticks(lon_range, crs=ccrs.PlateCarree()) + ax5.set_yticks(lat_range, crs=ccrs.PlateCarree()) fig.colorbar(fig5, ax=ax5) ax5.set_title('U baro') # *** LWA baro *** - ax4 = fig.add_subplot(spec[3], projection=ccrs.PlateCarree(180)) + ax4 = fig.add_subplot(spec[3], projection=ccrs.PlateCarree()) ax4.coastlines(color='black', alpha=0.7) ax4.set_aspect('auto', adjustable=None) fig4 = ax4.contourf( original_grid['lon'], original_grid['lat'], - seasonal_average_data.lwa_baro, 30, cmap=cmap) - ax4.set_xticks(np.arange(0, 361, 60), crs=ccrs.PlateCarree()) - ax4.set_yticks(np.arange(-90, 91, 30), crs=ccrs.PlateCarree()) + seasonal_average_data.lwa_baro, + 30, cmap=cmap) + ax4.scatter(original_grid['lon'][xland], original_grid['lat'][yland], s=1, c='gray') + ax4.set_xticks(lon_range, crs=ccrs.PlateCarree()) + ax4.set_yticks(lat_range, crs=ccrs.PlateCarree()) fig.colorbar(fig4, ax=ax4) ax4.set_title('LWA baro') # *** Covariance between LWA and U *** - ax6 = fig.add_subplot(spec[5], projection=ccrs.PlateCarree(180)) + ax6 = fig.add_subplot(spec[5], projection=ccrs.PlateCarree()) ax6.coastlines(color='black', alpha=0.7) ax6.set_aspect('auto', adjustable=None) fig6 = ax6.contourf( original_grid['lon'], original_grid['lat'], seasonal_average_data.covariance_lwa_u_baro, 30, cmap="Purples_r") - ax6.set_xticks(np.arange(0, 361, 60), crs=ccrs.PlateCarree()) - ax6.set_yticks(np.arange(-90, 91, 30), crs=ccrs.PlateCarree()) + ax6.scatter(original_grid['lon'][xland], original_grid['lat'][yland], s=1, c='gray') + ax6.set_xticks(lon_range, crs=ccrs.PlateCarree()) + ax6.set_yticks(lat_range, crs=ccrs.PlateCarree()) fig.colorbar(fig6, ax=ax6) ax6.set_title('Covariance between LWA and U(baro)') plt.tight_layout() @@ -429,7 +445,9 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh seasonal_avg_data, analysis_height_array, title_str=f'Finite-amplitude diagnostic plots for {season}', - plot_path=plot_path) + plot_path=plot_path, + xy_mask=data_preprocessor._xy_mask, + yz_mask=data_preprocessor._yz_mask) print(f"Finishing outputting {plot_path}.") # Close xarray datasets From 9635fc49aafa561b3fc2315ed6e2ea07049170dc Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 4 Nov 2023 21:53:13 -0500 Subject: [PATCH 113/178] masked from second lowest level --- .../finite_amplitude_wave_diag_zonal_mean.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 3635a6557..857da5c70 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -112,10 +112,10 @@ def _check_if_gridfill_is_needed(self, sampled_dataset): self._gridfill_needed = False def _do_save_mask(self, dataset): - self._yz_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ - .to_masked_array().mask.sum(axis=-1).astype(bool) - self._xy_mask = dataset[self._u_var_name].isel({self._new_time_coord_name: 0})\ - .to_masked_array().mask[:, :, :].sum(axis=0).astype(bool) + self._yz_mask = dataset[self._u_var_name]\ + .to_masked_array().mask.sum(axis=0).sum(axis=-1).astype(bool) + self._xy_mask = dataset[self._u_var_name]\ + .to_masked_array().mask[:, 1:, :, :].sum(axis=0).sum(axis=0).astype(bool) def _save_preprocessed_data(self, dataset, output_path): dataset.to_netcdf(output_path) From ed5c685e5a4ddceb7a4f8c38d4824771268b5854 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 5 Nov 2023 15:20:27 -0600 Subject: [PATCH 114/178] add this to test on cluster --- src/conda/env_finite_amplitude_wave_diag.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 9eb345087..90cb74a57 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -15,4 +15,5 @@ dependencies: - gridfill - bottleneck - pip: - - hn2016_falwa==0.7.2 + - --extra-index-url https://test.pypi.org/simple/ + - falwa==1.0.0a0 From 3b0d418eadc282d3fb7dd5363abb01548b75a698 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 5 Dec 2023 16:55:58 -0600 Subject: [PATCH 115/178] update package name --- .../finite_amplitude_wave_diag_zonal_mean.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 857da5c70..c6ce7f3bf 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -43,9 +43,9 @@ import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots from cartopy import crs as ccrs -from hn2016_falwa.xarrayinterface import QGDataset -from hn2016_falwa.oopinterface import QGFieldNH18 -from hn2016_falwa.constant import P_GROUND, SCALE_HEIGHT +from falwa.xarrayinterface import QGDataset +from falwa.oopinterface import QGFieldNH18 +from falwa.constant import P_GROUND, SCALE_HEIGHT def convert_pseudoheight_to_hPa(height_array): From f53d4103f30c411d19aeb9ec934400eb8c820920 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 11 Feb 2024 23:15:21 -0600 Subject: [PATCH 116/178] refactored plot scripts --- .../finite_amplitude_wave_diag_zonal_mean.py | 179 ++++++++++-------- src/conda/env_finite_amplitude_wave_diag.yml | 4 +- 2 files changed, 99 insertions(+), 84 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index c6ce7f3bf..112a40a2c 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -39,6 +39,7 @@ # Commands to load third-party libraries. Any code you don't include that's # not part of your language's standard library should be listed in the # settings.jsonc file. +from abc import ABC import numpy as np import xarray as xr # python library we use to read netcdf files import matplotlib.pyplot as plt # python library we use to make plots @@ -287,7 +288,6 @@ def calculate_covariance(lwa_baro, u_baro): cov_map = row_cov.reshape(baro_matrix_shape[1], baro_matrix_shape[2]) return cov_map - def time_average_processing(dataset: xr.Dataset): SeasonalAverage = namedtuple( "SeasonalAverage", [ @@ -310,6 +310,70 @@ def time_average_processing(dataset: xr.Dataset): return seasonal_avg_data +class HeightLatPlotter(object): + def __init__(self, figsize, xgrid, ygrid, cmap, xlim): + self._figsize = figsize + self._xgrid = xgrid + self._ygrid = ygrid + self._cmap = cmap + self._xlim = xlim # [-80, 80] + + def plot_and_save_variable( + self, variable, cmap, title_str, save_path, num_level=30): + fig = plt.figure(figsize=self._figsize) + spec = gridspec.GridSpec(ncols=1, nrows=1) + ax = fig.add_subplot(spec[0]) + # *** Zonal mean U *** + main_fig = ax.contourf( + self._xgrid, + self._ygrid, + variable, + num_level, + cmap=cmap if cmap else self._cmap) + fig.colorbar(main_fig, ax=ax) + ax.set_title(title_str) + ax.set_xlim(self._xlim) + plt.tight_layout() + plt.show() + plt.savefig(save_path, bbox_inches='tight') + plt.savefig(save_path.replace(".eps", ".png"), bbox_inches='tight') + + +class LatLonMapPlotter(object): + def __init__(self, figsize, xgrid, ygrid, cmap, xland, yland, lon_range, lat_range): + self._figsize = figsize + self._xgrid = xgrid + self._ygrid = ygrid + self._cmap = cmap + self._xland = xland + self._yland = yland + self._lon_range = lon_range + self._lat_range = lat_range + + def plot_and_save_variable( + self, variable, cmap, title_str, save_path, num_level=30): + fig = plt.figure(figsize=self._figsize) + spec = gridspec.GridSpec( + ncols=1, nrows=1, wspace=0.3, hspace=0.3) + ax = fig.add_subplot(spec[0], projection=ccrs.PlateCarree()) + ax.coastlines(color='black', alpha=0.7) + ax.set_aspect('auto', adjustable=None) + main_fig = ax.contourf( + self._xgrid, self._ygrid, + variable, + num_level, + cmap=cmap) + ax.scatter(self._xgrid[self._xland], self._ygrid[self._yland], s=1, c='gray') + ax.set_xticks(self._lon_range, crs=ccrs.PlateCarree()) + ax.set_yticks(self._lat_range, crs=ccrs.PlateCarree()) + fig.colorbar(main_fig, ax=ax) + ax.set_title(title_str) + plt.tight_layout() + plt.show() + plt.savefig(save_path, bbox_inches='tight') + plt.savefig(save_path.replace(".eps", ".png"), bbox_inches='tight') + + def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, title_str, plot_path, xy_mask=None, yz_mask=None): if xy_mask is None: @@ -322,88 +386,39 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh lon_range = np.arange(-180, 181, 60) lat_range = np.arange(-90, 91, 30) - + test_dir = "/Users/claresyhuang/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" cmap = "jet" - fig = plt.figure(figsize=(9, 12)) - # create grid for different subplots - spec = gridspec.GridSpec( - ncols=2, nrows=3, width_ratios=[1, 2], wspace=0.3, hspace=0.3, height_ratios=[1, 1, 1]) - fig.suptitle(title_str) - # *** Zonal mean U *** - ax1 = fig.add_subplot(spec[0]) - fig1 = ax1.contourf( - original_grid['lat'], analysis_height_array, - seasonal_average_data.zonal_mean_u, - 30, cmap=cmap) - fig.colorbar(fig1, ax=ax1) - ax1.set_title('zonal mean U') - ax1.set_xlim([-80, 80]) - - # *** FAWA *** - ax3 = fig.add_subplot(spec[2]) - fig3 = ax3.contourf( - original_grid['lat'], analysis_height_array, - seasonal_average_data.zonal_mean_lwa, - 30, cmap=cmap) - fig.colorbar(fig3, ax=ax3) - ax3.set_title('zonal mean LWA') - ax3.set_xlim([-80, 80]) - - # *** Uref *** - ax2 = fig.add_subplot(spec[4]) - fig2 = ax2.contourf( - original_grid['lat'], analysis_height_array, - seasonal_average_data.uref, - 30, cmap=cmap) - fig.colorbar(fig2, ax=ax2) - ax2.set_title('zonal mean Uref') - ax2.set_xlim([-80, 80]) - - # *** U baro *** - ax5 = fig.add_subplot(spec[1], projection=ccrs.PlateCarree()) - ax5.coastlines(color='black', alpha=0.7) - ax5.set_aspect('auto', adjustable=None) - fig5 = ax5.contourf( - original_grid['lon'], original_grid['lat'], - seasonal_average_data.u_baro, - 30, cmap=cmap) - ax5.scatter(original_grid['lon'][xland], original_grid['lat'][yland], s=1, c='gray') - ax5.set_xticks(lon_range, crs=ccrs.PlateCarree()) - ax5.set_yticks(lat_range, crs=ccrs.PlateCarree()) - fig.colorbar(fig5, ax=ax5) - ax5.set_title('U baro') - - # *** LWA baro *** - ax4 = fig.add_subplot(spec[3], projection=ccrs.PlateCarree()) - ax4.coastlines(color='black', alpha=0.7) - ax4.set_aspect('auto', adjustable=None) - fig4 = ax4.contourf( - original_grid['lon'], original_grid['lat'], - seasonal_average_data.lwa_baro, - 30, cmap=cmap) - ax4.scatter(original_grid['lon'][xland], original_grid['lat'][yland], s=1, c='gray') - ax4.set_xticks(lon_range, crs=ccrs.PlateCarree()) - ax4.set_yticks(lat_range, crs=ccrs.PlateCarree()) - fig.colorbar(fig4, ax=ax4) - ax4.set_title('LWA baro') - - # *** Covariance between LWA and U *** - ax6 = fig.add_subplot(spec[5], projection=ccrs.PlateCarree()) - ax6.coastlines(color='black', alpha=0.7) - ax6.set_aspect('auto', adjustable=None) - fig6 = ax6.contourf( - original_grid['lon'], original_grid['lat'], - seasonal_average_data.covariance_lwa_u_baro, - 30, cmap="Purples_r") - ax6.scatter(original_grid['lon'][xland], original_grid['lat'][yland], s=1, c='gray') - ax6.set_xticks(lon_range, crs=ccrs.PlateCarree()) - ax6.set_yticks(lat_range, crs=ccrs.PlateCarree()) - fig.colorbar(fig6, ax=ax6) - ax6.set_title('Covariance between LWA and U(baro)') - plt.tight_layout() - plt.show() - plt.savefig(plot_path, bbox_inches='tight') - plt.savefig(plot_path.replace(".eps", ".png"), bbox_inches='tight') + + height_lat_plotter = HeightLatPlotter( + figsize=(4, 4), xgrid=original_grid['lat'], ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) + height_lat_plotter.plot_and_save_variable( + variable=seasonal_average_data.zonal_mean_u, + cmap=cmap, title_str='zonal mean U', save_path=f"{test_dir}test_zonal_mean_u.png", num_level=30) + height_lat_plotter.plot_and_save_variable( + variable=seasonal_average_data.zonal_mean_lwa, + cmap=cmap, title_str='zonal mean LWA', save_path=f"{test_dir}test_zonal_mean_lwa.png", num_level=30) + height_lat_plotter.plot_and_save_variable( + variable=seasonal_average_data.uref, + cmap=cmap, title_str='zonal mean Uref', save_path=f"{test_dir}test_zonal_mean_uref.png", num_level=30) + height_lat_plotter.plot_and_save_variable( + variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, + cmap=cmap, title_str='zonal mean $\Delta$ U', save_path=f"{test_dir}test_zonal_mean_delta_u.png", num_level=30) + + # Use encapsulated class to plot + lat_lon_plotter = LatLonMapPlotter( + figsize=(6, 3), xgrid=original_grid['lon'], ygrid=original_grid['lat'], + cmap=cmap, xland=xland, yland=yland, + lon_range=lon_range, lat_range=lat_range) + lat_lon_plotter.plot_and_save_variable( + variable=seasonal_average_data.u_baro, cmap=cmap, title_str='U baro', + save_path=f"{test_dir}test_u_baro.png", num_level=30) + lat_lon_plotter.plot_and_save_variable( + variable=seasonal_average_data.lwa_baro, cmap=cmap, title_str='LWA baro', + save_path=f"{test_dir}test_lwa_baro.png", num_level=30) + lat_lon_plotter.plot_and_save_variable( + variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", + title_str='Covariance between LWA and U(baro)', + save_path=f"{test_dir}test_u_lwa_covariance.png", num_level=30) # === 3) Saving output data === diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 90cb74a57..b3ec671ab 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -14,6 +14,6 @@ dependencies: - dask - gridfill - bottleneck +- pip - pip: - - --extra-index-url https://test.pypi.org/simple/ - - falwa==1.0.0a0 + - "--editable=git+https://github.com/csyhuang/hn2016_falwa.git@master#egg=falwa" From c92d87b4b3ad2c78fddbe81c110ba8bf507a065b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 18 Feb 2024 20:18:01 -0600 Subject: [PATCH 117/178] now it runs from end-to-end. Commits before constructing HTML --- .../finite_amplitude_wave_diag_utils.py | 72 ++++++ .../finite_amplitude_wave_diag_zonal_mean.py | 217 ++++++------------ .../finite_amplitude_wave_diag/settings.jsonc | 79 ++----- 3 files changed, 169 insertions(+), 199 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py new file mode 100644 index 000000000..7380c5e90 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -0,0 +1,72 @@ +from typing import Dict +import numpy as np +import xarray as xr # python library we use to read netcdf files +import matplotlib.pyplot as plt # python library we use to make plots +from matplotlib import gridspec +from cartopy import crs as ccrs +from falwa.xarrayinterface import QGDataset +from falwa.oopinterface import QGFieldNH18 +from falwa.constant import P_GROUND, SCALE_HEIGHT + + +class LatLonMapPlotter(object): + def __init__(self, figsize, title_str, xgrid, ygrid, cmap, xland, yland, lon_range, lat_range): + self._figsize = figsize + self._title_str = title_str + self._xgrid = xgrid + self._ygrid = ygrid + self._cmap = cmap + self._xland = xland + self._yland = yland + self._lon_range = lon_range + self._lat_range = lat_range + + def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_level=30): + fig = plt.figure(figsize=self._figsize) + spec = gridspec.GridSpec( + ncols=1, nrows=1, wspace=0.3, hspace=0.3) + ax = fig.add_subplot(spec[0], projection=ccrs.PlateCarree()) + ax.coastlines(color='black', alpha=0.7) + ax.set_aspect('auto', adjustable=None) + main_fig = ax.contourf( + self._xgrid, self._ygrid, + variable, + num_level, + cmap=cmap) + ax.scatter(self._xgrid[self._xland], self._ygrid[self._yland], s=1, c='gray') + ax.set_xticks(self._lon_range, crs=ccrs.PlateCarree()) + ax.set_yticks(self._lat_range, crs=ccrs.PlateCarree()) + fig.colorbar(main_fig, ax=ax) + ax.set_title(f"{self._title_str}\n{var_title_str}") + plt.savefig(save_path, bbox_inches='tight') + plt.savefig(save_path.replace(".png", ".eps"), bbox_inches='tight') + plt.show() + + +class HeightLatPlotter(object): + def __init__(self, figsize, title_str, xgrid, ygrid, cmap, xlim): + self._figsize = figsize + self._title_str = title_str + self._xgrid = xgrid + self._ygrid = ygrid + self._cmap = cmap + self._xlim = xlim # [-80, 80] + + def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_level=30): + fig = plt.figure(figsize=self._figsize) + spec = gridspec.GridSpec(ncols=1, nrows=1) + ax = fig.add_subplot(spec[0]) + # *** Zonal mean U *** + main_fig = ax.contourf( + self._xgrid, + self._ygrid, + variable, + num_level, + cmap=cmap if cmap else self._cmap) + fig.colorbar(main_fig, ax=ax) + ax.set_title(f"{self._title_str}\n{var_title_str}") + ax.set_xlim(self._xlim) + plt.tight_layout() + plt.savefig(save_path, bbox_inches='tight') + plt.savefig(save_path.replace(".png", ".eps"), bbox_inches='tight') # Do I need this? + plt.show() diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 112a40a2c..c5981abb5 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -3,7 +3,7 @@ # Calculate finite-amplitude wave diagnostics that quantifies wave-mean flow # interactions. # -# Last update: 09/07/2023 +# Last update: 02/18/2024 # ================================================================================ # Version & Contact info # @@ -27,23 +27,21 @@ import os import gc import socket -from typing import Tuple, Optional - -import gridfill -import matplotlib -from matplotlib import gridspec +from typing import Optional from collections import namedtuple - +import matplotlib if socket.gethostname() == 'otc': matplotlib.use('Agg') # non-X windows backend -# Commands to load third-party libraries. Any code you don't include that's + +import gridfill +from finite_amplitude_wave_diag_utils import LatLonMapPlotter, HeightLatPlotter + +# Commands to load third-party libraries. Any code you don't include that's # not part of your language's standard library should be listed in the # settings.jsonc file. -from abc import ABC +from typing import Dict import numpy as np import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots -from cartopy import crs as ccrs from falwa.xarrayinterface import QGDataset from falwa.oopinterface import QGFieldNH18 from falwa.constant import P_GROUND, SCALE_HEIGHT @@ -73,8 +71,6 @@ def convert_hPa_to_pseudoheight(p_array): return height_array - - class DataPreprocessor: def __init__( self, wk_dir, xlon, ylat, u_var_name, v_var_name, t_var_name, plev_name, lat_name, lon_name, time_coord_name): @@ -207,6 +203,9 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): lat_name = os.environ["LAT_COORD"] lon_name = os.environ["LON_COORD"] wk_dir = os.environ["WK_DIR"] + casename = os.environ["CASENAME"] + firstyr = os.environ["FIRSTYR"] + lastyr = os.environ["LASTYR"] else: # iMac path uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" @@ -218,6 +217,10 @@ def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): lat_name = "lat" lon_name = "lon" wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" + casename = "GFDL-CM3_historical_r1i1p1" + firstyr = 2005 + lastyr = 2005 + # Regular grid defined by developer xlon = np.arange(0, 361, 1.0) ylat = np.arange(-90, 91, 1.0) @@ -279,8 +282,6 @@ def calculate_covariance(lwa_baro, u_baro): cov_map in dimension of (lat, lon) """ baro_matrix_shape = lwa_baro.data.shape - # dataset.lwa_baro.data.shape # (10, 90, 144) - # dataset.u_baro.data.shape # (10, 90, 144) flatten_lwa_baro = lwa_baro.data.reshape(baro_matrix_shape[0], baro_matrix_shape[1] * baro_matrix_shape[2]) flatten_u_baro = u_baro.data.reshape(baro_matrix_shape[0], baro_matrix_shape[1] * baro_matrix_shape[2]) covv = np.cov(m=flatten_lwa_baro, y=flatten_u_baro, rowvar=False) @@ -288,6 +289,7 @@ def calculate_covariance(lwa_baro, u_baro): cov_map = row_cov.reshape(baro_matrix_shape[1], baro_matrix_shape[2]) return cov_map + def time_average_processing(dataset: xr.Dataset): SeasonalAverage = namedtuple( "SeasonalAverage", [ @@ -310,71 +312,7 @@ def time_average_processing(dataset: xr.Dataset): return seasonal_avg_data -class HeightLatPlotter(object): - def __init__(self, figsize, xgrid, ygrid, cmap, xlim): - self._figsize = figsize - self._xgrid = xgrid - self._ygrid = ygrid - self._cmap = cmap - self._xlim = xlim # [-80, 80] - - def plot_and_save_variable( - self, variable, cmap, title_str, save_path, num_level=30): - fig = plt.figure(figsize=self._figsize) - spec = gridspec.GridSpec(ncols=1, nrows=1) - ax = fig.add_subplot(spec[0]) - # *** Zonal mean U *** - main_fig = ax.contourf( - self._xgrid, - self._ygrid, - variable, - num_level, - cmap=cmap if cmap else self._cmap) - fig.colorbar(main_fig, ax=ax) - ax.set_title(title_str) - ax.set_xlim(self._xlim) - plt.tight_layout() - plt.show() - plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace(".eps", ".png"), bbox_inches='tight') - - -class LatLonMapPlotter(object): - def __init__(self, figsize, xgrid, ygrid, cmap, xland, yland, lon_range, lat_range): - self._figsize = figsize - self._xgrid = xgrid - self._ygrid = ygrid - self._cmap = cmap - self._xland = xland - self._yland = yland - self._lon_range = lon_range - self._lat_range = lat_range - - def plot_and_save_variable( - self, variable, cmap, title_str, save_path, num_level=30): - fig = plt.figure(figsize=self._figsize) - spec = gridspec.GridSpec( - ncols=1, nrows=1, wspace=0.3, hspace=0.3) - ax = fig.add_subplot(spec[0], projection=ccrs.PlateCarree()) - ax.coastlines(color='black', alpha=0.7) - ax.set_aspect('auto', adjustable=None) - main_fig = ax.contourf( - self._xgrid, self._ygrid, - variable, - num_level, - cmap=cmap) - ax.scatter(self._xgrid[self._xland], self._ygrid[self._yland], s=1, c='gray') - ax.set_xticks(self._lon_range, crs=ccrs.PlateCarree()) - ax.set_yticks(self._lat_range, crs=ccrs.PlateCarree()) - fig.colorbar(main_fig, ax=ax) - ax.set_title(title_str) - plt.tight_layout() - plt.show() - plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace(".eps", ".png"), bbox_inches='tight') - - -def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, title_str, plot_path, +def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, plot_dir, title_str, xy_mask=None, yz_mask=None): if xy_mask is None: xy_mask = np.zeros_like(seasonal_average_data.u_baro) @@ -386,39 +324,34 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh lon_range = np.arange(-180, 181, 60) lat_range = np.arange(-90, 91, 30) - test_dir = "/Users/claresyhuang/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" cmap = "jet" - height_lat_plotter = HeightLatPlotter( - figsize=(4, 4), xgrid=original_grid['lat'], ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) - height_lat_plotter.plot_and_save_variable( - variable=seasonal_average_data.zonal_mean_u, - cmap=cmap, title_str='zonal mean U', save_path=f"{test_dir}test_zonal_mean_u.png", num_level=30) - height_lat_plotter.plot_and_save_variable( - variable=seasonal_average_data.zonal_mean_lwa, - cmap=cmap, title_str='zonal mean LWA', save_path=f"{test_dir}test_zonal_mean_lwa.png", num_level=30) - height_lat_plotter.plot_and_save_variable( - variable=seasonal_average_data.uref, - cmap=cmap, title_str='zonal mean Uref', save_path=f"{test_dir}test_zonal_mean_uref.png", num_level=30) - height_lat_plotter.plot_and_save_variable( - variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, - cmap=cmap, title_str='zonal mean $\Delta$ U', save_path=f"{test_dir}test_zonal_mean_delta_u.png", num_level=30) + height_lat_plotter = HeightLatPlotter(figsize=(4, 4), title_str=title_str, xgrid=original_grid['lat'], + ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) + height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u, cmap=cmap, + var_title_str='zonal mean U', + save_path=f"{plot_dir}test_zonal_mean_u.png", num_level=30) + height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_lwa, cmap=cmap, + var_title_str='zonal mean LWA', + save_path=f"{plot_dir}test_zonal_mean_lwa.png", num_level=30) + height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.uref, cmap=cmap, + var_title_str='zonal mean Uref', + save_path=f"{plot_dir}test_zonal_mean_uref.png", num_level=30) + height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, + cmap=cmap, var_title_str='zonal mean $\Delta$ U', + save_path=f"{plot_dir}test_zonal_mean_delta_u.png", num_level=30) # Use encapsulated class to plot - lat_lon_plotter = LatLonMapPlotter( - figsize=(6, 3), xgrid=original_grid['lon'], ygrid=original_grid['lat'], - cmap=cmap, xland=xland, yland=yland, - lon_range=lon_range, lat_range=lat_range) - lat_lon_plotter.plot_and_save_variable( - variable=seasonal_average_data.u_baro, cmap=cmap, title_str='U baro', - save_path=f"{test_dir}test_u_baro.png", num_level=30) - lat_lon_plotter.plot_and_save_variable( - variable=seasonal_average_data.lwa_baro, cmap=cmap, title_str='LWA baro', - save_path=f"{test_dir}test_lwa_baro.png", num_level=30) - lat_lon_plotter.plot_and_save_variable( - variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", - title_str='Covariance between LWA and U(baro)', - save_path=f"{test_dir}test_u_lwa_covariance.png", num_level=30) + lat_lon_plotter = LatLonMapPlotter(figsize=(6, 3), title_str=title_str, xgrid=original_grid['lon'], + ygrid=original_grid['lat'], cmap=cmap, xland=xland, yland=yland, + lon_range=lon_range, lat_range=lat_range) + lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.u_baro, cmap=cmap, var_title_str='U baro', + save_path=f"{plot_dir}test_u_baro.png", num_level=30) + lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.lwa_baro, cmap=cmap, var_title_str='LWA baro', + save_path=f"{plot_dir}test_lwa_baro.png", num_level=30) + lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", + var_title_str='Covariance between LWA and U(baro)', + save_path=f"{plot_dir}test_u_lwa_covariance.png", num_level=30) # === 3) Saving output data === @@ -430,40 +363,52 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh # *** Produce data by season, daily *** if __name__ == '__main__': - season_dict = {"DJF": [1, 2, 12], "MAM": [3, 4, 5], "JJA": [6, 7, 8], "SON": [9, 10, 11]} - out_paths = {key: f"{wk_dir}/intermediate_{key}.nc" for key, value in season_dict.items()} + model_or_obs: str = "model" # It can be "model" or "obs" + season_to_months = [ + ("DJF", [1, 2, 12]), ("MAM", [3, 4, 5]), ("JJA", [6, 7, 8]), ("SON", [9, 10, 11])] + intermediate_output_paths: Dict[str, str] = { + item[0]: f"{wk_dir}/{model_or_obs}/intermediate_{item[0]}.nc" for item in season_to_months} - for season in season_dict: + for season in season_to_months[:1]: # Construct data preprocessor data_preprocessor = DataPreprocessor( wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) - selected_months = season_dict.get(season) - plot_path = f"FAWA_Diag_{season}_new.eps" - # plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( - # model_or_obs=model_or_obs, **os.environ) - # plt.savefig(plot_path, bbox_inches='tight') + selected_months = season[1] + plot_dir = f"{wk_dir}/{model_or_obs}/PS/" + # plt.savefig(plot_dir, bbox_inches='tight') # Do temporal sampling to reduce the data size sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ .groupby("time.day").mean("time") - preprocessed_output_path = out_paths[season] # TODO set it + preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it data_preprocessor.output_preprocess_data( sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) intermediate_dataset = xr.open_mfdataset(preprocessed_output_path) fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) analysis_height_array = fawa_diagnostics_dataset.coords['height'].data seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) + + # === 4) Saving output plots === + # + # Plots should be saved in EPS or PS format at //PS + # (created by the framework). Plots can be given any filename, but should have + # the extension ".eps" or ".ps". To make the webpage output, the framework will + # convert these to bitmaps with the same name but extension ".png". + + # Define a python function to make the plot, since we'll be doing it twice and + # we don't want to repeat ourselves. + + # set an informative title using info about the analysis set in env vars + title_string = f"{casename} ({firstyr}-{lastyr})" + # Plot the model data: + # plot_and_save_figure("model", title_string, model_dataset) plot_finite_amplitude_wave_diagnostics( - seasonal_avg_data, - analysis_height_array, - title_str=f'Finite-amplitude diagnostic plots for {season}', - plot_path=plot_path, - xy_mask=data_preprocessor._xy_mask, - yz_mask=data_preprocessor._yz_mask) - print(f"Finishing outputting {plot_path}.") + seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, + xy_mask=data_preprocessor._xy_mask, yz_mask=data_preprocessor._yz_mask) + print(f"Finishing outputting figures to {plot_dir}.") # Close xarray datasets sampled_dataset.close() @@ -473,27 +418,12 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh print("Finish the whole process") model_dataset.close() - # === 4) Saving output plots (TODO not yet finished) === - # - # Plots should be saved in EPS or PS format at //PS - # (created by the framework). Plots can be given any filename, but should have - # the extension ".eps" or ".ps". To make the webpage output, the framework will - # convert these to bitmaps with the same name but extension ".png". - - # Define a python function to make the plot, since we'll be doing it twice and - # we don't want to repeat ourselves. - - # set an informative title using info about the analysis set in env vars - # title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) - # Plot the model data: - # plot_and_save_figure("model", title_string, model_dataset) - # 6) Cleaning up: # # In addition to your language's normal housekeeping, don't forget to delete any # temporary/scratch files you created in step 4). - - + os.system(f"rm -f {wk_dir}/gridfill_*.nc") + os.system(f"rm -f {wk_dir}/intermediate_*.nc") ### 7) Error/Exception-Handling Example ######################################## # nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) @@ -503,7 +433,6 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh # print(error) # print("This message is printed by the example POD because exception-handling is working!") - ### 8) Confirm POD executed sucessfully ######################################## -# print("Last log message by Example POD: finished successfully!") +print("POD Finite-amplitude wave diagnostic (zonal mean) finished successfully!") diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index ff11bf955..94b0b6cb5 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -10,33 +10,37 @@ "netCDF4", "numpy", "cartopy", - "hn2016_falwa" + "falwa" ] } }, - "data":{ - "frequency":"day" - }, + "data":{"frequency":"day"}, "dimensions":{ - "lat":{ - "standard_name":"latitude" - }, - "lon":{ - "standard_name":"longitude" - }, - "lev":{ - "standard_name":"air_pressure", - "units":"hPa", - "positive":"down", - "axis":"Z" - }, - "time":{ - "standard_name":"time" - } + "lat": {"standard_name": "latitude"}, + "lon": {"standard_name": "longitude"}, + "lev":{"standard_name":"air_pressure", "units":"hPa", "positive":"down", "axis":"Z"}, + "time": {"standard_name": "time"}, + "varlist":{ + "ua":{ + "standard_name":"eastward_wind", + "units":"m s-1", + "dimensions":["time", "lev", "lat", "lon"], + "freq":"day"}, + "va":{ + "standard_name":"northward_wind", + "units":"m s-1", + "dimensions":["time", "lev", "lat", "lon"], + "freq":"day"}, + "ta":{ + "standard_name":"air_temperature", + "units":"K", + "dimensions":["time", "lev", "lat", "lon"], + "freq":"day"} }, - "pod_env_vars":{ + "pod_env_vars":{ /* This shall be removed when submitting PR */ "start_year" : "1993", "end_year" : "2009", + "CASENAME": "GFDL-CM3_historical_r1i1p1", "UVT_FILE": "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc", "U_VAR": "ua", "V_VAR": "va", @@ -46,40 +50,5 @@ "LAT_COORD": "lat", "LON_COORD": "lon", "WK_DIR": "wkdir" - }, - "varlist":{ - "ua":{ - "standard_name":"eastward_wind", - "units":"m s-1", - "dimensions":[ - "time", - "lev", - "lat", - "lon" - ], - "freq":"day" - }, - "va":{ - "standard_name":"northward_wind", - "units":"m s-1", - "dimensions":[ - "time", - "lev", - "lat", - "lon" - ], - "freq":"day" - }, - "ta":{ - "standard_name":"air_temperature", - "units":"K", - "dimensions":[ - "time", - "lev", - "lat", - "lon" - ], - "freq":"day" - } } } \ No newline at end of file From 2b5986d1e57aef37a35f14906039d430ce0d9930 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 2 Mar 2024 17:45:27 -0600 Subject: [PATCH 118/178] save progress --- .../finite_amplitude_wave_diag_utils.py | 163 +++++++++++++++- .../finite_amplitude_wave_diag_zonal_mean.py | 174 ++---------------- .../unused/gridfill_with_model_data.py | 2 +- .../unused/iMac_model_data_gridfill.py | 2 +- ..._model_data_interpolate_before_gridfill.py | 2 +- .../unused/iMac_model_data_zonal_mean.py | 2 +- 6 files changed, 178 insertions(+), 167 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py index 7380c5e90..4f5e230db 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -1,12 +1,38 @@ -from typing import Dict -import numpy as np -import xarray as xr # python library we use to read netcdf files +from typing import Optional + +import gridfill import matplotlib.pyplot as plt # python library we use to make plots +import numpy as np +import xarray as xr +from falwa.constant import P_GROUND, SCALE_HEIGHT from matplotlib import gridspec from cartopy import crs as ccrs -from falwa.xarrayinterface import QGDataset -from falwa.oopinterface import QGFieldNH18 -from falwa.constant import P_GROUND, SCALE_HEIGHT + +# from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import plev_name, lat_name, lon_name, \ +# sampled_dataset + + +def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): + """ + Fill missing values in lat-lon grids with values derived by solving Poisson's equation + using a relaxation scheme. + + Args: + lat_lon_field(np.ndarray): 2D array to apply gridfill on + itermax(int): maximum iteration for poisson solver + verbose(bool): verbose level of poisson solver + + Returns: + A 2D array of the same dimension with all nan filled. + """ + if np.isnan(lat_lon_field).sum() == 0: + return lat_lon_field + + lat_lon_filled, converged = gridfill.fill( + grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, + cyclic=True, itermax=itermax, verbose=verbose) + + return lat_lon_filled class LatLonMapPlotter(object): @@ -70,3 +96,128 @@ def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_l plt.savefig(save_path, bbox_inches='tight') plt.savefig(save_path.replace(".png", ".eps"), bbox_inches='tight') # Do I need this? plt.show() + + +def convert_pseudoheight_to_hPa(height_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) + return p_array + + +def convert_hPa_to_pseudoheight(p_array): + """ + Args: + height_array(np.array): pseudoheight in [m] + + Returns: + np.array which contains pressure levels in [hPa] + """ + height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) + return height_array + + +class DataPreprocessor: + def __init__( + self, wk_dir, xlon, ylat, u_var_name, v_var_name, t_var_name, plev_name, lat_name, lon_name, time_coord_name): + + self._wk_dir = wk_dir + self._xlon: np.array = xlon # user input + self._ylat: np.array = ylat # user input + self._u_var_name: str = u_var_name + self._v_var_name: str = v_var_name + self._t_var_name: str = t_var_name + self._plev_name: str = plev_name + self._lat_name: str = lat_name + self._lon_name: str = lon_name + self._original_plev = None + self._original_lat = None + self._original_lon = None + self._original_time_coord = None + self._time_coord_name: str = time_coord_name + self._new_time_coord_name: str = "day" + self._sampled_dataset = None # Shall be xarray. Set type later + self._gridfill_needed: Optional[bool] = None + self._yz_mask = None + self._xy_mask = None + + @property + def xy_mask(self): + return self._xy_mask + + @property + def yz_mask(self): + return self._yz_mask + + def _save_original_coordinates(self, dataset): + self._original_plev = dataset.coords[self._plev_name] + self._original_lat = dataset.coords[self._lat_name] + self._original_lon = dataset.coords[self._lon_name] + + def _check_if_gridfill_is_needed(self, sampled_dataset): + num_of_nan = sampled_dataset[self._u_var_name].isnull().sum().values + if num_of_nan > 0: + self._gridfill_needed = True + self._do_save_mask(sampled_dataset) + else: + self._gridfill_needed = False + + def _do_save_mask(self, dataset): + self._yz_mask = dataset[self._u_var_name]\ + .to_masked_array().mask.sum(axis=0).sum(axis=-1).astype(bool) + self._xy_mask = dataset[self._u_var_name]\ + .to_masked_array().mask[:, 1:, :, :].sum(axis=0).sum(axis=0).astype(bool) + + def _save_preprocessed_data(self, dataset, output_path): + dataset.to_netcdf(output_path) + dataset.close() + print(f"Finished outputing preprocessed dataset: {output_path}") + + def _interpolate_onto_regular_grid(self, dataset): + dataset = dataset.interp( + coords={self._lat_name: self._ylat, self._lon_name: self._xlon}, + method="linear", + kwargs={"fill_value": "extrapolate"}) + return dataset + + def _implement_gridfill(self, dataset: xr.Dataset): + if not self._gridfill_needed: + print("No NaN values detected. Gridfill not needed. Bypass DataPreprocessor._implement_gridfill.") + return dataset + # *** Implement gridfill procedure *** + print(f"self._gridfill_needed = True. Do gridfill with poisson solver.") + args_tuple = [self._u_var_name, self._v_var_name, self._t_var_name] + gridfill_file_path = self._wk_dir + "/gridfill_{var}.nc" + for var_name in args_tuple: + field_at_all_level = xr.apply_ufunc( + gridfill_each_level, + *[dataset[var_name]], + input_core_dims=((self._lat_name, self._lon_name),), + output_core_dims=((self._lat_name, self._lon_name),), + vectorize=True, dask="allowed") + field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) + field_at_all_level.close() + print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") + load_gridfill_path = gridfill_file_path.format(var="*") + return load_gridfill_path + + def output_preprocess_data(self, sampled_dataset, output_path): + """ + Main procedure executed by this class + """ + self._save_original_coordinates(sampled_dataset) + self._check_if_gridfill_is_needed(sampled_dataset) + gridfill_path = self._implement_gridfill(sampled_dataset) + gridfilled_dataset = xr.open_mfdataset(gridfill_path) + dataset = self._interpolate_onto_regular_grid(gridfilled_dataset) # Interpolate onto regular grid + gridfilled_dataset.close() + self._save_preprocessed_data(dataset, output_path) # Save preprocessed data + dataset.close() + + + diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index c5981abb5..8091813e3 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -27,13 +27,15 @@ import os import gc import socket -from typing import Optional from collections import namedtuple import matplotlib + +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import convert_hPa_to_pseudoheight, \ + DataPreprocessor + if socket.gethostname() == 'otc': matplotlib.use('Agg') # non-X windows backend -import gridfill from finite_amplitude_wave_diag_utils import LatLonMapPlotter, HeightLatPlotter # Commands to load third-party libraries. Any code you don't include that's @@ -46,145 +48,6 @@ from falwa.oopinterface import QGFieldNH18 from falwa.constant import P_GROUND, SCALE_HEIGHT - -def convert_pseudoheight_to_hPa(height_array): - """ - Args: - height_array(np.array): pseudoheight in [m] - - Returns: - np.array which contains pressure levels in [hPa] - """ - p_array = P_GROUND * np.exp(- height_array / SCALE_HEIGHT) - return p_array - - -def convert_hPa_to_pseudoheight(p_array): - """ - Args: - height_array(np.array): pseudoheight in [m] - - Returns: - np.array which contains pressure levels in [hPa] - """ - height_array = - SCALE_HEIGHT * np.log(p_array / P_GROUND) - return height_array - - -class DataPreprocessor: - def __init__( - self, wk_dir, xlon, ylat, u_var_name, v_var_name, t_var_name, plev_name, lat_name, lon_name, time_coord_name): - - self._wk_dir = wk_dir - self._xlon: np.array = xlon # user input - self._ylat: np.array = ylat # user input - self._u_var_name: str = u_var_name - self._v_var_name: str = v_var_name - self._t_var_name: str = t_var_name - self._plev_name: str = plev_name - self._lat_name: str = lat_name - self._lon_name: str = lon_name - self._original_plev = None - self._original_lat = None - self._original_lon = None - self._original_time_coord = None - self._time_coord_name: str = time_coord_name - self._new_time_coord_name: str = "day" - self._sampled_dataset = None # Shall be xarray. Set type later - self._gridfill_needed: Optional[bool] = None - self._yz_mask = None - self._xy_mask = None - - def _save_original_coordinates(self, dataset): - self._original_plev = dataset.coords[plev_name] - self._original_lat = dataset.coords[lat_name] - self._original_lon = dataset.coords[lon_name] - - def _check_if_gridfill_is_needed(self, sampled_dataset): - num_of_nan = sampled_dataset[self._u_var_name].isnull().sum().values - if num_of_nan > 0: - self._gridfill_needed = True - self._do_save_mask(sampled_dataset) - else: - self._gridfill_needed = False - - def _do_save_mask(self, dataset): - self._yz_mask = dataset[self._u_var_name]\ - .to_masked_array().mask.sum(axis=0).sum(axis=-1).astype(bool) - self._xy_mask = dataset[self._u_var_name]\ - .to_masked_array().mask[:, 1:, :, :].sum(axis=0).sum(axis=0).astype(bool) - - def _save_preprocessed_data(self, dataset, output_path): - dataset.to_netcdf(output_path) - dataset.close() - print(f"Finished outputing preprocessed dataset: {output_path}") - - def _interpolate_onto_regular_grid(self, dataset): - dataset = dataset.interp( - coords={self._lat_name: self._ylat, self._lon_name: self._xlon}, - method="linear", - kwargs={"fill_value": "extrapolate"}) - return dataset - - def _implement_gridfill(self, dataset: xr.Dataset): - if not self._gridfill_needed: - print("No NaN values detected. Gridfill not needed. Bypass DataPreprocessor._implement_gridfill.") - return dataset - # *** Implement gridfill procedure *** - print(f"self._gridfill_needed = True. Do gridfill with poisson solver.") - args_tuple = [self._u_var_name, self._v_var_name, self._t_var_name] - gridfill_file_path = self._wk_dir + "/gridfill_{var}.nc" - for var_name in args_tuple: - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[sampled_dataset[var_name]], - input_core_dims=((self._lat_name, self._lon_name),), - output_core_dims=((self._lat_name, self._lon_name),), - vectorize=True, dask="allowed") - field_at_all_level.to_netcdf(gridfill_file_path.format(var=var_name)) - field_at_all_level.close() - print(f"Finished outputing {var_name} to {gridfill_file_path.format(var=var_name)}") - load_gridfill_path = gridfill_file_path.format(var="*") - return load_gridfill_path - - def output_preprocess_data(self, sampled_dataset, output_path): - """ - Main procedure executed by this class - """ - self._save_original_coordinates(sampled_dataset) - self._check_if_gridfill_is_needed(sampled_dataset) - gridfill_path = self._implement_gridfill(sampled_dataset) - gridfilled_dataset = xr.open_mfdataset(gridfill_path) - dataset = self._interpolate_onto_regular_grid(gridfilled_dataset) # Interpolate onto regular grid - gridfilled_dataset.close() - self._save_preprocessed_data(dataset, output_path) # Save preprocessed data - dataset.close() - - -def gridfill_each_level(lat_lon_field, itermax=1000, verbose=False): - """ - Fill missing values in lat-lon grids with values derived by solving Poisson's equation - using a relaxation scheme. - - Args: - lat_lon_field(np.ndarray): 2D array to apply gridfill on - itermax(int): maximum iteration for poisson solver - verbose(bool): verbose level of poisson solver - - Returns: - A 2D array of the same dimension with all nan filled. - """ - if np.isnan(lat_lon_field).sum() == 0: - return lat_lon_field - - lat_lon_filled, converged = gridfill.fill( - grids=np.ma.masked_invalid(lat_lon_field), xdim=1, ydim=0, eps=0.01, - cyclic=True, itermax=itermax, verbose=verbose) - - return lat_lon_filled - - - # 1) Loading model data files: # # The framework copies model data to a regular directory structure of the form @@ -312,8 +175,8 @@ def time_average_processing(dataset: xr.Dataset): return seasonal_avg_data -def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_height_array, plot_dir, title_str, - xy_mask=None, yz_mask=None): +def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, title_str, season, + xy_mask=None, yz_mask=None): if xy_mask is None: xy_mask = np.zeros_like(seasonal_average_data.u_baro) yland, xland = [], [] @@ -330,28 +193,28 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u, cmap=cmap, var_title_str='zonal mean U', - save_path=f"{plot_dir}test_zonal_mean_u.png", num_level=30) + save_path=f"{plot_dir}test_{season}_zonal_mean_u.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_lwa, cmap=cmap, var_title_str='zonal mean LWA', - save_path=f"{plot_dir}test_zonal_mean_lwa.png", num_level=30) + save_path=f"{plot_dir}test_{season}_zonal_mean_lwa.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean Uref', - save_path=f"{plot_dir}test_zonal_mean_uref.png", num_level=30) + save_path=f"{plot_dir}test_{season}_zonal_mean_uref.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean $\Delta$ U', - save_path=f"{plot_dir}test_zonal_mean_delta_u.png", num_level=30) + save_path=f"{plot_dir}test_{season}_zonal_mean_delta_u.eps", num_level=30) # Use encapsulated class to plot lat_lon_plotter = LatLonMapPlotter(figsize=(6, 3), title_str=title_str, xgrid=original_grid['lon'], ygrid=original_grid['lat'], cmap=cmap, xland=xland, yland=yland, lon_range=lon_range, lat_range=lat_range) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.u_baro, cmap=cmap, var_title_str='U baro', - save_path=f"{plot_dir}test_u_baro.png", num_level=30) + save_path=f"{plot_dir}test_{season}_u_baro.eps", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.lwa_baro, cmap=cmap, var_title_str='LWA baro', - save_path=f"{plot_dir}test_lwa_baro.png", num_level=30) + save_path=f"{plot_dir}test_{season}_lwa_baro.eps", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", var_title_str='Covariance between LWA and U(baro)', - save_path=f"{plot_dir}test_u_lwa_covariance.png", num_level=30) + save_path=f"{plot_dir}test_{season}_u_lwa_covariance.eps", num_level=30) # === 3) Saving output data === @@ -367,7 +230,7 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh season_to_months = [ ("DJF", [1, 2, 12]), ("MAM", [3, 4, 5]), ("JJA", [6, 7, 8]), ("SON", [9, 10, 11])] intermediate_output_paths: Dict[str, str] = { - item[0]: f"{wk_dir}/{model_or_obs}/intermediate_{item[0]}.nc" for item in season_to_months} + item[0]: f"{wk_dir}/intermediate_{item[0]}.nc" for item in season_to_months} for season in season_to_months[:1]: # Construct data preprocessor @@ -377,7 +240,6 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh selected_months = season[1] plot_dir = f"{wk_dir}/{model_or_obs}/PS/" - # plt.savefig(plot_dir, bbox_inches='tight') # Do temporal sampling to reduce the data size sampled_dataset = model_dataset.where( @@ -402,12 +264,10 @@ def plot_finite_amplitude_wave_diagnostics(seasonal_average_data, analysis_heigh # we don't want to repeat ourselves. # set an informative title using info about the analysis set in env vars - title_string = f"{casename} ({firstyr}-{lastyr})" + title_string = f"{casename} ({firstyr}-{lastyr}) {season}" # Plot the model data: - # plot_and_save_figure("model", title_string, model_dataset) - plot_finite_amplitude_wave_diagnostics( - seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, - xy_mask=data_preprocessor._xy_mask, yz_mask=data_preprocessor._yz_mask) + plot_and_save_figure(seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, + season=season[0], xy_mask=data_preprocessor.xy_mask, yz_mask=data_preprocessor.yz_mask) print(f"Finishing outputting figures to {plot_dir}.") # Close xarray datasets diff --git a/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py b/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py index 05e5dcacc..ac4b3fcc1 100644 --- a/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py +++ b/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py @@ -7,7 +7,7 @@ import numpy as np from hn2016_falwa.xarrayinterface import QGDataset -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level # These are local path to Clare's iMac storage_path = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" diff --git a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py index abcf9a3d9..878bac050 100644 --- a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py @@ -4,7 +4,7 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22 diff --git a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py index e47a33361..9ddd9ee05 100644 --- a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py +++ b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py @@ -6,7 +6,7 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 diff --git a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py index c3e41b726..6c946848e 100644 --- a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py @@ -4,7 +4,7 @@ import os import numpy as np import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_zonal_mean import gridfill_each_level +from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level from hn2016_falwa.xarrayinterface import QGDataset import matplotlib.pyplot as plt from hn2016_falwa.oopinterface import QGFieldNHN22 From 405e01b0924519056b2ac59afb4162ed04a51338 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 3 Mar 2024 07:59:08 -0600 Subject: [PATCH 119/178] save progress --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 1 + 1 file changed, 1 insertion(+) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 94b0b6cb5..a468df5e7 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -2,6 +2,7 @@ "settings":{ "driver":"finite_amplitude_wave_diag_zonal_mean.py", "long_name":"Finite-amplitude Rossby Wave Diagnostics (zonal-mean version)", + "realm" : "atmos", "description":"Finite-amplitude Rossby Wave Diagnostics (zonal-mean version)", "runtime_requirements":{ "python3":[ From 14522cbacde6b4404d2154d68e1dcf70d6c07b90 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Tue, 12 Mar 2024 19:44:01 -0500 Subject: [PATCH 120/178] save progress --- .../doc/example.rst | 260 ------------------ ...finite_amplitude_wave_diag_zonal_mean.html | 120 ++++++++ .../finite_amplitude_wave_diag_zonal_mean.rst | 175 ++++++++++++ .../doc/gaussians.jpg | Bin 35383 -> 0 bytes .../finite_amplitude_wave_diag_zonal_mean.py | 14 +- 5 files changed, 302 insertions(+), 267 deletions(-) delete mode 100644 diagnostics/finite_amplitude_wave_diag/doc/example.rst create mode 100644 diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.html create mode 100644 diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst delete mode 100644 diagnostics/finite_amplitude_wave_diag/doc/gaussians.jpg diff --git a/diagnostics/finite_amplitude_wave_diag/doc/example.rst b/diagnostics/finite_amplitude_wave_diag/doc/example.rst deleted file mode 100644 index ede5eaa3e..000000000 --- a/diagnostics/finite_amplitude_wave_diag/doc/example.rst +++ /dev/null @@ -1,260 +0,0 @@ -.. This is a comment in RestructuredText format (two periods and a space). - -.. Note that all "statements" and "paragraphs" need to be separated by a blank - line. This means the source code can be hard-wrapped to 80 columns for ease - of reading. Multi-line comments or commands like this need to be indented by - exactly three spaces. - -.. Underline with '='s to set top-level heading: - https://docutils.sourceforge.io/docs/user/rst/quickref.html#section-structure - -Finite Amplitude Rossby Wave Diagnostics Documentation -====================================================== - -Last update: 07/31/2023 - -This is an example document that you can use as a template for your diagnostics' -own documentation: it describes what information you should provide in each -section. For example, if this were a real POD, you'd place a one-paragraph -synopsis of your diagnostic here (like an abstract). - -It also serves as an example of the RestructuredText (ReST, .rst) format used to -generate this page: compare this output with the input `source file -`__. -The easiest way to get started is to copy the source file into the online editor -at `https://livesphinx.herokuapp.com/ `__ and -experiment. - -.. Underline with '-'s to make a second-level heading. - -Version & Contact info ----------------------- - -.. '-' starts items in a bulleted list: - https://docutils.sourceforge.io/docs/user/rst/quickref.html#bullet-lists - -Here you should describe who contributed to the diagnostic, and who should be -contacted for further information: - -- Version/revision information: version 1 (5/06/2020) -- PI (name, affiliation, email) -- Developer/point of contact (name, affiliation, email) -- Other contributors - -.. Underline with '^'s to make a third-level heading. - -Open source copyright agreement -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). -Unless you've distributed your script elsewhere, you don't need to change this. - -Functionality -------------- - -In this section you should summarize the stages of the calculations your -diagnostic performs, and how they translate to the individual source code files -provided in your submission. This will, e.g., let maintainers fixing a bug or -people with questions about how your code works know where to look. - -Required programming language and libraries -------------------------------------------- - -In this section you should summarize the programming languages and third-party -libraries used by your diagnostic. You also provide this information in the -``settings.jsonc`` file, but here you can give helpful comments to human -maintainers (eg, "We need at least version 1.5 of this library because we call -this function.") - -Required model output variables -------------------------------- - -In this section you should describe each variable in the input data your -diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, -but here you should go into detail on the assumptions your diagnostic makes -about the structure of the data. - -References ----------- - -Here you should cite the journal articles providing the scientific basis for -your diagnostic. To keep the documentation format used in version 2.0 of -the framework, we list references "manually" with the following command: - -.. Note this syntax, which sets the "anchor" for the hyperlink: two periods, one - space, one underscore, the reference tag, and a colon, then a blank line. - -.. code-block:: restructuredtext - - .. _ref-Maloney: - - 1. E. D. Maloney et al. (2019): Process-Oriented Evaluation of Climate - and Weather Forecasting Models. *BAMS*, **100** (9), 1665–1686, - `doi:10.1175/BAMS-D-18-0042.1 `__. - -which produces - -.. _ref-Maloney: - -1. E. D. Maloney et al. (2019): Process-Oriented Evaluation of Climate and -Weather Forecasting Models. *BAMS*, **100** (9), 1665–1686, -`doi:10.1175/BAMS-D-18-0042.1 `__. - -which can be cited in text as ``:ref:`a hyperlink ```, which -gives :ref:`a hyperlink ` to the location of the reference on the -page. Because references are split between this section and the following "More -about this diagnostic" section, unfortunately you'll have to number references -manually. - -We don't enforce any particular bibliographic style, but please provide a -hyperlink to the article's DOI for ease of online access. Hyperlinks are written -as ```link text `__`` (text and url enclosed in backticks, followed by two -underscores). - -More about this diagnostic --------------------------- - -In this section, you can go into more detail on the science behind your -diagnostic, for example, by copying in relevant text articles you've written -using th It's especially helpful if you're able to teach users how to use -your diagnostic's output, by showing how to interpret example plots. - -Instead of doing that here, we provide more examples of RestructuredText -syntax that you can customize as needed. - -As mentioned above, we recommend the online editor at `https://livesphinx.herokuapp.com/ -`__, which gives immediate feedback and has -support for sphinx-specific commands. - -Here's an -`introduction `__ -to the RestructuredText format, a -`quick reference `__, -and a `syntax comparison `__ to -other text formats you may be familiar with. - -Links to external sites -^^^^^^^^^^^^^^^^^^^^^^^ - -URLs written out in the text are linked automatically: https://ncar.ucar.edu/. - -To use custom text for the link, use the syntax -```link text `__`` (text and url enclosed in backticks, -followed by two underscores). This produces `link text `__. - -More references and citations -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Here's another reference: - -.. code-block:: restructuredtext - - .. _ref-Charney: - - 2. Charney, Jule; Fjørtoft, Ragnar; von Neumann, John (1950). Numerical - Integration of the Barotropic Vorticity Equation. *Tellus* **2** (4) 237–254, - `doi:10.3402/tellusa.v2i4.8607 `__. - -.. _ref-Charney: - -2. Charney, Jule; Fjørtoft, Ragnar; von Neumann, John (1950). Numerical -Integration of the Barotropic Vorticity Equation. *Tellus* **2** (4) 237–254, -`doi:10.3402/tellusa.v2i4.8607 `__. - -Here's an example of citing these references: - -.. code-block:: restructuredtext - - :ref:`Maloney et. al., 2019 `, - :ref:`Charney, Fjørtoft and von Neumann, 1950 ` - -produces :ref:`Maloney et. al., 2019 `, -:ref:`Charney, Fjørtoft and von Neumann, 1950 `. - -Figures -^^^^^^^ - -Images **must** be provided in either .png or .jpeg formats in order to be -displayed properly in both the html and pdf output. - -Here's the syntax for including a figure in the document: - -.. code-block:: restructuredtext - - .. _my-figure-tag: [only needed for linking to figures] - - .. figure:: [path to image file, relative to the source.rst file] - :align: left - :width: 75 % [these both need to be indented by three spaces] - - Paragraphs or other text following the figure that are indented by three - spaces are treated as a caption/legend, eg: - - - red line: a Gaussian - - blue line: another Gaussian - -which produces - -.. _my-figure-tag: - -.. figure:: gaussians.jpg - :align: left - :width: 75 % - - Paragraphs or other text following the figure that are indented by three - spaces are treated as a caption/legend, eg: - - - blue line: a Gaussian - - orange line: another Gaussian - -The tag lets you refer to figures in the text, e.g. -``:ref:`Figure 1 ``` → :ref:`Figure 1 `. - -Equations -^^^^^^^^^ - -Accented and Greek letters can be written directly using Unicode: é, Ω. -(Make sure your text editor is saving the file in UTF-8 encoding). - -Use the following syntax for superscripts and subscripts in in-line text: - -.. code-block:: restructuredtext - - W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . - -which produces: W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . -Note one space is needed after both forward slashes in the input; these spaces -are not included in the output. - -Equations can be written using standard -`latex `__ -(PDF link) syntax. Short equations in-line with the text can be written as -``:math:`f = 2 \Omega \sin \phi``` → :math:`f = 2 \Omega \sin \phi`. - -Longer display equations can be written as follows. Note that a blank line is -needed after the ``.. math::`` heading and after each equation, with the -exception of aligned equations. - -.. code-block:: restructuredtext - - .. math:: - - \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ - \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, - - \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. - -which produces: - -.. math:: - - \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ - \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, - - \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. - -The editor at `https://livesphinx.herokuapp.com/ -`__ can have issues formatting complicated -equations, so you may want to check its output with a latex-specific editor, -such as `overleaf `__ or other `equation editors -`__. diff --git a/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.html b/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.html new file mode 100644 index 000000000..866d6fdb8 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.html @@ -0,0 +1,120 @@ + + + Finite-amplitude Rossby wave diagnostics + +

Finite-amplitude Rossby wave diagnostics

+ + +

The goal to incorporate Finite-amplitude wave activity (FAWA) formalism into MDTF repo is to provide diagnostic tools for model comparison. Each diagnostic shall associate with an interpretation related to the physical process.

+

Below are some proposed candidates and associated physical interpretations:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
DiagnosticInterpretation
Seasonal climatology of zonal mean FAWAIt quantifies the strength of vertically propagating planetary waves, and also relative strength of synoptic eddies in troposphere
Seasonal climatology of UrefTo quantify strength of mean-flow interaction, i.e., adiabatic adjustment of flow from an eddy-free reference state is given by Uref-Ubar(zonal mean wind)
Seasonal climatology of <LWA> (<...> = vertically averaged)To quantify geographical distribution (and amplitude) of eddies
Seasonal climatology of temporal Covariance of <LWA> and <U> (as in NH18 Fig. 2A)A measure of strength of nonlinear wave-mean flow interaction (via nonlinear zonal wave activity flux)
+ + +Full Documentation and Contact Information + +

Zonal-mean finite-amplitude wave diagnostics for {{CASENAME}} (Climatologies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name of DiagnosticDJFMAMJJASON
zonal mean zonal windplotplotplotplot
zonal mean wave activity (FAWA)plotplotplotplot
zonal mean reference states (Uref)plotplotplotplot
zonal mean wind adjustment (\Delta U)plotplotplotplot
+ + +

Vertically-averaged finite-amplitude wave diagnostics for {{CASENAME}} (Climatologies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name of DiagnosticDJFMAMJJASON
Barotropic zonal mean zonal windplotplotplotplot
Barotropic local wave activityplotplotplotplot
Covariance between barotropic zonal wind and LWAplotplotplotplot
diff --git a/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst b/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst new file mode 100644 index 000000000..244bbf1f1 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst @@ -0,0 +1,175 @@ +.. This is a comment in RestructuredText format (two periods and a space). + +.. Note that all "statements" and "paragraphs" need to be separated by a blank + line. This means the source code can be hard-wrapped to 80 columns for ease + of reading. Multi-line comments or commands like this need to be indented by + exactly three spaces. + +.. Underline with '='s to set top-level heading: + https://docutils.sourceforge.io/docs/user/rst/quickref.html#section-structure + +Finite Amplitude Rossby Wave Diagnostics Documentation +====================================================== + +.. rst-class:: center + +Clare S. Y. Huang\ |^1|, Christopher Polster |^2| and Noboru Nakamura\ |^1| + +.. rst-class:: center + +|^1|\ The University of Chicago, Chicago, Illinois + +|^2|\ Johannes Gutenberg-Universität Mainz, Germany + +.. rst-class:: center + +Last update: 03/12/2024 + +Description +----------- +(to be filled in ) + +.. Underline with '-'s to make a second-level heading. + +Version & Contact info +---------------------- + +Here you should describe who contributed to the diagnostic, and who should be +contacted for further information: + +- Version/revision information: version 1 (03/12/2024) +- PI (name, affiliation, email): Clare S. Y. Huang (The University of Chicago, csyhuang@uchicago.edu) +- Developer/point of contact: Clare S. Y. Huang (The University of Chicago, csyhuang@uchicago.edu) +- Other contributors: Christopher Polster, Noboru Nakamura + +.. Underline with '^'s to make a third-level heading. + +Open source copyright agreement +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). +Unless you've distributed your script elsewhere, you don't need to change this. + +Functionality +------------- + +(to be filled in) + +Required programming language and libraries +------------------------------------------- + +(to be filled in) + + +Required model output variables +------------------------------- + +(to be filled in) + +References +---------- + +(to be filled in) + +More about this diagnostic +-------------------------- + +(to be filled in) + +Links to external sites +^^^^^^^^^^^^^^^^^^^^^^^ + +(to be filled in) + +More references and citations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +(to be filled in) + +Figures +^^^^^^^ + +Images **must** be provided in either .png or .jpeg formats in order to be +displayed properly in both the html and pdf output. + +Here's the syntax for including a figure in the document: + +.. code-block:: restructuredtext + + .. _my-figure-tag: [only needed for linking to figures] + + .. figure:: [path to image file, relative to the source.rst file] + :align: left + :width: 75 % [these both need to be indented by three spaces] + + Paragraphs or other text following the figure that are indented by three + spaces are treated as a caption/legend, eg: + + - red line: a Gaussian + - blue line: another Gaussian + +which produces + +.. _my-figure-tag: + +.. figure:: gaussians.jpg + :align: left + :width: 75 % + + Paragraphs or other text following the figure that are indented by three + spaces are treated as a caption/legend, eg: + + - blue line: a Gaussian + - orange line: another Gaussian + +The tag lets you refer to figures in the text, e.g. +``:ref:`Figure 1 ``` → :ref:`Figure 1 `. + +Equations +^^^^^^^^^ + +Accented and Greek letters can be written directly using Unicode: é, Ω. +(Make sure your text editor is saving the file in UTF-8 encoding). + +Use the following syntax for superscripts and subscripts in in-line text: + +.. code-block:: restructuredtext + + W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . + +which produces: W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . +Note one space is needed after both forward slashes in the input; these spaces +are not included in the output. + +Equations can be written using standard +`latex `__ +(PDF link) syntax. Short equations in-line with the text can be written as +``:math:`f = 2 \Omega \sin \phi``` → :math:`f = 2 \Omega \sin \phi`. + +Longer display equations can be written as follows. Note that a blank line is +needed after the ``.. math::`` heading and after each equation, with the +exception of aligned equations. + +.. code-block:: restructuredtext + + .. math:: + + \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ + \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, + + \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. + +which produces: + +.. math:: + + \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ + \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, + + \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. + +The editor at `https://livesphinx.herokuapp.com/ +`__ can have issues formatting complicated +equations, so you may want to check its output with a latex-specific editor, +such as `overleaf `__ or other `equation editors +`__. diff --git a/diagnostics/finite_amplitude_wave_diag/doc/gaussians.jpg b/diagnostics/finite_amplitude_wave_diag/doc/gaussians.jpg deleted file mode 100644 index 0236250eb4a9380df71949bd3fae4993029c7e7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35383 zcmeFZby!wius6JKx?39QZlp!JyIVp~x&>(v>28z|X^?JE8l)AZTclGZq``0BAU;0t zIp=-9bG`q3-*ufWvDU1aS!>PwW@hbuZ~Qg&YZ1VbmzI+TAP@k6fd7DBvp^sKcXPqR z!y!N~WF$mHBxH0H=!K4lj)@L_;o;!pV1wTjL<9sx6tv`b$!S>`8CeB*1r!v_A^*1u zesuuYNU)S}?643j00tWZiw*hJ1&~3P2?Gm(F823@gn$TvgNK1d{xt(2-OyY8ZwGIG zL-O~AZ`(J&VF`-;=~D^+O$1(Bnjo(Q|1U)PR3iSXL~Z{L8_ffW|78sKBU-W+cUGWb z152&r?=g&~gG{^MZHUltpUvTn;1Eug0I2+i3L8dMGUk`R@|y=-28>6R|4k2h+i6A4 zGyPKZrVHu^RkYo7Fkks*3q_Gj_}_H@B}Z()KPXwL@t+Ohd{8DX9-E@Lk@}ZLGOPVa z3_AJWD~GP)k4<0|);%m~-^JcY{c8xuu&@y!amqvVW(>60qhCP2Tv?^k;-5W|--8!N ze3e^x!vcV_CM3lSCK!5Xpg*~x!Q!^_@guus-}In{(o?+}C3~={$n)}sh7SMkfhsQg z{ob1{sAJ+6Q0_2y=w)^5BnaD>D6tFoK-&$=-~NNJj{$d;Q@@zp45@H)z}>nJvSh8a z1Ejpgx*7VHAxAx0^#6;Ymz!-cUJIAQ|A|6&O$r3a+U{?Kf6oQGW|=RFL3bv3BlR!y zcR4n90km6ze}>Zi`2*R%C8D;;SH51BuJ=fyJq>9D{*Og0a9f={~O`I*NwpLZ|?{w{Ja?f z{x$S!$T{{uAA4Du3g0+Af%6|6}=w&d*~*Tmz;9i{=*R3GkyDE02&h47ieM2nC8s`Cat2| zNV2-<1pV{}Y9NlPifRxr4Ho0aZ`1*)Rz_moJfWvw>RZ#@fb_!hid$W>e)$_c`NkVM z_ijxBy2ILmk9SZ+CMLk$i<}Yt;pX~{n!gu}?E8k0_fEsPiIe{lN%_tJciH8&%75iy zD3$w@LApPwBucu{*G(9vj$@(9xcI9q^7=&@! z8TPx;0y?6i=p=S~kV(I;4Jrj08=cY;2Y;6c`As@ODFC>RRKLS-zPcGOw{c_Xv&W&a z2moXc;j4+JuDSjSVTAPQ7T@>tq5y#GnKkOA^7)$Kuie6;Y}uldSMOs109>=`UiPzw zYmUG2t6=I2SK2ebSTHKWXYYQO(fDQpW%2q!~O6_lz9fD~{++}V3{va!xrs+X;eLW}z z{DmtrbftITkRiwcE4QQgM(9$lu?=MT%TC@KQQr@d12RD>Y*x0Vs;RHr2e1vTnNUSw z3z1mjsT-vHqVz4;fzdA#9XqYNt|$K(ia0{3SM*hp-y4tvx9;NGizw>G`zBxqw8QUY ziqL#M)V5@BjZV&ay=KwV&-cH8{`-psO@wSlltTp8&L1SxhNmNTM=oTFg6)5tX7&2ohm@=6xG5qSF^h{r}!Gf=C%39|i6mL68M_%1wq3S+%x zw;!;Bqq9Tc;z0|2#5^;99eHXBt`QuyiLM(4cw*LTpsWxEtvP?eGZFWz#p~&BiV^I( z(wg2INLQw=Gspv=Ta3;EurjuDH|lOOG-P%2E>$t@qSVkS6TKF{U?SCySboxE3vQDKCfZgxdGah(7 z*|_Vu5JCwSTvLsKyBX9k26O<)*X&-CN0%TBNin*es?Xc5B>|_P?Z{_wy#Pi**s_O@ ze2R70TCl8$CSCYmiIK(aG3AC8{Q26_V)f^#n;_ZY?Sbvj&_6NphjimuCE?z`C}0y( z$l8V>fcz;E08TRtIRJFeDNz771B6KWMjHUPE)4+QLt})?v4F5}8^G@jKssXq%$N!Q zv1bZ^UETp;Lnr`9PV;U)06Q?8HZTuB!nPm$0AQt8@6!N?%lE+SN{CRIedP~W?>zJH z2ZS6*7Ct;>bp+6K%2Ukri~Rst^e0^7iU1AzbLXZyJ~zuUYnL)D-muP;>2S4RcE+b~_ugC@V*ed2nL_?h-`q4I_`^~)H%-9u(jLx0^rizgGShx50(pdD%>VFX z+x_OJnt{1hgKo$T+|CQb6C;`=!EnQbROfG&_B&WWoquE_EdR)Iek=iJxM9aBe9ZDq zAziw1)ahJ$2_+()K>|;7m#L~gIUpQ7RZ6KG6xFb zVcT^NW~Br`m^i!%Mwl-miGYn^d;Se$y^VhjfbA!@;(gtRU3ec0Zi4E|W~1meL9oo; zml%NHk1Ot7_hBXkIPCyf3A!%|1gh7R+1ig(GXM;0fpPB%lmPiTu@AMOWZl5%z6q2< z_KZ1-&&C8m8ox@kbZLWjG^Fi{HzSTcDp0U#~Sk?*?;KS(2~FX%!@M)3!^ zK8YUZp09I)XOqhqS4s%2E&w1IoVT5ARGEd90O+5yDBSOAOo1}PqlX9zUWna=VEey$ z`GF7@!~(#?4MBuKfWX4Rz`%k53kQ#Y2tZ(v@a_;YaLA})iDKj6;uBENQF7g*qTw{5 zrsa0z;p6}Pa14S3`~o&M$B*{R=&G*9)@B;(%Iu2MtpBI+#|T9o=VJy$axuqzGU{YW zzkn8NiK=E+SvQ@l(;|%iv&PIS<^@G<6B(BEi-55N`5qh|1?T&V#e10~oMf0pRhUB4 zn(m&UOzZJSP-s%=7qIPT&2L)p{lWzy6&|6$$<|jnrnf5hzO2i7g%`t>{X!+?mjx#$58AqPu7K>|8~~|XmyRp{$!tZNq|8BT>`wXHDv1%2WHJ>z z{2A&Iy%aU_Pt*M8brfJ&dp zb;z$c}bpI6>JsyL*A2`vINgqR#}sNt(J1yC^`2&^V%3Dz5<2g-pe?l&iS*tA8J26 z_y9NFadjzwLx~rz`ElQQz!e;V?8bZ|0&FiQSz_^wX3rlc$7+a-h+*>Y>&ZDog58mW ziN3D6-s+sgzX;(?RJ<(Uy*e?EbmVt!Z=EXg6L~cj^4L=!v_q;BbFhCvSs~r)&mXv` zdgY z$7JorCvg2Epib|xOs}TL`3Ekj`V+OK4zsG3$%11vMS-@pt<&hEjUG{;KgTy|Ds$RU zBR8JNMiwExSxY_qnPx_~Ye*Bq@0lAQjSKuZglhVvXBI5*I8h{MUfm$0pZ(i6nW}SB zSFW0^N+0IXte18gE+63wl!q|XFt@6N< z$;KES+8k{{5G?$g;eA~#n!wn?w_Xa2GFs{j@$#koucGMPdXCW++s%2!clS%a(uuX*aE>&g~s(MP6bO-BoKx zgL}9ahWpi7?YnFt@DhxnpyAHTP;iPBG54wG4+~lWcBjoj-=Ad4d zvkRzJ?VsJcmDpc%YT5*+#wg_-p;G+urmWwG{N$~VO)a-B?b_$H!I*gAjwOcHKnX*x zpjMPAXyc@V|1KlhAXHx1_!jCWm=Oi4;_G8CM~-tn-`j|Vr?vablAPLscFlu^jtgwC zX2Ws>08r&bEwu0{X~tU1S<^_3R(=IIwxvl1z;L-<^FTk7S6;x{-C>v~-F<|sXHgC> zo_Og}uKompuXFE6%BwGY5NS327Z9r-Z>75=UF58+Wr;CkTbnSG8bjy!eAE|eyp%D) z*Mk%Clo617Pr1@)zKSMbc=X#rib( zB6{9Ol+ip>7P-e?Lxsv48F&B7Rp#DK&gpy4E)hQut5)VR5q8w{4 zh1Y`7Avovh*aj3+ ztMug(F$N+7siJWd%%BbTS49%6v77`)VeI!~boOfS^6EKIUidNJI-7+fD+Nw1(Es^I zt>N!R1aHe^;JK5y1U83{OrLDY67=7?d_Yd#ATN01o}Dn=PRVG9!^GnY5{r^hR2=m)}<%3#FGR`Uvdp~)Qh0&XA{A^ir4l3-v8h=(> zr$(zbx7pAx24|Y*Y6hNrp^GQu#lM%b#0i$*S1pRYcnxlCyWssao!Xc>a#$xbi?Y6p z6sz=boJt0p_d=1H+RSthCJnJ)*N&dV)5~!t@whJQA}l6eq1=dzaBDl7bH>a2Hs)~F zpPi!*O?VNn4N-iA-~MTXWzSxwq8A+zC!+G{pjypf--ypr53L54Sm;;V3a-LF zJYWnk^`7vrOZ{YjOjY2ZeeX?a&0$VW4IZ*_-z@_AnKIfrStXA=pHjcf790;cq6+bE zN5Xd`Y|MSPfJAlr;5H)VTxHyP%7k`d3v3m!5L>HgFC0{Z#sBe5YPi}NdW|@~S%H1B zmu1pr;-pQMtR4J?otM!>a}%^?UFZDVd9Sk8=?y~tiSCKo=HzS*7G@`;E0!d(ongC- z*7#f8C9>~1TjSYY=C))s<@8|i2H?4^K}^_Jz=C#N|5mziffs{{izd}N&zcAVkE~Z5 zHRLp?U#AZ}A)A*IKV`jLwg9?}E9X2yX+h%dtK3|-tIuH<&d!ec#(iK0X(^Ypn!9(X z4d>XEoB<;o9Fr@Er|OR+CS_qwIk^8SE={T#YD0Pvh8vWr~xA#{`eQ8RwKqsYo;g zAr;)48ji+ESoX}1UnP}3x_NOGi$O{|-xwhMSLnhMzFBZPXsAAQ!T z*C9URqJCBw4L5sAcI#dGfaDG929;T5t5!Mmwj4jPV5A0dlzTxx3Rn0V)07x?0?1zQ zdgbT76f-OgQZDAznUZ098#?Mq-`IZ2x{d8^P?c7R^3O8mT{Wf%5g|1~Y454WP>o{9 z8B#UPo(#QZmy=Ix7O0z2vQ4Of_pGlix0(6226T158*qxhfOnh1QayC~1rTS(D|`F_ z9;?*rK~v%|2u)l&D=(MJR9cIn9se^y&^OA2NPDp~AH&B92P>GF<=%M>Z=KE>6V! z!p!g&FjyAb>8)pZpRRC7F3kl^f;UX_IM;g)=St$%3-X+VJdJuYOGJ8d@=}KAtUTyg z;V|x!VdpXjEXGByhpLkuzLn`#)SI7Gw)rMC99BT|-$dKPey>+$i>lSwoMu#=w28L7 zVZ0g@ESPm(wNZRAkCr8a;69R_ycNHm>Zi^_Nr$AF2^{UX$#C5zDdvW>-5-0{rr1*x z&X*5+uG27)-h}oC1ThqL2?nJmCH;jjLL3BWKR!OgdRhLXj@#AQCTw*GZx4FxD7Hi9 za!k)%C6EtiM3VM1d04BGPh(iaiy>1J6KE)PPGEtq{V0&2bA8NY5!GG4{p5J`J;G~vk?D%uEBiDrj)_C)7}aKqMR}8>sx*Ph~pYi`k6bs*{6I=vnuyV!qTBCtt-*}`xoz_-nV(?KTFap6qw-YuwUj?4DGGTMx}&~|(%*DO5Soz`zE5I4() zQ>IxF4ZD2n|7CLmd)9q?25kY$d784H5A=hzruF-*rh57ek`iZV{ajh~cVDTMEp~?h zxD?^Q^wf^|W}R*_2c!bRff#X{(<2?(@Eqtc+&fv3W^2u#5x3@k@M<*gE`D}%{&y`5 z%*d;YE{MR^@u^O;_^vDoQ^s8xhS6orJ*!1jRlfA|HyW2d;BmlWsVRoK$-6A-!UUnl zGC|a@A~RPL0%mG2=MocIUY4mRk1o|s4f9K|%VFoV^f|ydEx-50nLu%Tu2In|dKW5-+@D$Xt4W2VpFBQl$hFiyJ@%=93G(=j_PdG$37rJd1v2`lOJ*^Gt zkDW7OT2=sl+@-$_E5?g&AKqnFCr1lTZPRQgidA%*`k>mh_?KfNej7V$FAvcyc$O2;Ld-JW}f%qs=cLF z;hlP7$CC;BdB^V{w|m&8{;i}-FZ#!!qrmL%3F%Cg$QBkMv4;6~luf2(t?DA`)H~T@ zHooar!J4`%*KEZ&j!aHS9yflCc3%xvJ@Tl{Es!ub9^VMG%dLQoB5Qi5*7XvybVUN4 z@s6sJup;}1q}=MxAr}p)k(W<&rt{4=CTiJv!u|8*g_NV{O8G0*)QO|Yl|V0dw$8t- z57o`m-OPGgbv^|?7bv7H#I4TBUEuKJ6h0xoP6ANnp96Jt;7gYvp^GrDc_`Pr*M5l<`%V1ac^sd=;I|8S>iT z3LyaE7DqdHTn`FwT8TRs5>bmzg`~{Bm|u)b&wg0drfz zxVO;5Ij-Yv{t_|_+-pngmy9Yg&tigZv55K$fXV2>%%bE$ zVB$#+L+dfYc)I;K<;5-Z0(}J|?{YqwxyMro`%q-H_51z1WUj*#*0?HEFs3k)3Mc3i zIY@WWC$Zi7d+qV}1k4SP?fzQShzQg$ zuivO?zC=WEzb*48^zVD|`;^kF;Zu1&R6n=KV&nInH)FO4#QO41;+_L;JFW5F*qp%q zLwp=$HZ0P(uI2v9>~H3n1f;m4aQt^+Z>h980n>JbGi!b0{TcGY+O@WJX_|Z6cg9E z>UXK(DXMi!=jFQea79<4;S`P`h-0VFgCl5lU@}R4@zOYSKu$8`IbD8)9#?LIcj9Y1 zrY&M2IusW-89Gep{nGdOZ~IElnJCuWF@n+Gj}iEnqj`JoMqaGVmv$8TODkp8>J>>I z{D`NZ>WR-*NUxxVGrHtHlyWAdW}biKg284OF;YAadkPm!lE< z+M#Z6#)bkhKfd)svuKk_8oYIW_CTIfW=g&iC8WheSgx+Ux6v(uVQI7UYzd0~iH(J$ z+H$V~{r!>-%7GI-*V5zr+&=>XGPDh>zg3UQ-%1^$A;k*;~L8a(@qK~=v#C%;;T|n>Yr?m?YGRc{kXlD&%zERMJ$K{Nu za2M5z(ocF$mspbt&RitwKIX@+iUtuI+jGC*7YQa`##V5{FZFtCV>D0OMY9ee?I&xK z!80lFz9(g%Y()FKO8EON7BXuIAFk)0~5MUL1S=2LG`# zy}E*B>nDfB?F3~FpPJ-Z=0iDGdV-b}sVZcKq@*Jk6XutD7?1L^P8r^Q#<4(Uz+uqAbtaKd$Q)08-UO!|1j=l-W*+|n3_JzJCC|*zCz^L{ zjE>`JV7~_m5q)Gh4HpZK2vfZ<5AWBE(Sh;c(RJvmAJK|T-e$<9E5>g$>;D`c;CSw0 zCoKC=;%-;E<+nhdIaX)kp<6fiX|2u5oR*j$=6i3XaUm(zR~IVE7)qG%sR=9YP71oG zTB&_ZckhiDkq?^LIoaY@dW6+{;g|)-FAm2%BK$B~t7Y3lCO({btl@F>_G?8I4VXnT z-LU@Eq#o(2vCxmLy*_kWV)yq=+*6<50ZJHEOn>JFqsrAo$ys9?5ym=sZ(Bn>p5D@o zcBykCX&2+A!X(_R#1?@}ikIoh1S7ONcX4smN=-!pxFUROe(aoGx<|MyLE*F~=QESF zyU%v$kiS;zTJx?wUTbXbKaq5z;_ufTQK`@}qx&61?kCd1par6o8g4hP- zt|gthVJJD4d_m~V2-k`t{=(h6fg^|v~^5q446?W3*#sI7vDT&vX1`+WUb{= zO*j}*qYy6J+SxkoE8|ze7UuVtRl}E4roD^cAbOya4%n`pQi!JfV9AxP+m4`W#{Z2BDFuBb4FnG3K0PN}-dC--{%+ zl~p30E68&EetW*q;#>Cm3S}fYJ09|s($V4nNOjVSyA+C5%UWiEEA7DJY8 z9hWHW8$t}rC?}aiAA>hnZVkakWt2MGp;~84*qw&r{5GL{cbwps%ZJLq_t_lQL-KwB z^#_5^Gf#d2obuUz;UkJO78fEZkz3sf7(?te$WLE9;(e6FhRyY1 z03Ld1xI6&E^{0-wq~o1wd>l2kSb5!4X{8mki5G^w)8ZimXqq$3Y9%ublM>LU{eIt5 zf9KlUPm9#w#z`uNX{tDx!t3B;Y5mWy|6iCuvz)hkUocWKeR?Atpq?c`t-4bhTWT9* zW6o?qsUJD;Jn^zHlKo%AX_Sdx?K<(=|ALqk*sq&aJdrp+fP-ea`ucyz`qxa?O7q3@ z9K&);DuerzKG8)v4_vR||1jOH4*e)Lz%S@Z>7T{_zY?^7jbM-euQzk69kj(i>Iw%N zh*V}mJI?OO5&0GK!ik%$6f2!5x})`Wej9iiWxNl!d9V3wRZXq8kfG?#5npXp z?e5dWr-3*?L9Q2WU|3-ym*OUu%2-i157Oo6@q8o8 zn!AodP!VU$8xzZ+UHHybGuBwa?v9AbY6d#6t7%n5O=QO=^X@a+Wx#%gC6W!(QogmR z?!m`&e}}0)9N7})tRxz?tmHIA4OYspuVGB1-MtXIBKPde^l0BrWps0YQ?hJ+5I?&a zKh5`?XK27liBc#P<2f4K3#$9Zr4jklMF>lUdnsQWQe<@JvWQ~2&9hoTChF4c200TS zVrgH>?p<0LnC@g^RCK~Z^xbiO$7~M?dJJEKaGU)(4Y5$d_FxLzU*Jdk6_5Q)=-e>T z4q9ShXO?@2e{3~OW9mkwB_7=aU-N6?p5FPX+=5c=!Nn!#kZ&Fy5So%w;mOJ$ixn)i zKqU2rQOT*@;!BmIOo@)^@DTeIe(2`A4^OzIxbAre{sJ)XBH4cXs1Kty_BrH*PKg^; zL}E0Fpv#XM85x8pQfNP^r+CPA`s`L;9LYNfrYVoSAQj!ppiz>ItD^Tqm2^GPr_TFu zw9I+8Cz%8%&|5=e|9XC~eW z+R0SXma}jYG;-@4@`?$xx&AmDI1N-d&6o-e1x0--(+3)RG#avYb=xKtd8*9;9aPML z$>#WeI8xk_VKg0&!?3qYYiE@WA?=P~FpNQB3=&fq0D?aut|LOsv+>G7k*O>HPg>2eJt0{@xY6V4uds&$iFYhij|Q5{r@f zk$5UI9ZDn5eQYgex6OpV7!VzuO%2sgbo;c_-P`^7KZF0@Ho_(mhKa!|C4^oP#BB8i z1o>8L>7Sn-M}fgC?DERY>bv2Z?u_5TxellQm=Y~XnW z(F@<}6R+yJt!Tsf7}gw`bHLly-a7VzP_JK7(o+$;>qpN-NlF@M#TsfT0fBO`Cjz}zBX+t-bF6*>M;iIjcZJru zx_fd)&$0ASf2R9 z3-_^PtqdwVqB zvlS8Y0iM&MMD{6WXKV(Os=6jbK6r{^ZxXb{>uY%S_%R|3y0VlwnndkKA0~PFaC&lTu%yr)Gh$F&jE+j{$gs@k=APOF<<*Z zdSn=*g}%J!QL?;v`QzHi&5}kY{V|+amg&o$nDhY>m1s>Eb!3_~K$S^?a^2uai}o=C z8SpG{p-6R3!fy%Ui7AUhkEh2FJ0%>^iPEwZEdbr-UbnSX-}FYMZJ{ae8YqJlfFlSM#k3fzPUds{Im^&Xn*R}ue+GJChov08IBGQ~vLE4G~U)yYZGtotWOB2jY%<>u z2~?Bmxb;QcD5P@6i&~8q`4dhVdiYMUQ;GS_9OEbbZq=h%4Rzi!<}IyKb*kDq$0*j@ z5-htZuN|ht`+H&YRU+t028{L1CeDuTIc(|YP5m%K*wK|TkBWON`>cZ}dNf8NbQD#? zyl{~gHd?2iN&k!Pk*?Cr)3l_!sB(_J!x59G(fje7w6)|0aioX~Nhqr7__4W#jsfh5 z(E?zYT|61CE_Ih}zdKR2Vxwm%lNG&$lqG0aEcB3Vye4z<9+^tEjs`2lM!H%Njst(8 zmK7_@LmADz-Zx1l1A{g@uiM_E*7A;j5~;m>=k-p2|Sjj>WqD}B*Zh? z+1ndT&)&{X)!1r!P7kua3^da}vrx7(KgYOubsVSARksxS&3VZrxyF4NiVRPvr&BL^@8D z>VL(}ozNeQd$oOk8rkad>44lX@Gl>VEwXw@!KHXXBQ%qgZ0vORO^oRqL*XBcgqjTj z;#Vns&lJ1}^^*&u8_GVduaY|blSev^rCbV;0$-+x~U-orjv3sz6jd4EP=@G3XB)hLyK0k~avKnPCN7{8(^A;L#j3a$7 zRlQQWFaE5DBrVOVmenGTkswuh=M8vdvR4TD;751rhOG9`)L0^nu{7^Z&4~=99BX;h zDd@T5GH@PYKJ7bfl+l@a`@|zz?=l~Zzu4i0HCwRMfhski+A%=qktR;A38@$=OmNrSIvvIoEKb@y&l>`I*W4*P_c$2kPnYXMzM(7=fPOM%6su6+^4Q8lchi{Wlgd(k3X%d2J@Mq87`lD2Og|x&RXrxYB)a+qd?gRA^)pi+bH%K` z;~RQGR)ro{dWASC*is(3KHl_+kLDY(80>TBh4yR)0BC@;A)IA2jB2+F7ku^&A{o1U z-I4P12T<-u0tM8`zOb)``6nITnO%N2%N{P4?xr6Lt^sl-326!12#S(U@9z%P@Ns>K z|MpCK;il^XE9FDun~HBPKi5S8coT8KboWs8>B0r4hKKW0in?^O@5bl&(_Z)b@IB3#O z#S4E}6kZ)EH&j1->=$QVupigm^v{CqV{vK6$PGj4MN)d<*OXqLTb+GCL}#`Ovy+7# z+vnJDD*wki`Kz23Ej2#gaP(i~W)pbOV7E*OYc4{ZL*VLS1r*qVsQ34v+?ml+FP?ON z2+?_YMrePfsEoxl5n|a*<9{JDd~P0NRV5R_RN_V1Gosl~uk?h|kzPR7Rj#G#oSt6M zM^`V3cqDSW?5-pwD$NNrEKkODn4Tt6M<*Bh^kzA)gqRl}N6><6eTF{d%hl4yFtN34 z1O~1Msi~FjH2xV&1k*?N1i}YlmaZMqxL%sw6%|~Y^>0+FNoY7|svRXlRS;%AFG*_Y zqKnlGer1e5mo%Z|djpUAzEFU}&hpv2PdP|Z$Eo{rsSFo?>M-cMu{jYXGugrIpZ z3Hzm~Q!I(If)t7#D$?l{Go?!l+W60WB23N~I_)t(=_dsFIRXE^rzY|k(; z4{nWjzqk9KNtdotSkltk?;UE_UPJ7dY1(Emf>+#68M<|*OIv!E`?~C}+U_LuKUvsE1S|jm*a16bG6Y^$2_ysGBIMYIBsjZ8}1yO1B0zT)~)Me9@ zO-FNO0>)crTY)?I*i2MExnzxUYiZ0%nrikxjaKzOOb=tFtCrA%eQza_);>QwE!64}^&DIY|2JpR#tz^f2I^}%)32R-*~-9#-{n+_vQ zsjpS{F%Ej5Tv!v+(skZVtA?a|P3q=2xeth;vqaL%zqG{ zlF`XP9jCs~nayAbG+XetKs7szw`5l80~Hz#3rr$21nzB>+ntz1)X>M%BNPofC@$2(1(EScuw6?A zb~Q<*))cgivQ6>ICQM!apX6qd(|2F-bZ6kwRASeQdXu_~YcC6jTst)K)7<7xolKSg z!_RnW5pg^nEzm;WCyl?#gj=jrj9+iON@@Wu^~VobEw^kSQY6LwDXI4JNc@Xsg)7%&(8okXgh+*JNNIh-QQaoTSW>rS^J)U@}xocHguD!51$5G4t{Oi-0m zzl*%etflAjs&^;Cbe%AhHNN*1&o_jCx9uOwN?a_x>C0RU@g1%CA4HxMGgsC1XIclt zB~H7fMt?@*PF5FD&v|txxzT7FKgs_hZ-#A1?Dc0+??tP56)Qw|S)W6R@Uf>&XO-_3 zttcVN3=q$#$%Lir1KopJNAl>*s(YSajfpjExzo4x-tUm+m#j7|MfG`f-NF4ya>wee zAjXtJ2yxHwjJ>>7L4Jt^TS?%dnyVfs@z1>67vf*lW*wbbDUG{JbT{cgSz62NKh(~N zWFZ*|sh8MMx2Jlg*=xo3$T3Cjh@ZD-R@p{Q#zxKEAI~S~i3kzjTeN%{jO4rm>7U&S zaY^TSv6%zc2D&*75~a(ECT?Mt9^1>To@CvlN6&_w@($HVyKLRzoZ185K`ylK_rQwm zy@QM%&!!P#_rZthej6ON6GG^7dSNVKDVd4am{mFVso2aJrGLWh*R}F{M#(9BOh2}e zTTxvU!7?hs_u7z|Y?JpnENvK7J-J&D7a|e)PwnL5V|wuVEbiwItV|zzd&P+<#IX)e ztCKkeyDVA-{irrbhZ66Goq3)Ly_G#WoT_BwbUW42jBu~OP`P(xNUAYRuvtGQqzK~y znq6au`fC~Wdj*p^oIJ?Qy(?Gd&M{$);$8V^ck9TS$y5HGRjWUfF?9L+_)`YMMh0i_ zGcM06jZ<%xykvcXBI{hn2!UFd;-h%P{7s@EDyt^tLUg^K=(8c0h!kIf7ANR3tn{;& z`D$cpCJ#R=@P@;8K4*W}*ITBxJjeH7qyLI#IH^-HkT;{2T)_IPdJOVD-j;?c`1&nxt+>$2K3h`J z4Ei_KT084WtCPCq*lk+FpgcruV=e{srkE@%6jHN)j_h&Wa|Dlgvv#U@`Zrf<2IQFZ zhkz2bo!|G3EM*P@nBY5%)@x+Cof?blQ?+4}j z+%Y6uB5L@1{wXlH&N*!!mS-ojDlM@Rb;YFw8aq55vTBPk`$|B)mUE_eRBicX2(a%p zD{k0*h9#n%lOgJf@)a+gMV}+xfHbA1;*D^d3gPwHdpDHV)>hZmBPJ{O`%2eWm{Lo( z$Val6T|Ss~vPWq&?xnNBAH}Pg43no2cOAp~4VcEqjwVa;YN;_tiwbW}Hy>oRR#8){ z++wlBJA{8A=YLPI;wI}Z`I<*Ej7ULkdnyhSTcMsC=T5PXkZ|S?zN~GG$`%lmOWw@g zr1b6{>82|9gof1gI@w0DGLuk!k&1h)SB_(bSjmdfpw{7F{c-{y;UVuK@{yT&FkG@d zk`wactiF)8R`QSP90b?Z+;2!bH9G5Ns?x3+6VEo)OV?u0SO_?~HARFT6vlrE>&m{E z3dP&UmkE4Nq7sRhAS^EXSUAAvp1jffI!J8(_(4B@MRI?$4PWYMoLODJaPSC@P=S>t zyR?4GYL0yPT$P>fuB;r1N!^y1LfBD)Pd{EwX*~{J5X}P8eUoVR>(fX&POF^c(XdNt z$egQ~v2zesqZ;`CeI@h~jr8M<`~qH}?CI^Ti^l_=_ck!N7vUJ-X$@p-HR)JLl<+&T zay!B~q-)IhlS*oqxsjTl@R+kbYfo*d>7-oaus-3uDv~>d*Hs8&Qwe0Ix>rV|((ENA z<&mM^&~!1MKl|0mf=dd`X=Hap?6izkARh5eIN@}4rm2Xzr1cgVJCoG*bIMnYo7NU{ z?^JOpwo15&CkWT*s5NvFZgCafaL>zdDe-zuUbZ&>w zVsu;O$_H0W)38)k#YHz!>A!k%nY`$Rrt?Zt)~<0AUsY!rYP6+woZwkG^@$uuWD@h# z?)g^)`+S=|t|K^u?z?lb_h=dMkQ*^dJX2WbjN9q^gVqe`U#U#!BjL%iw2URvoSS4B z_cFHb?y0@BaIIXsG;LS*a|n-Izh4@2f0I<`;Xgs|`psxVV)d@q>yY8}t>VP5^DXNr zlL{TB=5?w*^;fc9O^Ia6ILx?HFQ{WG1Y$oHT6r)HCtH@a8dbl!q3Ky z(G8O>CTCjh>Jgki{B!q#-@tR28yitw6Zye!S1H4XkuQts)2M}<5v^g-Xh5QXfhkR< z2VOd}BL1ACGynH~=7nZgMY^Z*gIBtXmwkJ{mS+G%wuc{rcG$A9{m( zb04T(lZ7OwK9=JM*u`6xzUO5;U5M~z79Kfad^5}Ph7ySsaPQ_dDN`sEA~YbLZe@|C z4Yl^D+^yWtIkhr)FYMe#8r1~T(*pjbj^Au{4#%f$vyW#o@B)|bnC_*2tK$u5iR=6T zJ=@*X*E{h`$%~Q!F%P`aFJT4Wt_r=WEltd6ZLjrI`u9$GJBsr7oG<( z;rPXsZmjwnF+@&;Fo@~e=(eE_pGab6Sc8}sZlCOoU1#b4> zp*1m{c-4-Sjr=edmsj1vmi@k6v79ls4%^7fQIQpy{>)Xpv~-^rj6-<`k-q9e^^Sw< z)PmJ*IExeCE~Go71OtNJtWiwxvGf^d6dznZ)d(}Nr(r~uYr@N@kimmy(HrZjm*%3z zM&Bt}lg)}2Bx^Z@M2ex{NIi!uhisQii=;xO&IUW6QBN$t%n~gl zO?ix`)~uezU3=-x$KnHikha2~F^h4A;a3Sd>f6)2fL6{Si47gZ>$y($o#9LE#KUQ3 zs_h8yLOEh9P*h9caNhP!X$z~eQKneP27EPS9E?1B%_U2Li7z^RK&U9a;5k!Ele|Q0 zLt`z5)RBj+$86qd!(cRV^tjsW-O^G@AHcix@b}GXmMN0Bd}6jefL^6^C;MZ#QvafY zHygQ?A>OcEvMNqswAh}5p*u#)mI?ws5d9^E9yh9+OMkVief+_qdcB+NcrNC2^Zttk zl@GStQ$@|D0&})jbm_!bOrpljg@XiF7i$0ebM=)`N3WM0Z_<0~9J}l@B+B6NBh&xZ zNm}Y#kv*Io!@*?R)K5&oGL7v!6mo{m!QENLXeO^Aea2l^PY3x_1v|te!A=Z)N9Y4-QBx(RagD0 zx~fwmdMV}he|(iL#M$rsCiI9FW)e7aMO?JM|JF7vLFT_$*m)RK`c-H_RWgIl9Zemo zyOGErXjZ4RK0$yX=6={M^*MHkZF)xVf zM)1??yRfVr$6^DBZrGP!h^H?(py4X{1Y5SZ2?%-RE z&A&dCe>q)aZ~=Cr8sW>?P8Y@oxpQyWLsLBTgrL87s`m7M9<>~FDLGw#l|RQ&Z&}v9 z8kW~{B|D}0PQ1xk`3obt$o0!@&Ki2QKLUpX(Y~JaO$|<2Rh?mL+zeia(3jjrZ3Qci^NYnk9e8I%O$7&wBlPs;s2~}$HSmws4T@0YNmU@T!*7P2xACD_8;Y- z0&e-ny*-m7E-MB$Y!PDAk6c-1LB2M8S#|cBujlvdk+{_BHx8gc8`TB?O*ebhQ zB6~-(crgNX?g$0l8tu+|G;mo!_%G#uz{-Nmc0wmSp|Ql3{%^ z|5g#C8$M25hlB^nMM}eU_kd!7mfYU1I$5$V3B(!%ijm=T!}=KhGql-u85-e}o>ERT+HPTc+crcz9?lKC~x?iN(V0|tqPmuqKFucWil6U`HsbD9dT!XWgFQ$(Lc| z>l}8aI=pE}M(r7Lt*|ebgrYy_YFt%-Qi}k2X+k9m=mTrDNJ1LJ?ki;2k~{3FnvDaW zF^qzEi6r5Ts0daEiBMuol8nEs^YceZF`w3b-As)fxNF}Ke@(*C8UhG2+^3|QsRDT%uZaa&OcL(ypNAhTXzVFVXM+jmr%C+I~yBTq- z=&&M|D{!k-)PzwvuqoxRs!Hb8y>40*--MmiJ`cscQAx@%DR)r%pmFC2njKu=55TY0 ziEz{;hWKT!K#*6iAU9SU(=^8|o5e|OQw#OsrIzSR!4sTYt@1o>2R~|)p1RuvF7H8D`73`PS&2AJeSM@n z)+`971YR>niqDI{%BH;B$`({W?_q1rhf;U;GVCLN-}j#|fjsXUib`f~MtWDF<8`L` zmy6B=3%4b{aizYF7)Ji4u9AUvfxfqa<)Mtdxy_47x?&RE#r78OUh>Lfe;ScQAl_2g z1GNOop19cUK>h#(y=I2JV~98ha&&B1mCn?D3SlQUrG~{1YINc4IR7fmHV|T2U*MEf zmq{$Ud#E}^ji#CU8k30>1pBuw_fGGS&ISESz?zdKV7Qd>c2p8G9`oe>GlS@DqU6Sa z6+E?pd5P~1OEhv>0Z)k>ppFrY*7;%As^~ZSo&d;!N4HunyPsM#xG~vhvMg%MMXpyl zwifYiUd1nIu05qiUUAHcLP+!?^pWS78{@M4VeYSL9VOMz!=MS>^7B}_)6d{Lo3z!+ zd?I!9s{yy*kCy?;BU1mS7MG~XFXfQ>a|gNUgDvt2>`O~5fskW%>7=TeM|o^JL!K`E zLA6&zzZ{fEQxVl_>&fE79MiLLY;41G>XNSXTFD(~&my<_omnx$&&$tKeI}?1)ln?r zm0;)+baKtk;G`%=Q^4LH-N3&=F;hDC7pj^7^RM8Opke3F*OY7$Qjx~pMc8R8cy}cf zY|zNy2(k5RyR2g$u&ki&taCqZul#!zO_hA`UtR%K0610eu_yi9iX95xHBb;wK(0`q zzmB!4b;5Ex^rxCNe&~Nn28`Pa{9yDoNWQhZpH%Y->zek{w(zmK7PQWzs!4tWT;E(? zie(zO<)J}D@JX^qz^90`?9l{SB`Of-iH1xVpL$(>OrS@8ktx{2uErrp(NB+LgmfQj z_Cpf+%j}yeD%!4XjdWd{TFf_Aj^bT<}F+BzHx-U?Y!$L;1)!sl_HD7q4!#hKA zkduzF)==F7rz|MZIeT2TRzht5+pGG34H1 z<2ez6Yg6R-V~UrE`!T4?+i#1>x*HQ6I7}NR2Wrt<77JP%`k#g#3SLR(e*7`x+WoKt z#4+JA&44yJNuwcx#5eihy!++~NtG%yCz!BYOnN+eNc}_wmvA0cflOZZ8*gjr zsWHQm&_Pub#|0Mzv)CE*8tIs)TrLHRz#?gX-Tv3`mPyTpXFWR(^f<{U>#K`CJ_BAG zQj$T0o^saZ(bKimbMZ?v+0EEY0$#>qwt?pxzRv%6kw$3#JA`V$ z^&dd))-ShN8Y@n-_`>`*4G(!e;~5+R6C=5m4PW2D1z5yoe^w5=%q2;kzqsae%+@3o z;bZ~Gb#Id|S}>&{ahU^CUesAyAK+p?;t{ww#G*8boW2QzCuyIde=BYrDnUn9C^ zu_Z>{<6BjMI=i@NMe($v*po#bUG||jE2pa_l3nA70e7a$WZrI;_?@OtQyS$n5IGd5 z@=9exgUC>04xQL*#T&|VgWr9IKgR=~gM&hT{uTXqPZFOW@B}Z7dp+(=Ea5&?ukNex z$;lSmi9fV)a$xSh@{1Hd=1(%6((}Y&Xs06SudWb(@e%u(othVaRYRH5&PaIg2vZX& zr4w6SHjmhS%^!eA?*cTkIP7ZKidg2&`?DbUJaOR$_E3=7GO1WSL5s~JQsn2OpYv96 zM9{kBPmBxUt%dvVYq#@@6qx@2L?9fupUj~sQ>yh%;R(Lf{1<-W^<+o1_rIx9#yC81 zj76O|Xn)&0RQt3JlaKv$P?c=={rR0(D&aj}{tSd=VzcE=Eamv03#N%psedlm;VH+L zD^*E$r90MdWF`367Y|w>3=@9j`kK0Y6z^85Xs<7F2B@3ujCvF?|xep;sKPm_O0tLSo z@JeT~&AHQ1ytB=gr}+!3200*&;!wFb^AS`Yrkao?bj7(Q%w;L){_VdN&mX|v_+ONIusLfYN9sJRTZLZ5Ukk6ct?M|g z$yzmj-Z6Lav~uLSwbRZUVt)O6>=enjcK9oI&gRYPOOe*9nm5Q@UnBT8@3-TJ|Lc+e zMX~?iGK}%z?nvCjf)6_jY$>;Lp7pM1s3OetXGtk!(wqWT{|yw5}L z|CgWsKNz<_O&iKVn)HRYSX5&eDVeH&i#hwRIsZTGHPc1nr`E^I|4xJdyZu?T)6?1Z z$Z!3B&{G}kH<}xe`KoG9vl0PbOdy9Hc994*zisLap>XiBOJj(KUU&%r7LrNAR%bCj@1f5t z*kVEADAaWE;`Jj*<2)>)kJ~=aSh!<4k3dqDIDQy58|W($>#3(KrqU4XNhh8jprMCqkGS-m0l9}feC8Tgd`#V; z5w;DL?TBVP>~A1XbK+g=S)}yn!XX6*T;AQ(0%*!vLP^ee&Jc_e9+|0A_^DTW!!{6G zyh~$DiGMhpWobGuQrM<5n0>RWF;Anj7)F4wS4F~AqTh%B#aiZ>c$=Sp9zSDj`?uI&@&v`#B zkOnU#q{8`k=W0100Tng$uz0c06gQZZ*V7kAEZGZpp1EwRM&l1Z!a(9`sd zaMoAd4z2rB3wK$!F$v8<>EeuVpbL&(-@%xgTcZY=g~h*fAj%Y0q< zBQ_1CU}_zzDw8}z1gjm)=e#27;k8m3S}-3x*ajzdAP{eeuqP?jPK5U(Us`3Slh<(t=IV2@Q`&1)~T? zFBO4h4K@lPOiz4g_#4UMPTGb%wEaP{f{if9Ff2O4LBB2 zr#CTDb2_({QV+{!C!5N-+TJ_H>B*|nq$@iCY(fiyl7868Vqg@QdO4x_aRok( zB+H7bpV)9`jcq&K_Sfh2#_^_tpOY%;7`@gVXioLsj~q$0F}Z3FSc;yXjI|ybJfb9y z&~i1Da^d{)t?{*TLb*9*+R)q38OQ!7E@gI$EfCU2u}hkyApx*J1>@(C>4HUS7<`G`)aUXs99V>ZxD@B8;&9&c zHL=}Zt3n;3cokf@&0nhh(UFF>&a%d#K{D>6%tB1QX{OiX0|)nilp7tv zt_G&ZD`-9b;v6@Q++L)3rSmp>blUj`<4X;DuEHnePc65FdmUU*NnkL5N!d;{pXdx@ zssxph<%W)nuhfm>{5*_5?Jzob)kNGojd4Nig9x^Wd$vJ1T0Ej4S-W@0Ir^_i@ESVA zvp$GKBc5__sH&gvuv~e}>Z~}MYT_4{=;MdTkPF@to)Q=U@E~CsUKXCyQc0f?=L4gY z)G=T`OhQCy_lpIpaS4YFoD4Xp*1Hg5Rd;VF0TL)h^z-7_hl<3W*`x;QQ?w!RC+e&u z5B!}K<5z5FH_$k31TaI3$g%E~)2Ov;s@;zQgUBkR(<^-V=_-w)sL2BV$5ecZ2NS2E zHtDIP%Ps{LnxwE5bOjoKOca-MwqA&v2%8v7QlG{{@AY*09ooI|D_;2};yCvYrC1(P z8=sN=O>IQSCM3YZ#=`nr)B0~}BNpJH3^nT$MR)AKd5lVW`UVyup`?^-9FIj5z?L4V zqRLh&Q#dNGKGtt$c8C%Cm4zGZ{ zi~jT3I^I-c*66a{LlQD%cT`AvaXbQ+*E?E!{oY37gslgOxh54 zUI3~6(lw!_`YaEw8fOGyxatM^Kq7nMQ3n!;JGU}eoEi`W*8gR`T|PFn5A<}o{Bq8 zv^iHxIJrM|tM29#*W#*krC!#ASYYt_Va*ikbE|`pEn#)xYxVG0wHxx`W5l%PI2sSc zcymIo8j<7IFBU zx$W9CG{3=u6(Oh?w$}o&7`s+A#eTswN&H^eE%Ucu*hM#RpUc$it`!)W{}x3(-4iNw z=$WZ*7Adq)u3f4Nj*Sl$5!^{U`;>0fp-)HmGSz5Rp>4`YV!$Ek_IoHXiav>dPNEU$ z{3fMmyou;O=FJINF(QUjHjd`JS6#4m*-Cnr{2@BcM^HY55gM2Lw0KJ4>nkJ3Z_(DL zQ9}Is%fyCOFSB_0WTyi2-P$k4nWP^Kyq_8Xa_y4i#3<6_6YcB)x3oymOkm_#qonql z90=ktF+Igc+0utQ^Tiz$ONsu8J;Pl^@B8}H*oBkxk2oMFFHowx`MiVgjVpq^I36rk z!*cd{5kO9bpT#hqE~&`1oBeCf`Z&NyC5q38>Qh;N7H1>QwRoInX%7Gt+Ux6pOYRZLJ*EQifTK0iQkA6V6Yj zv{Rv*LHg^Fr)*|+qMUtcmA6K8eY2d!-|-_6HalLgML~0jUwFEfSU;eXONI^QoIp%C zg&P3kQRbZ0{}HQyptJ_n1uifmjAS-GL z9`z>`J(7Kw`T|RAdRe<;^MW4VOami&ohJAlm92QO5tVEiBzcX?*~oIc&Wp!^5d`Oh z8+AF9va{2QgKOEF77(CvQ%l1VeTORv&F@L+8va|kuC1OoCW)JzAm0^tj>FF7#|ZTp z;{c=%DED!ZnX_#m++S6CAkJWKu%ge_(Azu;$6i|Thyfwz72pg)sGAeGlwOSM1WSJ| zce9qcXo%TwHH59q*quTqQ|7&vXZ3MpvY2lQ-gUmO?kvscMkJyq^~Fa{r}~KLi3QFhAb5Y2f!( zp7rv#S|fo^zV65DC9otO4j$Qkanus5J4au3=j7EGQ*2VA8sQSzY)9c^6tpBW>{ z-wv`|UJkaKzkM!>73|H&irSTdnx&&Sdwr^z@V99R+vhCNh2XRj(qC?Oy-KbUs6(V> z)!2oLYw(&V{Pu9vWv$Y<$CI?9FDnSTT|WBnaVs#|&Z-M@$nDq`#FcbrXW8G4N@LfT z_2f$wReeXu;kYy3{lM?Mu^44;f1FyAD@77<=JP~fSdV!AnP-stSZ`UP9K|c8V3tta zcCukjupS(!iKnT^krRw&KWsc)iI=&lGq3V8n`PI(`#P%Je#Ph-p%N|cYmN2xa3nB9 z&Rx}HOVy9B`4hph2rvWUU)#8%p_%Fx=4g64#Z{W{q^I<`fACH7@cx9!cEz`+bwDJd zAM%WgQpW%Cdy-1p@8cQm+8Gzo;BZz}p!yi#Y&w%<;uT+TSY(IBsDo~n@Jqk%^SXAm z`mi+4p(8n!blBoT4!r=c(rg4ltOllc5|MFcKa_5(EkGBq2?vjW7ABxlDYv;=IxG0> zXD@K_TvReo9cjohmWI0QU%83O8KTX6@IntQ<)e!Uv+G+GW8pGZN^2ZFjm~p=md!4l z#~OLXQ2B#8$3RDX(@$MbZ(hK}g-!24Go^;N=B?bu&aupr&U|0#`yB69+_7+q+;|Yg zevKx2|Mq7?d)Uf2(njNQ6hm_X^*i6SN&zk7Bm!@Z$-W_LGNEajmTB~qi+s>Tig9H4 z=D3G1fLsCn+{KtRg`8YR{p44W^m)D|lP`$JOIdvONtakOr-_^l|tWSEoeg zFNN!cLh-8az|?HulRTi8dGBzSmp7wqdM=q>39#t3ju)R&swd-|W(INP z0GHPDRX71Hb=Y{Cg*5WxCVhFt=TKoTORQ6IdCH(SYH%hio`9!A-VL^3?X9If!vX`- z0WH|FvV#7IH{tHG1Ek7dwA_{t=X#iJ6C_RM=#9=n^DKk1#ek|O^&0l!oA@auH&ub}RtopQ_O6lorHYtPbn3TcX<}gLJfD#6 zC?qeQrPmUH2OmB}_wPqht#31JugL;Pu=;isPgbjO-SL$sDd7aM>h1KhAN^w7bqz{n zb^P}D^I47*o8p}-bB~IifbHEEje%>kIk};qkLxlb>C>}F&8|5_4emE@LD|G6oie3) z%;-IzGRmI#xE)C5#-U&@w*`h1cIb$DmO-~FZ$zP57}fni<39i#=Z!yr7p5+Sr*$(y zW7$C&6im0)2h%OnEiCNk)N!?s&QAHKibF+!nwk^4Mb128EC50dwC|$gzvQKr_rTRd8;a2yDUC`Vh$hrpa}7| z6Ua)Hl>2&n&?UVK=!ED4m2mnWz|CvQKLGuD!sEg+>_z85GLtsGgVg2FI}9wTpi|Qa z#HaILh>w5}8xP}uLVT?3e-R%A70X}5XJHxgKLDRWXv$y2=g~cdL#^`4v+!eG4-Myr z;REPP`v>zqoJ{u@^EKdu^->W$oGj)VeOT|S49vYmV>EcVHvCu^Rqi*`u`49|+OJV> z;;!8vL^}mrG;=2cl|%4B9sQWm7}2>eq?C+YOLXU3P#mjS!K*VM=KGe%roqUq(7^R1 z0k2(NdRKqi6VBIS$auuYs3?_OUGZ(B=3Ks+N|zR{6H(~u@`1QWUhcU008aZucb+8y z^k8RPuwh`CiFdmMOvPnv_;3^XRoJgN^XZ%fD`(C4scKUYW7Aaq|+hZbGAzO zNv|5nidLoIe39P;%P-)$JIbv3h~Y^@I?cD;ox{yp7GTNQS9cmLK|XLp%ri!&pX>JVeqeeoZH|K83C;QON{4a!K;+rlb6bvYW=du*_Qp0GC5PgL zRh4;>b3G4%X6UrPk07*O-&a|n5SIIn?5o1iY~`3ec=|l>ds2o7G!lQagJmy;b?~WB z+uM7kCcMw&k4!<(w}NIB9VmmHmJ(5gd3OSX#U+-$*P76W6G7U)AtB-$8b8SOiUP{W zc1Cvfqo*E90CF^jRo;%@SI&Rc$xN!}rJG5de6hUI@2k0_A$_{j0&)B-R!t#t@ms~r-pn4cA zZO)v1)M$=zLV!E`Hrm-Io0An!Q|%RiNvUzsCyV#^K;7h8`-er>1!1e?zGf%eJ*0fc zkup+lPAA{Z@?1!q(P4hvrl90UoZbpwsTxjr++^U4FMqLsxz~OYCHETS(=gaWch2f2 zRkLf~&0NYB4u6MaUr5yx6BlICpryO$Rf(>6-X7-5FTL(iW+s&!TKq*o*|{i-A&>kU z0QBX`Q4g!q zX@Q|%8NmGhh%wqZoTLC_lJWHgs!~-4mrI2vTYZZ%H9xw){X@xhh?iTYH!*RqbvY2I zH>SD;Km7IF!TqkJph&uW;7#p5M{O1yh)${8%}WcC+jOq{Z4YPyl@%s1p6?UO1fe;I zX~y?xU6^|oRIQ%X>T9%F$R(j&uZ{n?qZByg>1Y+ffM! zE_fEk%BiUj00?npvxy2Mibs_;#!yiKN{jZC%|<-Sie}12%R9@q+sz<*V>plLux~OT zY0vmnyZ6T}eV%4c7XGByEg5(xTqz0%x<}=`+Hwz@8PD6H;aVBG?*UKa7;Z7tXla(r zI(|TKs_JsW(8fc&d%8qE+M>fqcObKtv@^8azmK;*$ZW2-+c-fuHM!0;9@6UKE3IKe ziEXeaKX?dG6tuJ_=I>4&OnCw*T10S!6LY;cMeEQT;IqTtLp zEthMV9Z{DBt2}vv+3i=6F@=bt%HrMUmf(BLHU)hByplgkFD#7s$<4JVi5K))i@};% zjE+V7PQRV%@804O(1*(K3`Y0dPP!2Tfv`d6>=;JtJ?bh03ao*=#NAbVO`o9&BA_&h z`i`c+6N+5#1HPpVH64a1X;BWZZ0E-E*3U|?A+`B|HSu&cYthNiJGLTU$v7I08Vkfy zT%zXK$4Wq@x-aA8l1VqlM~Bap8W_d%v2L83isiD?7mwK$8F63*J?{#EnPXg6&B&<7 zbQ=5A)t@cW-lbqn-tH4MOx^S?RRO`u;#kJ8k}5Wbjr?N`JAbFAFMD(#VOT1Wt~WjkimAE=(i+Vo z-Z)@#T?^Sv5fiIZdD#5=EfW=)D^vT!wS z3)bFt=qLUv8+APzc2235>@Sf2`gltg;SzUsaH`K$d!aMU&AUHMbRzi~@c%4OYqt91yxjp>s`GZ!#( zF@rc$-k$sc40=bc#$UV^u8X37CN-AA0Q?!SZUzsd%1|Z7x=$ z>>;Qs)ui&)0_10_w=2t@QX$%ifn5gXB+Zt?mz=1X)2@Vr4(ogt07~SKp$;0sz9gKmRgMa@pa*CrGfNKAA_Dds zps*`}?a+cF;&?7*T`Y%fO&89{tys8T`X)x&>%^Ouw5b`#YNH$Eh7($2_9OnfJPe0j z`lV4M*%WOt99BCWfVM#|JpIU~G+9uSocyUQehuU6UU2qBRk`%y5!Vz)k(upF9h(wH zkowwme?aD_A;M1927lVBA^kfdqqlpCq>&kc&w(M|@MPei4d4K@_^? z$3f>hH*km{hai7?c&6a5d8*>7L@P%)mB7cZvwP1ndAEq^L0J#3zS)X75I(zzAAV+JGME*4d&zjB+lC|H(%_^roUgaiw zy4e0$f;KYC*$l?Du@9GwgLN6G?JXM9^Bxf~HikT*C}y1$G`1#H!v^|n zXFF(1M8)KalXDtJghmkEO|cTFSj%O^8Ln%Ar7d(IK=O^+X7{TLapOY*g*on5^aoi5 zEdu;u14uOrlSirbG24N2kT=YZj)o_6jy4;ul&j4&(4p+)Mk} zO4w-I8o@Zm0IsAw!#w>X|6nTpd}`cjc$L6-U+J>X0Px=N=@mDKb|w3zU{FG-b1Xuj z10l#ILL0_UR88aKk7s0@Z9YYd{VXgCcTDd4l)cv#V(m7w_Bi!PKy{+^jdBXdjG5^f zMdWnCsoHOSd+$f}ibNmwaPS%|O^&}7I=N^-slg@LJt56;B6SX$F8s6X^?KI!etuTq z{>FrO-3#HbWs-i02_HNA34`dRK00P;c<^Sv|60S?RkQ7iiuTx~FH!R@UQpD%I^Xo^ zp##X)`5J!gRbqP@eL$1qvUbNLmiNNwV)Bc6(@}a4?S-fvqg?&C)E%JdCJ8IQus4Dx zOFh2mQw%CMzfJJ$#8MGQQqwTxOr82EODVZVpmknRb=&19=b9Ab)ti@%&xeq%cS6fT z+eS_AvQHTP0CthCmqhgLvx|+VAel#Xa}~ud^ZxH#(;nY#ubX!Az4mW?!|&C)OLMN> zBy5&nI%`~V;7}NxH&Z&bIT#&}O{-P*y^ki4xImBGPe1aDskBt0hO5ALu~IW z9}Hd)_?|#&o@x>tiLT#AF4r3D0X+>W+WMP3cs8DJN-v489==Q6pI>^I<%Hv>f6ww= zE%>grQ}vzk-7CZ!@3*nPtJa2rCp-cziLA=PsqipcdG(3GM{HGFG1D2Qf@ TLO;iOwPb^j=3Xo4&*J|EfB^3! diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 8091813e3..863d48309 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -193,28 +193,28 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u, cmap=cmap, var_title_str='zonal mean U', - save_path=f"{plot_dir}test_{season}_zonal_mean_u.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_u.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_lwa, cmap=cmap, var_title_str='zonal mean LWA', - save_path=f"{plot_dir}test_{season}_zonal_mean_lwa.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_lwa.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean Uref', - save_path=f"{plot_dir}test_{season}_zonal_mean_uref.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_uref.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean $\Delta$ U', - save_path=f"{plot_dir}test_{season}_zonal_mean_delta_u.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_delta_u.eps", num_level=30) # Use encapsulated class to plot lat_lon_plotter = LatLonMapPlotter(figsize=(6, 3), title_str=title_str, xgrid=original_grid['lon'], ygrid=original_grid['lat'], cmap=cmap, xland=xland, yland=yland, lon_range=lon_range, lat_range=lat_range) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.u_baro, cmap=cmap, var_title_str='U baro', - save_path=f"{plot_dir}test_{season}_u_baro.eps", num_level=30) + save_path=f"{plot_dir}{season}_u_baro.eps", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.lwa_baro, cmap=cmap, var_title_str='LWA baro', - save_path=f"{plot_dir}test_{season}_lwa_baro.eps", num_level=30) + save_path=f"{plot_dir}{season}_lwa_baro.eps", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", var_title_str='Covariance between LWA and U(baro)', - save_path=f"{plot_dir}test_{season}_u_lwa_covariance.eps", num_level=30) + save_path=f"{plot_dir}{season}_u_lwa_covariance.eps", num_level=30) # === 3) Saving output data === From 67ea92416fc4520f2a1bc74ad67389d996e22fca Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 20:40:33 -0500 Subject: [PATCH 121/178] try to run on OTC --- .../finite_amplitude_wave_diag_zonal_mean.py | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 863d48309..101017784 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -3,7 +3,7 @@ # Calculate finite-amplitude wave diagnostics that quantifies wave-mean flow # interactions. # -# Last update: 02/18/2024 +# Last update: 03/18/2024 # ================================================================================ # Version & Contact info # @@ -54,37 +54,38 @@ # //...nc # Here and frequency are requested in the "varlist" part of # settings.json. -already_done_gridfill = True -load_environ = (socket.gethostname() == 'otc') +already_done_gridfill: bool = True +load_environ: bool = (socket.gethostname() == 'otc') +frequency = "1hr" # TODO: change later + if load_environ: # otc path - uvt_path = os.environ["UVT_FILE"] - u_var_name = os.environ["U_VAR"] - v_var_name = os.environ["V_VAR"] - t_var_name = os.environ["T_VAR"] - time_coord_name = os.environ["TIME_COORD"] - plev_name = os.environ["LEV_COORD"] - lat_name = os.environ["LAT_COORD"] - lon_name = os.environ["LON_COORD"] + print( + f""" + Start running on OTC. Print out all environment variables: + {os.environ} + """) wk_dir = os.environ["WK_DIR"] + uvt_path = f'{os.environ["DATADIR"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' casename = os.environ["CASENAME"] - firstyr = os.environ["FIRSTYR"] - lastyr = os.environ["LASTYR"] else: # iMac path + wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" - u_var_name = "ua" - v_var_name = "va" - t_var_name = "ta" - time_coord_name = "time" - plev_name = "plev" - lat_name = "lat" - lon_name = "lon" - wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" casename = "GFDL-CM3_historical_r1i1p1" - firstyr = 2005 - lastyr = 2005 -# Regular grid defined by developer +otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123/" + \ + "1hr/GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123.ta.1hr.nc" + +# *** Coordinates of input dataset *** +u_var_name = "ua" +v_var_name = "va" +t_var_name = "ta" +time_coord_name = "time" +plev_name = "plev" +lat_name = "lat" +lon_name = "lon" + +# *** Regular analysis grid defined by developer *** xlon = np.arange(0, 361, 1.0) ylat = np.arange(-90, 91, 1.0) print(f"Use xlon: {xlon}") @@ -93,6 +94,8 @@ # 2) Doing computations: model_dataset = xr.open_mfdataset(uvt_path) # command to load the netcdf file +firstyr = model_dataset.coords['time'].values[0].year +lastyr = model_dataset.coords['time'].values[-1].year if model_dataset[plev_name].units == 'Pa': # Pa shall be divided by 100 to become hPa model_dataset = model_dataset.assign_coords({plev_name: model_dataset[plev_name] // 100}) model_dataset[plev_name].attrs["units"] = 'hPa' From 244d07a69df187ed3a7d434092b1646d2eb22864 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:03:18 -0500 Subject: [PATCH 122/178] add default run file --- src/default_finite_amplitude_wave_diag.jsonc | 135 +++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 src/default_finite_amplitude_wave_diag.jsonc diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc new file mode 100644 index 000000000..436bb32bb --- /dev/null +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -0,0 +1,135 @@ +// Configuration for MDTF-diagnostics driver script self-test. +// +// Copy this file and customize the settings as needed to run the framework on +// your own model output without repeating command-line options. Pass it to the +// framework at the end of the command line (positionally) or with the +// -f/--input-file flag. Any other explicit command line options will override +// what's listed here. +// +// All text to the right of an unquoted "//" is a comment and ignored, as well +// as blank lines (JSONC quasi-standard.) +{ + "case_list" : [ + // The cases below correspond to the different sample model data sets. Note + // that the MDTF package does not currently support analyzing multiple + // models in a single invocation. Comment out or delete the first entry and + // uncomment the second to run NOAA-GFDL-AM4 only for the MJO_prop_amp POD, + // and likewise for the SM_ET_coupling POD. + { + "CASENAME" : "GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123", + "model" : "GFDL-CM4", + "convention" : "GFDL-CM4", + "FIRSTYR" : 1984, + "LASTYR" : 1984, + "pod_list": [ + // Optional: PODs to run for this model only (defaults to all) + "finite_amplitude_wave_diag", + // "convective_transition_diag", + // "precip_diurnal_cycle", + // "ocn_surf_flux_diag", + // "mixed_layer_depth", + // "tropical_pacific_sea_level", + // "temp_extremes_distshape", + // "precip_buoy_diag" + ] + } + // { + // "CASENAME" : "GFDL.CM4.c96L32.am4g10r8", + // "model" : "AM4", + // "convention" : "GFDL", + // "FIRSTYR" : 1, + // "LASTYR" : 10, + // "pod_list" : ["MJO_prop_amp"] + // } + // { + // "CASENAME" : "Lmon_GISS-E2-H_historical_r1i1p1", + // "model" : "CMIP", + // "convention" : "CMIP", + // "FIRSTYR" : 1951, + // "LASTYR" : 2005, + // "pod_list" : ["SM_ET_coupling"] + // } + // { + // "CASENAME" : "NCAR-CAM5.timeslice", + // "model" : "CESM", + // "convention" : "CMIP", + // "FIRSTYR" : 2000, + // "LASTYR" : 2004, + // "pod_list": ["example"] + // } + ], + // PATHS --------------------------------------------------------------------- + // Location of supporting data downloaded when the framework was installed. + + // If a relative path is given, it's resolved relative to the MDTF-diagnostics + // code directory. Environment variables (eg, $HOME) can be referenced with a + // "$" and will be expended to their current values when the framework runs. + + // Parent directory containing observational data used by individual PODs. + "OBS_DATA_ROOT": "../inputdata/obs_data/", + + // Parent directory containing results from different models. + "MODEL_DATA_ROOT": "../inputdata/model/", + + // Working directory. Defaults to OUTPUT_DIR if blank. + "WORKING_DIR": "../wkdir", + + // Directory to write output. The results of each run of the framework will be + // put in a subdirectory of this directory. + "OUTPUT_DIR": "../wkdir", + + // Location of the Anaconda/miniconda or micromamba installation to use for managing + // dependencies (path returned by running `[conda | micromamba] info`.) If empty, + // framework will attempt to determine location of system's conda installation. + "conda_root": "$HOME/miniconda3", + + // Location of micromamba executable if using micromamba + "micromamba_exe":"", + + // Directory containing the framework-specific conda environments. This should + // be equal to the "--env_dir" flag passed to conda_env_setup.sh. If left + // blank, the framework will look for its environments in the system default + // location. + "conda_env_root": "$HOME/miniconda3/envs", + + // SETTINGS ------------------------------------------------------------------ + // Any command-line option recognized by the mdtf script (type `mdtf --help`) + // can be set here, in the form "flag name": "desired setting". + + // Method used to fetch model data. + "data_manager": "Local_File", + + // Type of data that POD(s) will analyze + // "single_run" (default) or "multi_run" + "data_type": "single_run", + + // Method used to manage dependencies. + "environment_manager": "Conda", + + // Settings affecting what output is generated: + + // Set to true to have PODs save postscript figures in addition to bitmaps. + "save_ps": true, + + // Set to true to have PODs save netCDF files of processed data. + "save_nc": true, + + // Set to true to save HTML and bitmap plots in a .tar file. + "make_variab_tar": true, + + // Set to true to overwrite results in OUTPUT_DIR; otherwise results saved + // under a unique name. + "overwrite": false, + + // Settings used in debugging: + + // Log verbosity level. + "verbose": 1, + + // Set to true for framework test. Data is fetched but PODs are not run. + "test_mode": false, + + // Set to true for framework test. No external commands are run and no remote + // data is copied. Implies test_mode. + "dry_run": false +} From be6651d362eec99384389326de62df77f5ca6c61 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:04:19 -0500 Subject: [PATCH 123/178] remove typo --- src/default_finite_amplitude_wave_diag.jsonc | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index 436bb32bb..c2e01ed26 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -23,14 +23,7 @@ "LASTYR" : 1984, "pod_list": [ // Optional: PODs to run for this model only (defaults to all) - "finite_amplitude_wave_diag", - // "convective_transition_diag", - // "precip_diurnal_cycle", - // "ocn_surf_flux_diag", - // "mixed_layer_depth", - // "tropical_pacific_sea_level", - // "temp_extremes_distshape", - // "precip_buoy_diag" + "finite_amplitude_wave_diag" ] } // { From 59f148d83001d548bb1a5843f2eeaf60f71b8c0c Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:06:05 -0500 Subject: [PATCH 124/178] fix typo --- .../finite_amplitude_wave_diag/settings.jsonc | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index a468df5e7..28e51ebf0 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -37,19 +37,19 @@ "units":"K", "dimensions":["time", "lev", "lat", "lon"], "freq":"day"} - }, - "pod_env_vars":{ /* This shall be removed when submitting PR */ - "start_year" : "1993", - "end_year" : "2009", - "CASENAME": "GFDL-CM3_historical_r1i1p1", - "UVT_FILE": "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc", - "U_VAR": "ua", - "V_VAR": "va", - "T_VAR": "ta", - "TIME_COORD": "time", - "LEV_COORD": "plev", - "LAT_COORD": "lat", - "LON_COORD": "lon", - "WK_DIR": "wkdir" } +// "pod_env_vars":{ /* This shall be removed when submitting PR */ +// "start_year" : "1993", +// "end_year" : "2009", +// "CASENAME": "GFDL-CM3_historical_r1i1p1", +// "UVT_FILE": "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc", +// "U_VAR": "ua", +// "V_VAR": "va", +// "T_VAR": "ta", +// "TIME_COORD": "time", +// "LEV_COORD": "plev", +// "LAT_COORD": "lat", +// "LON_COORD": "lon", +// "WK_DIR": "wkdir" +// } } \ No newline at end of file From 6c26882dfbe01a3708658de82cf17392dd2b562a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:07:32 -0500 Subject: [PATCH 125/178] fix typo --- .../finite_amplitude_wave_diag/settings.jsonc | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 28e51ebf0..4ae5a8437 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -20,7 +20,8 @@ "lat": {"standard_name": "latitude"}, "lon": {"standard_name": "longitude"}, "lev":{"standard_name":"air_pressure", "units":"hPa", "positive":"down", "axis":"Z"}, - "time": {"standard_name": "time"}, + "time": {"standard_name": "time"} + }, "varlist":{ "ua":{ "standard_name":"eastward_wind", @@ -38,18 +39,4 @@ "dimensions":["time", "lev", "lat", "lon"], "freq":"day"} } -// "pod_env_vars":{ /* This shall be removed when submitting PR */ -// "start_year" : "1993", -// "end_year" : "2009", -// "CASENAME": "GFDL-CM3_historical_r1i1p1", -// "UVT_FILE": "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc", -// "U_VAR": "ua", -// "V_VAR": "va", -// "T_VAR": "ta", -// "TIME_COORD": "time", -// "LEV_COORD": "plev", -// "LAT_COORD": "lat", -// "LON_COORD": "lon", -// "WK_DIR": "wkdir" -// } } \ No newline at end of file From 89563ec4f684d71f35d644ade0bf5b6c217ab767 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:08:17 -0500 Subject: [PATCH 126/178] fix typo --- src/default_finite_amplitude_wave_diag.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index c2e01ed26..4651095c6 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -17,8 +17,8 @@ // and likewise for the SM_ET_coupling POD. { "CASENAME" : "GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123", - "model" : "GFDL-CM4", - "convention" : "GFDL-CM4", + "model" : "CESM", + "convention" : "CESM", "FIRSTYR" : 1984, "LASTYR" : 1984, "pod_list": [ From 7490bbe43ae9e8f532143652daa2d233e02ea868 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:14:15 -0500 Subject: [PATCH 127/178] freq to 1hr --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 4ae5a8437..f05fc6b2d 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -27,16 +27,16 @@ "standard_name":"eastward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"day"}, + "freq":"1hr"}, "va":{ "standard_name":"northward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"day"}, + "freq":"1hr"}, "ta":{ "standard_name":"air_temperature", "units":"K", "dimensions":["time", "lev", "lat", "lon"], - "freq":"day"} + "freq":"1hr"} } } \ No newline at end of file From 099e777d9da7ec42e884c103476b22885ddef7e8 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:15:08 -0500 Subject: [PATCH 128/178] freq to 1hr --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index f05fc6b2d..0bfcacfa1 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -15,7 +15,7 @@ ] } }, - "data":{"frequency":"day"}, + "data":{"frequency":"1hr"}, "dimensions":{ "lat": {"standard_name": "latitude"}, "lon": {"standard_name": "longitude"}, From 8725d59afb8b6a83d05b78b4466ae438209bd539 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:21:34 -0500 Subject: [PATCH 129/178] try again after moving files --- src/default_finite_amplitude_wave_diag.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index 4651095c6..18537afa7 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -16,7 +16,7 @@ // uncomment the second to run NOAA-GFDL-AM4 only for the MJO_prop_amp POD, // and likewise for the SM_ET_coupling POD. { - "CASENAME" : "GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123", + "CASENAME" : "GFDL-CM4", "model" : "CESM", "convention" : "CESM", "FIRSTYR" : 1984, From b9c26bb00aad4de992b8a36a7d995b0f66225bfe Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:32:19 -0500 Subject: [PATCH 130/178] try set dry run to true --- src/default_finite_amplitude_wave_diag.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index 18537afa7..06dac2199 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -120,9 +120,9 @@ "verbose": 1, // Set to true for framework test. Data is fetched but PODs are not run. - "test_mode": false, + "test_mode": true, // Set to true for framework test. No external commands are run and no remote // data is copied. Implies test_mode. - "dry_run": false + "dry_run": true } From 14c39565b3bc05c1cca50c64cc7c8c773d3515fa Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:41:20 -0500 Subject: [PATCH 131/178] retry --- src/default_finite_amplitude_wave_diag.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index 06dac2199..d089e7cbd 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -17,8 +17,8 @@ // and likewise for the SM_ET_coupling POD. { "CASENAME" : "GFDL-CM4", - "model" : "CESM", - "convention" : "CESM", + "model" : "CM4", + "convention" : "GFDL", "FIRSTYR" : 1984, "LASTYR" : 1984, "pod_list": [ From 99c977e5beca8ccd63a38eb3f2fcf405f8bcc3c3 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 21:46:09 -0500 Subject: [PATCH 132/178] try another --- data/fieldlist_GFDL.jsonc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/fieldlist_GFDL.jsonc b/data/fieldlist_GFDL.jsonc index e13a994d2..842a3d126 100644 --- a/data/fieldlist_GFDL.jsonc +++ b/data/fieldlist_GFDL.jsonc @@ -45,13 +45,13 @@ // } }, "variables" : { - "ucomp": { + "ua": { "standard_name": "eastward_wind", "units": "m s-1", "scalar_coord_templates": {"plev": "u{value}"}, "ndim": 4 }, - "vcomp": { + "va": { "standard_name": "northward_wind", "units": "m s-1", "scalar_coord_templates": {"plev": "v{value}"}, @@ -273,7 +273,7 @@ // "units": "K" // }, // Variables for Convective Transition Diagnostics module: - "temp": { + "ta": { "standard_name": "air_temperature", "units": "K", "ndim": 4 From faa1ab4992e6adb449a1330c35e6351091e7f6be Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 22:15:19 -0500 Subject: [PATCH 133/178] change freq to 'day' --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 0bfcacfa1..a042d966c 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -27,16 +27,16 @@ "standard_name":"eastward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"1hr"}, + "freq":"day"}, "va":{ "standard_name":"northward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"1hr"}, + "freq":"day"}, "ta":{ "standard_name":"air_temperature", "units":"K", "dimensions":["time", "lev", "lat", "lon"], - "freq":"1hr"} + "freq":"day"} } } \ No newline at end of file From 84f1430280d4393e89b146a307fa7e5b6b6a7aaf Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sat, 16 Mar 2024 22:21:28 -0500 Subject: [PATCH 134/178] try day --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index a042d966c..4ae5a8437 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -15,7 +15,7 @@ ] } }, - "data":{"frequency":"1hr"}, + "data":{"frequency":"day"}, "dimensions":{ "lat": {"standard_name": "latitude"}, "lon": {"standard_name": "longitude"}, From 0b4558f8be115b145de16f0bbb2c7b4201de9c62 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 00:41:43 -0500 Subject: [PATCH 135/178] switch back to 1hr --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 4ae5a8437..0bfcacfa1 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -15,7 +15,7 @@ ] } }, - "data":{"frequency":"day"}, + "data":{"frequency":"1hr"}, "dimensions":{ "lat": {"standard_name": "latitude"}, "lon": {"standard_name": "longitude"}, @@ -27,16 +27,16 @@ "standard_name":"eastward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"day"}, + "freq":"1hr"}, "va":{ "standard_name":"northward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"day"}, + "freq":"1hr"}, "ta":{ "standard_name":"air_temperature", "units":"K", "dimensions":["time", "lev", "lat", "lon"], - "freq":"day"} + "freq":"1hr"} } } \ No newline at end of file From 04fa13d12baffb65d4578e7572ab1e2c5756c783 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 07:48:17 -0500 Subject: [PATCH 136/178] add html --- ..._wave_diag_zonal_mean.html => finite_amplitude_wave_diag.html} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename diagnostics/finite_amplitude_wave_diag/{doc/finite_amplitude_wave_diag_zonal_mean.html => finite_amplitude_wave_diag.html} (100%) diff --git a/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.html b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag.html similarity index 100% rename from diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.html rename to diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag.html From 1228a11cf917ffeda82af3c0ea9807d71b628aa5 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 08:54:36 -0500 Subject: [PATCH 137/178] remove __main__: --- .../finite_amplitude_wave_diag_zonal_mean.py | 117 +++++++++--------- 1 file changed, 58 insertions(+), 59 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 101017784..401c11e18 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -227,66 +227,65 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, # any format (as long as it's documented) and should be written to the # directory /model/netCDF (created by the framework). -# *** Produce data by season, daily *** -if __name__ == '__main__': - model_or_obs: str = "model" # It can be "model" or "obs" - season_to_months = [ - ("DJF", [1, 2, 12]), ("MAM", [3, 4, 5]), ("JJA", [6, 7, 8]), ("SON", [9, 10, 11])] - intermediate_output_paths: Dict[str, str] = { - item[0]: f"{wk_dir}/intermediate_{item[0]}.nc" for item in season_to_months} - - for season in season_to_months[:1]: - # Construct data preprocessor - data_preprocessor = DataPreprocessor( - wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, - plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) - - selected_months = season[1] - plot_dir = f"{wk_dir}/{model_or_obs}/PS/" - - # Do temporal sampling to reduce the data size - sampled_dataset = model_dataset.where( - model_dataset.time.dt.month.isin(selected_months), drop=True) \ - .groupby("time.day").mean("time") - preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it - data_preprocessor.output_preprocess_data( - sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) - intermediate_dataset = xr.open_mfdataset(preprocessed_output_path) - fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) - analysis_height_array = fawa_diagnostics_dataset.coords['height'].data - seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) - - # === 4) Saving output plots === - # - # Plots should be saved in EPS or PS format at //PS - # (created by the framework). Plots can be given any filename, but should have - # the extension ".eps" or ".ps". To make the webpage output, the framework will - # convert these to bitmaps with the same name but extension ".png". - - # Define a python function to make the plot, since we'll be doing it twice and - # we don't want to repeat ourselves. - - # set an informative title using info about the analysis set in env vars - title_string = f"{casename} ({firstyr}-{lastyr}) {season}" - # Plot the model data: - plot_and_save_figure(seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, - season=season[0], xy_mask=data_preprocessor.xy_mask, yz_mask=data_preprocessor.yz_mask) - print(f"Finishing outputting figures to {plot_dir}.") - - # Close xarray datasets - sampled_dataset.close() - intermediate_dataset.close() - fawa_diagnostics_dataset.close() - gc.collect() - print("Finish the whole process") - model_dataset.close() - - # 6) Cleaning up: +# *** MAIN PROCESS: Produce data by season, daily *** +model_or_obs: str = "model" # It can be "model" or "obs" +season_to_months = [ + ("DJF", [1, 2, 12]), ("MAM", [3, 4, 5]), ("JJA", [6, 7, 8]), ("SON", [9, 10, 11])] +intermediate_output_paths: Dict[str, str] = { + item[0]: f"{wk_dir}/intermediate_{item[0]}.nc" for item in season_to_months} + +for season in season_to_months[:1]: + # Construct data preprocessor + data_preprocessor = DataPreprocessor( + wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, + plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) + + selected_months = season[1] + plot_dir = f"{wk_dir}/{model_or_obs}/PS/" + + # Do temporal sampling to reduce the data size + sampled_dataset = model_dataset.where( + model_dataset.time.dt.month.isin(selected_months), drop=True) \ + .groupby("time.day").mean("time") + preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it + data_preprocessor.output_preprocess_data( + sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) + intermediate_dataset = xr.open_mfdataset(preprocessed_output_path) + fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) + analysis_height_array = fawa_diagnostics_dataset.coords['height'].data + seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) + + # === 4) Saving output plots === # - # In addition to your language's normal housekeeping, don't forget to delete any - # temporary/scratch files you created in step 4). - os.system(f"rm -f {wk_dir}/gridfill_*.nc") - os.system(f"rm -f {wk_dir}/intermediate_*.nc") + # Plots should be saved in EPS or PS format at //PS + # (created by the framework). Plots can be given any filename, but should have + # the extension ".eps" or ".ps". To make the webpage output, the framework will + # convert these to bitmaps with the same name but extension ".png". + + # Define a python function to make the plot, since we'll be doing it twice and + # we don't want to repeat ourselves. + + # set an informative title using info about the analysis set in env vars + title_string = f"{casename} ({firstyr}-{lastyr}) {season}" + # Plot the model data: + plot_and_save_figure(seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, + season=season[0], xy_mask=data_preprocessor.xy_mask, yz_mask=data_preprocessor.yz_mask) + print(f"Finishing outputting figures to {plot_dir}.") + + # Close xarray datasets + sampled_dataset.close() + intermediate_dataset.close() + fawa_diagnostics_dataset.close() + gc.collect() +print("Finish the whole process") +model_dataset.close() + +# 6) Cleaning up: +# +# In addition to your language's normal housekeeping, don't forget to delete any +# temporary/scratch files you created in step 4). +os.system(f"rm -f {wk_dir}/gridfill_*.nc") +os.system(f"rm -f {wk_dir}/intermediate_*.nc") ### 7) Error/Exception-Handling Example ######################################## # nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) From 3834587b10a2b91a2746df2478e55198386f682b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 09:06:54 -0500 Subject: [PATCH 138/178] save png --- .../finite_amplitude_wave_diag_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py index 4f5e230db..ed2622581 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -94,7 +94,7 @@ def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_l ax.set_xlim(self._xlim) plt.tight_layout() plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace(".png", ".eps"), bbox_inches='tight') # Do I need this? + plt.savefig(save_path.replace(".eps", ".png"), bbox_inches='tight') # Do I need this? plt.show() From 3c5423f332cc95cfa251e4a484ee9bb0c6d18be5 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 09:08:24 -0500 Subject: [PATCH 139/178] save png in another path --- .../finite_amplitude_wave_diag_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py index ed2622581..cf5cce93a 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -94,7 +94,7 @@ def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_l ax.set_xlim(self._xlim) plt.tight_layout() plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace(".eps", ".png"), bbox_inches='tight') # Do I need this? + plt.savefig(save_path.replace("/PS/", "/").replace(".eps", ".png"), bbox_inches='tight') # Do I need this? plt.show() From ca367336a3a69a188f2bb1db0c69b3c800fa838d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 09:27:57 -0500 Subject: [PATCH 140/178] temporarily remove clean up --- .../finite_amplitude_wave_diag_utils.py | 2 +- .../finite_amplitude_wave_diag_zonal_mean.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py index cf5cce93a..c8f7ff43e 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -192,7 +192,7 @@ def _implement_gridfill(self, dataset: xr.Dataset): # *** Implement gridfill procedure *** print(f"self._gridfill_needed = True. Do gridfill with poisson solver.") args_tuple = [self._u_var_name, self._v_var_name, self._t_var_name] - gridfill_file_path = self._wk_dir + "/gridfill_{var}.nc" + gridfill_file_path = self._wk_dir + "/model/netCDF/gridfill_{var}.nc" for var_name in args_tuple: field_at_all_level = xr.apply_ufunc( gridfill_each_level, diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 401c11e18..17061f2bf 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -232,7 +232,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, season_to_months = [ ("DJF", [1, 2, 12]), ("MAM", [3, 4, 5]), ("JJA", [6, 7, 8]), ("SON", [9, 10, 11])] intermediate_output_paths: Dict[str, str] = { - item[0]: f"{wk_dir}/intermediate_{item[0]}.nc" for item in season_to_months} + item[0]: f"{wk_dir}/model/netCDF/intermediate_{item[0]}.nc" for item in season_to_months} for season in season_to_months[:1]: # Construct data preprocessor @@ -284,8 +284,8 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, # # In addition to your language's normal housekeeping, don't forget to delete any # temporary/scratch files you created in step 4). -os.system(f"rm -f {wk_dir}/gridfill_*.nc") -os.system(f"rm -f {wk_dir}/intermediate_*.nc") +# os.system(f"rm -f {wk_dir}/model/netCDF/gridfill_*.nc") +# os.system(f"rm -f {wk_dir}/model/netCDF/intermediate_*.nc") ### 7) Error/Exception-Handling Example ######################################## # nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) From 4abd433d5307e04f1f3e853043f3a7919f6d4e5a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 09:33:39 -0500 Subject: [PATCH 141/178] turn off test_mode --- src/default_finite_amplitude_wave_diag.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index d089e7cbd..b2d7deea4 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -120,9 +120,9 @@ "verbose": 1, // Set to true for framework test. Data is fetched but PODs are not run. - "test_mode": true, + "test_mode": false, // Set to true for framework test. No external commands are run and no remote // data is copied. Implies test_mode. - "dry_run": true + "dry_run": false } From 64533e60ab853ee9bdeba62720f94cdf9d8b20b3 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 09:50:07 -0500 Subject: [PATCH 142/178] save png first --- .../finite_amplitude_wave_diag_zonal_mean.py | 22 +++++++++---------- src/default_finite_amplitude_wave_diag.jsonc | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 17061f2bf..9d777ac48 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -196,28 +196,28 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u, cmap=cmap, var_title_str='zonal mean U', - save_path=f"{plot_dir}{season}_zonal_mean_u.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_u.png", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_lwa, cmap=cmap, var_title_str='zonal mean LWA', - save_path=f"{plot_dir}{season}_zonal_mean_lwa.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_lwa.png", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean Uref', - save_path=f"{plot_dir}{season}_zonal_mean_uref.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_uref.png", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean $\Delta$ U', - save_path=f"{plot_dir}{season}_zonal_mean_delta_u.eps", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_delta_u.png", num_level=30) # Use encapsulated class to plot lat_lon_plotter = LatLonMapPlotter(figsize=(6, 3), title_str=title_str, xgrid=original_grid['lon'], ygrid=original_grid['lat'], cmap=cmap, xland=xland, yland=yland, lon_range=lon_range, lat_range=lat_range) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.u_baro, cmap=cmap, var_title_str='U baro', - save_path=f"{plot_dir}{season}_u_baro.eps", num_level=30) + save_path=f"{plot_dir}{season}_u_baro.png", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.lwa_baro, cmap=cmap, var_title_str='LWA baro', - save_path=f"{plot_dir}{season}_lwa_baro.eps", num_level=30) + save_path=f"{plot_dir}{season}_lwa_baro.png", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", var_title_str='Covariance between LWA and U(baro)', - save_path=f"{plot_dir}{season}_u_lwa_covariance.eps", num_level=30) + save_path=f"{plot_dir}{season}_u_lwa_covariance.png", num_level=30) # === 3) Saving output data === @@ -232,7 +232,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, season_to_months = [ ("DJF", [1, 2, 12]), ("MAM", [3, 4, 5]), ("JJA", [6, 7, 8]), ("SON", [9, 10, 11])] intermediate_output_paths: Dict[str, str] = { - item[0]: f"{wk_dir}/model/netCDF/intermediate_{item[0]}.nc" for item in season_to_months} + item[0]: f"{wk_dir}/{model_or_obs}/intermediate_{item[0]}.nc" for item in season_to_months} for season in season_to_months[:1]: # Construct data preprocessor @@ -241,7 +241,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) selected_months = season[1] - plot_dir = f"{wk_dir}/{model_or_obs}/PS/" + plot_dir = f"{wk_dir}/{model_or_obs}/" # Do temporal sampling to reduce the data size sampled_dataset = model_dataset.where( @@ -284,8 +284,8 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, # # In addition to your language's normal housekeeping, don't forget to delete any # temporary/scratch files you created in step 4). -# os.system(f"rm -f {wk_dir}/model/netCDF/gridfill_*.nc") -# os.system(f"rm -f {wk_dir}/model/netCDF/intermediate_*.nc") +# os.system(f"rm -f {wk_dir}/model/gridfill_*.nc") +# os.system(f"rm -f {wk_dir}/model/intermediate_*.nc") ### 7) Error/Exception-Handling Example ######################################## # nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index b2d7deea4..62fbad8cf 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -117,7 +117,7 @@ // Settings used in debugging: // Log verbosity level. - "verbose": 1, + "verbose": 2, // Set to true for framework test. Data is fetched but PODs are not run. "test_mode": false, From c5f69e28233b3d1f8899fad9541ddeb6e640e80a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:17:01 -0500 Subject: [PATCH 143/178] Add env var on otc --- diagnostics/finite_amplitude_wave_diag/env_otc.sh | 3 +++ .../finite_amplitude_wave_diag_zonal_mean.py | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/env_otc.sh diff --git a/diagnostics/finite_amplitude_wave_diag/env_otc.sh b/diagnostics/finite_amplitude_wave_diag/env_otc.sh new file mode 100644 index 000000000..0089e1f9f --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/env_otc.sh @@ -0,0 +1,3 @@ +export WK_DIR=/home/clare/GitHub/mdtf/wkdir +export DATADIR=/home/clare/GitHub/mdtf/inputdata/model +export CASENAME="GFDL-CM4" diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 9d777ac48..7249bf1e2 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -67,14 +67,13 @@ wk_dir = os.environ["WK_DIR"] uvt_path = f'{os.environ["DATADIR"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' casename = os.environ["CASENAME"] + # otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/GFDL-CM4.ta.1hr.nc" else: # iMac path wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" casename = "GFDL-CM3_historical_r1i1p1" -otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123/" + \ - "1hr/GFDL.CM4.HISTORICAL.SLICE.TEST11.1984010100-1984123123.ta.1hr.nc" # *** Coordinates of input dataset *** u_var_name = "ua" From c4f4ed48533b0c1cc1958ceac97c79c2eef34d0f Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:19:08 -0500 Subject: [PATCH 144/178] debug --- .../finite_amplitude_wave_diag_zonal_mean.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 7249bf1e2..e856e71f7 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -29,14 +29,8 @@ import socket from collections import namedtuple import matplotlib - -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import convert_hPa_to_pseudoheight, \ - DataPreprocessor - -if socket.gethostname() == 'otc': - matplotlib.use('Agg') # non-X windows backend - -from finite_amplitude_wave_diag_utils import LatLonMapPlotter, HeightLatPlotter +from finite_amplitude_wave_diag_utils import convert_hPa_to_pseudoheight, DataPreprocessor, LatLonMapPlotter, \ + HeightLatPlotter # Commands to load third-party libraries. Any code you don't include that's # not part of your language's standard library should be listed in the @@ -48,6 +42,9 @@ from falwa.oopinterface import QGFieldNH18 from falwa.constant import P_GROUND, SCALE_HEIGHT +if socket.gethostname() == 'otc': + matplotlib.use('Agg') # non-X windows backend + # 1) Loading model data files: # # The framework copies model data to a regular directory structure of the form From 4a52a6b0b38434f429c02110ee8ac45fa3953b98 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:20:10 -0500 Subject: [PATCH 145/178] add print --- .../finite_amplitude_wave_diag_zonal_mean.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index e856e71f7..067b9ab40 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -71,6 +71,13 @@ "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" casename = "GFDL-CM3_historical_r1i1p1" +print( + f""" + wk_dir = {wk_dir} + uvt_path = {uvt_path} + casename = {casename} + """ +) # *** Coordinates of input dataset *** u_var_name = "ua" From 240ce9ec293796de39ec8cfc1ac07669d77d3688 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:20:55 -0500 Subject: [PATCH 146/178] fix data path --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 067b9ab40..eaa4d9967 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -62,7 +62,7 @@ {os.environ} """) wk_dir = os.environ["WK_DIR"] - uvt_path = f'{os.environ["DATADIR"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' + uvt_path = f'{os.environ["DATADIR"]}/{os.environ["CASENAME"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' casename = os.environ["CASENAME"] # otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/GFDL-CM4.ta.1hr.nc" else: # iMac path From 10ffd2b53c4b349ca5b9fb7040f674a0715dbd4a Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:22:24 -0500 Subject: [PATCH 147/178] fix data path --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index eaa4d9967..21ae0a991 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -84,7 +84,7 @@ v_var_name = "va" t_var_name = "ta" time_coord_name = "time" -plev_name = "plev" +plev_name = "level" lat_name = "lat" lon_name = "lon" From aa7418db0d1eb52e31cf005e4e214d89ec3d2cdf Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:27:03 -0500 Subject: [PATCH 148/178] rerun --- .../finite_amplitude_wave_diag_zonal_mean.py | 1 + 1 file changed, 1 insertion(+) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 21ae0a991..49a2bb265 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -100,6 +100,7 @@ firstyr = model_dataset.coords['time'].values[0].year lastyr = model_dataset.coords['time'].values[-1].year if model_dataset[plev_name].units == 'Pa': # Pa shall be divided by 100 to become hPa + print("model_dataset[plev_name].units == 'Pa'. Convert it to hPa.") model_dataset = model_dataset.assign_coords({plev_name: model_dataset[plev_name] // 100}) model_dataset[plev_name].attrs["units"] = 'hPa' From 8af7f7d12daded6fe64d1725dc1527d4c58a29d6 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:52:23 -0500 Subject: [PATCH 149/178] add print statements --- .../finite_amplitude_wave_diag_zonal_mean.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 49a2bb265..cbb8a87cb 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -64,7 +64,7 @@ wk_dir = os.environ["WK_DIR"] uvt_path = f'{os.environ["DATADIR"]}/{os.environ["CASENAME"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' casename = os.environ["CASENAME"] - # otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/GFDL-CM4.ta.1hr.nc" + # otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/1hr/GFDL-CM4.ta.1hr.nc" else: # iMac path wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ @@ -239,6 +239,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, item[0]: f"{wk_dir}/{model_or_obs}/intermediate_{item[0]}.nc" for item in season_to_months} for season in season_to_months[:1]: + print(f"season: {season}") # Construct data preprocessor data_preprocessor = DataPreprocessor( wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, @@ -248,16 +249,26 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, plot_dir = f"{wk_dir}/{model_or_obs}/" # Do temporal sampling to reduce the data size + print("Start samping data in frequency 'day'.") sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ .groupby("time.day").mean("time") preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it + print(f"Start preparing intermediate data in the directory: {preprocessed_output_path}") data_preprocessor.output_preprocess_data( sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) + print(f"Finished preparing intermediate data in the directory: {preprocessed_output_path}") intermediate_dataset = xr.open_mfdataset(preprocessed_output_path) + print(f"Start computing FAWA diagnostics from sampled data.") fawa_diagnostics_dataset = compute_from_sampled_data(intermediate_dataset) analysis_height_array = fawa_diagnostics_dataset.coords['height'].data seasonal_avg_data = time_average_processing(fawa_diagnostics_dataset) + print( + f""" + Finished computing FAWA diagnostics from sampled data. + fawa_diagnostics_dataset: {fawa_diagnostics_dataset} + seasonal_avg_data: {seasonal_avg_data} + """) # === 4) Saving output plots === # From 96b4cb6f5ad6e7f59449cf3932f339689c5752b5 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 10:57:22 -0500 Subject: [PATCH 150/178] add print statements --- .../finite_amplitude_wave_diag_zonal_mean.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index cbb8a87cb..8eaea0573 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -89,11 +89,8 @@ lon_name = "lon" # *** Regular analysis grid defined by developer *** -xlon = np.arange(0, 361, 1.0) +xlon = np.arange(0, 360, 1.0) ylat = np.arange(-90, 91, 1.0) -print(f"Use xlon: {xlon}") -print(f"Use ylat: {ylat}") - # 2) Doing computations: model_dataset = xr.open_mfdataset(uvt_path) # command to load the netcdf file @@ -103,6 +100,11 @@ print("model_dataset[plev_name].units == 'Pa'. Convert it to hPa.") model_dataset = model_dataset.assign_coords({plev_name: model_dataset[plev_name] // 100}) model_dataset[plev_name].attrs["units"] = 'hPa' +print(f""" + Use xlon: {xlon} + Use ylat: {ylat} + firstyr, lastyr = {firstyr}, {lastyr} + """) # === 2.0) Save original grid === original_grid = { From 990f0a6751fc47f39233aec2ee2a34632f4d431d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 11:11:23 -0500 Subject: [PATCH 151/178] use first instead of mean --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 8eaea0573..8ea7692d5 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -254,7 +254,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, print("Start samping data in frequency 'day'.") sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ - .groupby("time.day").mean("time") + .groupby("time.day").first("time") preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it print(f"Start preparing intermediate data in the directory: {preprocessed_output_path}") data_preprocessor.output_preprocess_data( From 09db6a01f229fa5c5b80a307d0bf9ef28d10716c Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 11:12:25 -0500 Subject: [PATCH 152/178] use first instead of mean --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 8ea7692d5..a3dd2de56 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -254,7 +254,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, print("Start samping data in frequency 'day'.") sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ - .groupby("time.day").first("time") + .groupby("time.day").first() preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it print(f"Start preparing intermediate data in the directory: {preprocessed_output_path}") data_preprocessor.output_preprocess_data( From acde5b8b7957a71e239e4b1e3c8ca6e3d689d173 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 11:13:21 -0500 Subject: [PATCH 153/178] skipna=False --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index a3dd2de56..d2064ad56 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -254,7 +254,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, print("Start samping data in frequency 'day'.") sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ - .groupby("time.day").first() + .groupby("time.day").first(skipna=False) preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it print(f"Start preparing intermediate data in the directory: {preprocessed_output_path}") data_preprocessor.output_preprocess_data( From 273622a0312fab1cc33d6547bcdfe7ec9722bcd0 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:08:11 -0500 Subject: [PATCH 154/178] use GFDL-CM3_historical_r1i1p1 --- .../finite_amplitude_wave_diag_zonal_mean.py | 5 ++++- src/default_finite_amplitude_wave_diag.jsonc | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index d2064ad56..20c33adc3 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -84,7 +84,10 @@ v_var_name = "va" t_var_name = "ta" time_coord_name = "time" -plev_name = "level" +if load_environ: + plev_name = "level" +else: + plev_name = "plev" lat_name = "lat" lon_name = "lon" diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index 62fbad8cf..2503757c9 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -16,9 +16,9 @@ // uncomment the second to run NOAA-GFDL-AM4 only for the MJO_prop_amp POD, // and likewise for the SM_ET_coupling POD. { - "CASENAME" : "GFDL-CM4", - "model" : "CM4", - "convention" : "GFDL", + "CASENAME" : "GFDL-CM3_historical_r1i1p1", + "model" : "CMIP", + "convention" : "CMIP", "FIRSTYR" : 1984, "LASTYR" : 1984, "pod_list": [ From 285e699c2cd54a04bf7c0d0554832cc11478bd76 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:08:56 -0500 Subject: [PATCH 155/178] change freq to day --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 0bfcacfa1..4ae5a8437 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -15,7 +15,7 @@ ] } }, - "data":{"frequency":"1hr"}, + "data":{"frequency":"day"}, "dimensions":{ "lat": {"standard_name": "latitude"}, "lon": {"standard_name": "longitude"}, @@ -27,16 +27,16 @@ "standard_name":"eastward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"1hr"}, + "freq":"day"}, "va":{ "standard_name":"northward_wind", "units":"m s-1", "dimensions":["time", "lev", "lat", "lon"], - "freq":"1hr"}, + "freq":"day"}, "ta":{ "standard_name":"air_temperature", "units":"K", "dimensions":["time", "lev", "lat", "lon"], - "freq":"1hr"} + "freq":"day"} } } \ No newline at end of file From 35cea07e143f42eafc12ea08da021801c128d7d2 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:10:02 -0500 Subject: [PATCH 156/178] change year to 2005 --- src/default_finite_amplitude_wave_diag.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/src/default_finite_amplitude_wave_diag.jsonc index 2503757c9..3512eb229 100644 --- a/src/default_finite_amplitude_wave_diag.jsonc +++ b/src/default_finite_amplitude_wave_diag.jsonc @@ -19,8 +19,8 @@ "CASENAME" : "GFDL-CM3_historical_r1i1p1", "model" : "CMIP", "convention" : "CMIP", - "FIRSTYR" : 1984, - "LASTYR" : 1984, + "FIRSTYR" : 2005, + "LASTYR" : 2005, "pod_list": [ // Optional: PODs to run for this model only (defaults to all) "finite_amplitude_wave_diag" From 460fe7ece17ef615e3a26fab504fe73fe7d874aa Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:15:46 -0500 Subject: [PATCH 157/178] change coord --- diagnostics/finite_amplitude_wave_diag/settings.jsonc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/settings.jsonc b/diagnostics/finite_amplitude_wave_diag/settings.jsonc index 4ae5a8437..cf20be21a 100644 --- a/diagnostics/finite_amplitude_wave_diag/settings.jsonc +++ b/diagnostics/finite_amplitude_wave_diag/settings.jsonc @@ -19,24 +19,24 @@ "dimensions":{ "lat": {"standard_name": "latitude"}, "lon": {"standard_name": "longitude"}, - "lev":{"standard_name":"air_pressure", "units":"hPa", "positive":"down", "axis":"Z"}, + "plev":{"standard_name":"air_pressure", "units":"Pa", "positive":"down", "axis":"Z"}, "time": {"standard_name": "time"} }, "varlist":{ "ua":{ "standard_name":"eastward_wind", "units":"m s-1", - "dimensions":["time", "lev", "lat", "lon"], + "dimensions":["time", "plev", "lat", "lon"], "freq":"day"}, "va":{ "standard_name":"northward_wind", "units":"m s-1", - "dimensions":["time", "lev", "lat", "lon"], + "dimensions":["time", "plev", "lat", "lon"], "freq":"day"}, "ta":{ "standard_name":"air_temperature", "units":"K", - "dimensions":["time", "lev", "lat", "lon"], + "dimensions":["time", "plev", "lat", "lon"], "freq":"day"} } } \ No newline at end of file From c6179ef9d66dddd5a130c4c19c1635e80d5772ea Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:31:07 -0500 Subject: [PATCH 158/178] update env var --- diagnostics/finite_amplitude_wave_diag/env_otc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/env_otc.sh b/diagnostics/finite_amplitude_wave_diag/env_otc.sh index 0089e1f9f..3048d1ae0 100644 --- a/diagnostics/finite_amplitude_wave_diag/env_otc.sh +++ b/diagnostics/finite_amplitude_wave_diag/env_otc.sh @@ -1,3 +1,3 @@ export WK_DIR=/home/clare/GitHub/mdtf/wkdir export DATADIR=/home/clare/GitHub/mdtf/inputdata/model -export CASENAME="GFDL-CM4" +export CASENAME="GFDL-CM3_historical_r1i1p1" From a4203dcede80044b0053071dae1b372eb5636d3d Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:32:10 -0500 Subject: [PATCH 159/178] change freq to day --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 20c33adc3..8d6feb7c1 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -53,7 +53,7 @@ # settings.json. already_done_gridfill: bool = True load_environ: bool = (socket.gethostname() == 'otc') -frequency = "1hr" # TODO: change later +frequency = "day" # TODO: change later if load_environ: # otc path print( From 090c3c06451c812f06f0a084f232d17ff4022933 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:32:34 -0500 Subject: [PATCH 160/178] plev --- .../finite_amplitude_wave_diag_zonal_mean.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 8d6feb7c1..f226bc1de 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -84,10 +84,7 @@ v_var_name = "va" t_var_name = "ta" time_coord_name = "time" -if load_environ: - plev_name = "level" -else: - plev_name = "plev" +plev_name = "plev" lat_name = "lat" lon_name = "lon" From e000537681b5df47255aef83aeca081f024e1b46 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:35:55 -0500 Subject: [PATCH 161/178] 4 seasons --- .../finite_amplitude_wave_diag_zonal_mean.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index f226bc1de..2dc352076 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -202,28 +202,28 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, ygrid=analysis_height_array, cmap=cmap, xlim=[-80, 80]) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u, cmap=cmap, var_title_str='zonal mean U', - save_path=f"{plot_dir}{season}_zonal_mean_u.png", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_u.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_lwa, cmap=cmap, var_title_str='zonal mean LWA', - save_path=f"{plot_dir}{season}_zonal_mean_lwa.png", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_lwa.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean Uref', - save_path=f"{plot_dir}{season}_zonal_mean_uref.png", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_uref.eps", num_level=30) height_lat_plotter.plot_and_save_variable(variable=seasonal_average_data.zonal_mean_u - seasonal_average_data.uref, cmap=cmap, var_title_str='zonal mean $\Delta$ U', - save_path=f"{plot_dir}{season}_zonal_mean_delta_u.png", num_level=30) + save_path=f"{plot_dir}{season}_zonal_mean_delta_u.eps", num_level=30) # Use encapsulated class to plot lat_lon_plotter = LatLonMapPlotter(figsize=(6, 3), title_str=title_str, xgrid=original_grid['lon'], ygrid=original_grid['lat'], cmap=cmap, xland=xland, yland=yland, lon_range=lon_range, lat_range=lat_range) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.u_baro, cmap=cmap, var_title_str='U baro', - save_path=f"{plot_dir}{season}_u_baro.png", num_level=30) + save_path=f"{plot_dir}{season}_u_baro.eps", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.lwa_baro, cmap=cmap, var_title_str='LWA baro', - save_path=f"{plot_dir}{season}_lwa_baro.png", num_level=30) + save_path=f"{plot_dir}{season}_lwa_baro.eps", num_level=30) lat_lon_plotter.plot_and_save_variable(variable=seasonal_average_data.covariance_lwa_u_baro, cmap="Purples_r", var_title_str='Covariance between LWA and U(baro)', - save_path=f"{plot_dir}{season}_u_lwa_covariance.png", num_level=30) + save_path=f"{plot_dir}{season}_u_lwa_covariance.eps", num_level=30) # === 3) Saving output data === @@ -240,7 +240,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, intermediate_output_paths: Dict[str, str] = { item[0]: f"{wk_dir}/{model_or_obs}/intermediate_{item[0]}.nc" for item in season_to_months} -for season in season_to_months[:1]: +for season in season_to_months: print(f"season: {season}") # Construct data preprocessor data_preprocessor = DataPreprocessor( @@ -248,7 +248,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) selected_months = season[1] - plot_dir = f"{wk_dir}/{model_or_obs}/" + plot_dir = f"{wk_dir}/{model_or_obs}/PS/" # Do temporal sampling to reduce the data size print("Start samping data in frequency 'day'.") From 62b7a0c942589d91a74bd53a46c05aa905b308d9 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:42:32 -0500 Subject: [PATCH 162/178] 4 seasons --- .../finite_amplitude_wave_diag_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py index c8f7ff43e..32cb4795f 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -65,7 +65,7 @@ def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_l fig.colorbar(main_fig, ax=ax) ax.set_title(f"{self._title_str}\n{var_title_str}") plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace(".png", ".eps"), bbox_inches='tight') + plt.savefig(save_path.replace("/PS/", "/").replace(".eps", ".png"), bbox_inches='tight') # Do I need this? plt.show() From 9a1c893736d78fe1e48159f6fd06dadfc6ea3102 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 17 Mar 2024 14:44:15 -0500 Subject: [PATCH 163/178] fix title string --- .../finite_amplitude_wave_diag_zonal_mean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 2dc352076..8abac5bdd 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -283,7 +283,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, # we don't want to repeat ourselves. # set an informative title using info about the analysis set in env vars - title_string = f"{casename} ({firstyr}-{lastyr}) {season}" + title_string = f"{casename} ({firstyr}-{lastyr}) {season[0]}" # Plot the model data: plot_and_save_figure(seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, season=season[0], xy_mask=data_preprocessor.xy_mask, yz_mask=data_preprocessor.yz_mask) From 094e71ec7a49289a5a8eca9634f63534d96615bf Mon Sep 17 00:00:00 2001 From: csyhuang Date: Mon, 18 Mar 2024 21:59:48 -0500 Subject: [PATCH 164/178] use pip in .yml file --- .../submit_issue_ticket_20240318.md | 27 +++++++++++++++++++ src/conda/env_finite_amplitude_wave_diag.yml | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md diff --git a/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md b/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md new file mode 100644 index 000000000..8285abe63 --- /dev/null +++ b/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md @@ -0,0 +1,27 @@ + + +On branch `finite_amplitude_wave_diag`, when I execute: + +```bash +./mdtf -f src/default_finite_amplitude_wave_diag.jsonc -v +``` + +The model data are located at: +``` +mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.ua.day.nc +mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.va.day.nc +mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.ta.day.nc +``` + +Which are downloaded from: +``` +ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/ua/ua_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc +ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/va/va_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc +ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/ta/ta_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc +``` + +This is the branch I am running MDTF from: +https://github.com/csyhuang/MDTF-diagnostics/tree/finite_amplitude_wave_diag/diagnostics/finite_amplitude_wave_diag + +The python environment file: +https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/src/conda/env_finite_amplitude_wave_diag.yml diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index b3ec671ab..896ece9bf 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -16,4 +16,4 @@ dependencies: - bottleneck - pip - pip: - - "--editable=git+https://github.com/csyhuang/hn2016_falwa.git@master#egg=falwa" + - falwa==1.2.1 From 24dc7646ecbcbecbbbb007be4bd8871364855716 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 28 Mar 2024 12:54:00 -0500 Subject: [PATCH 165/178] save md --- .../submit_issue_ticket_20240318.md | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md b/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md index 8285abe63..225df4fc2 100644 --- a/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md +++ b/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md @@ -1,27 +1,40 @@ +When I tried testing my code by running `./mdtf`, I encountered error at the data preparation stage and wonder how I can debug this. I was running from my branch: +https://github.com/csyhuang/MDTF-diagnostics/tree/finite_amplitude_wave_diag -On branch `finite_amplitude_wave_diag`, when I execute: +After I executed: ```bash ./mdtf -f src/default_finite_amplitude_wave_diag.jsonc -v ``` -The model data are located at: +I encountered the following error at the data preparation stage: +``` +Received event while preprocessing <#MKNN:finite_amplitude_wave_diag.ta>: DataPreprocessEvent("Caught exception while cleaning attributes to write data for <#MKNN:finite_amplitude_wave_diag.ta>: ValueError('The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()').") +``` +The full log file can be found here: [GFDL-CM3_historical_r1i1p1.log](GFDL-CM3_historical_r1i1p1.log) + +The config files can be found at: +- https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/src/default_finite_amplitude_wave_diag.jsonc +- https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/diagnostics/finite_amplitude_wave_diag/settings.jsonc + +On my own linux machine, I put the model data at (below are the relative paths): ``` mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.ua.day.nc mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.va.day.nc mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.ta.day.nc ``` -Which are downloaded from: +which were downloaded from: ``` ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/ua/ua_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/va/va_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/ta/ta_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc ``` -This is the branch I am running MDTF from: -https://github.com/csyhuang/MDTF-diagnostics/tree/finite_amplitude_wave_diag/diagnostics/finite_amplitude_wave_diag - -The python environment file: +This is my python environment file: https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/src/conda/env_finite_amplitude_wave_diag.yml + +May you advice how I can proceed? Thanks! + +Clare \ No newline at end of file From 6dd1ee6d02a095782d7bd9c9927d8fa0c3d0c046 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 28 Mar 2024 14:46:32 -0500 Subject: [PATCH 166/178] fix data path --- .../finite_amplitude_wave_diag_zonal_mean.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index 8abac5bdd..bf72ca9b1 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -62,7 +62,11 @@ {os.environ} """) wk_dir = os.environ["WK_DIR"] - uvt_path = f'{os.environ["DATADIR"]}/{os.environ["CASENAME"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' + # uvt_path = f'{os.environ["DATADIR"]}/{os.environ["CASENAME"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' + # Old above + # uvt_path = /home/clare/GitHub/mdtf/wkdir/MDTF_GFDL-CM3_historical_r1i1p1_2005_2005.v3/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.[uvt]a.day.nc + # Correct below + uvt_path = f"{os.environ['DATADIR']}/{frequency}/{os.environ['CASENAME']}.[uvt]a.{frequency}.nc" casename = os.environ["CASENAME"] # otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/1hr/GFDL-CM4.ta.1hr.nc" else: # iMac path From fcca20a8744f442889e2e3eced8dc099e17263b6 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Thu, 28 Mar 2024 18:04:53 -0500 Subject: [PATCH 167/178] remove production of png --- .../finite_amplitude_wave_diag_utils.py | 4 ++-- .../finite_amplitude_wave_diag_zonal_mean.py | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py index 32cb4795f..5bbc253c5 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_utils.py @@ -65,7 +65,7 @@ def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_l fig.colorbar(main_fig, ax=ax) ax.set_title(f"{self._title_str}\n{var_title_str}") plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace("/PS/", "/").replace(".eps", ".png"), bbox_inches='tight') # Do I need this? + # plt.savefig(save_path.replace("/PS/", "/").replace(".eps", ".png"), bbox_inches='tight') # Do I need this? plt.show() @@ -94,7 +94,7 @@ def plot_and_save_variable(self, variable, cmap, var_title_str, save_path, num_l ax.set_xlim(self._xlim) plt.tight_layout() plt.savefig(save_path, bbox_inches='tight') - plt.savefig(save_path.replace("/PS/", "/").replace(".eps", ".png"), bbox_inches='tight') # Do I need this? + # plt.savefig(save_path.replace("/PS/", "/").replace(".eps", ".png"), bbox_inches='tight') # Do I need this? plt.show() diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index bf72ca9b1..a3a1461b5 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -62,13 +62,8 @@ {os.environ} """) wk_dir = os.environ["WK_DIR"] - # uvt_path = f'{os.environ["DATADIR"]}/{os.environ["CASENAME"]}/{frequency}/{os.environ["CASENAME"]}.[uvt]a.{frequency}.nc' - # Old above - # uvt_path = /home/clare/GitHub/mdtf/wkdir/MDTF_GFDL-CM3_historical_r1i1p1_2005_2005.v3/finite_amplitude_wave_diag/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.[uvt]a.day.nc - # Correct below uvt_path = f"{os.environ['DATADIR']}/{frequency}/{os.environ['CASENAME']}.[uvt]a.{frequency}.nc" casename = os.environ["CASENAME"] - # otc_path = "/home/clare/GitHub/mdtf/inputdata/model/GFDL-CM4/1hr/GFDL-CM4.ta.1hr.nc" else: # iMac path wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ @@ -244,14 +239,13 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, intermediate_output_paths: Dict[str, str] = { item[0]: f"{wk_dir}/{model_or_obs}/intermediate_{item[0]}.nc" for item in season_to_months} -for season in season_to_months: +for season, selected_months in season_to_months: print(f"season: {season}") # Construct data preprocessor data_preprocessor = DataPreprocessor( wk_dir=wk_dir, xlon=xlon, ylat=ylat, u_var_name=u_var_name, v_var_name=v_var_name, t_var_name=t_var_name, plev_name=plev_name, lat_name=lat_name, lon_name=lon_name, time_coord_name=time_coord_name) - selected_months = season[1] plot_dir = f"{wk_dir}/{model_or_obs}/PS/" # Do temporal sampling to reduce the data size @@ -259,7 +253,7 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, sampled_dataset = model_dataset.where( model_dataset.time.dt.month.isin(selected_months), drop=True) \ .groupby("time.day").first(skipna=False) - preprocessed_output_path = intermediate_output_paths[season[0]] # TODO set it + preprocessed_output_path = intermediate_output_paths[season] # TODO set it print(f"Start preparing intermediate data in the directory: {preprocessed_output_path}") data_preprocessor.output_preprocess_data( sampled_dataset=sampled_dataset, output_path=preprocessed_output_path) @@ -287,10 +281,16 @@ def plot_and_save_figure(seasonal_average_data, analysis_height_array, plot_dir, # we don't want to repeat ourselves. # set an informative title using info about the analysis set in env vars - title_string = f"{casename} ({firstyr}-{lastyr}) {season[0]}" + title_string = f"{casename} ({firstyr}-{lastyr}) {season}" # Plot the model data: - plot_and_save_figure(seasonal_avg_data, analysis_height_array, plot_dir=plot_dir, title_str=title_string, - season=season[0], xy_mask=data_preprocessor.xy_mask, yz_mask=data_preprocessor.yz_mask) + plot_and_save_figure( + seasonal_average_data=seasonal_avg_data, + analysis_height_array=analysis_height_array, + plot_dir=plot_dir, + title_str=title_string, + season=season, + xy_mask=data_preprocessor.xy_mask, + yz_mask=data_preprocessor.yz_mask) print(f"Finishing outputting figures to {plot_dir}.") # Close xarray datasets From 936da11fa1aaed3d2bc91dc784de81fb40c8c956 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 19 May 2024 21:01:23 -0500 Subject: [PATCH 168/178] clean up branch --- .../submit_issue_ticket_20240318.md | 40 ---- .../unused/daily_avg.py | 43 ---- .../unused/daily_avg_model_notfinished.py | 51 ----- .../unused/download_uvt_era5.py | 53 ----- .../unused/era5_diag_original.py | 104 --------- .../unused/era5_diag_xarray.py | 48 ----- .../unused/example.html | 41 ---- .../unused/example_diag.py | 202 ------------------ .../unused/export_env_var.sh | 11 - .../unused/export_env_var2.sh | 9 - .../unused/extract_ten_timeslice.py | 13 -- .../unused/gridfill_utils.py | 43 ---- .../unused/gridfill_with_model_data.py | 65 ------ .../unused/iMac_model_data_gridfill.py | 74 ------- ..._model_data_interpolate_before_gridfill.py | 127 ----------- .../unused/iMac_model_data_zonal_mean.py | 60 ------ .../unused/otc_examine_model_data.py | 57 ----- .../unused/otc_model_data_1tstep_extract.py | 22 -- .../unused/send_to_sandro.py | 29 --- .../unused/visualize_refstate.py | 12 -- diagnostics/precip_buoy_diag/vert_cython.pyx | 2 +- src/default_tests.jsonc | 4 +- 22 files changed, 3 insertions(+), 1107 deletions(-) delete mode 100644 diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/daily_avg.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/daily_avg_model_notfinished.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/download_uvt_era5.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/era5_diag_original.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/era5_diag_xarray.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/example.html delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/example_diag.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/export_env_var.sh delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/export_env_var2.sh delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/extract_ten_timeslice.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/gridfill_utils.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/otc_examine_model_data.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/otc_model_data_1tstep_extract.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/send_to_sandro.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py diff --git a/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md b/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md deleted file mode 100644 index 225df4fc2..000000000 --- a/diagnostics/finite_amplitude_wave_diag/error_debug/submit_issue_ticket_20240318.md +++ /dev/null @@ -1,40 +0,0 @@ -When I tried testing my code by running `./mdtf`, I encountered error at the data preparation stage and wonder how I can debug this. I was running from my branch: - -https://github.com/csyhuang/MDTF-diagnostics/tree/finite_amplitude_wave_diag - -After I executed: - -```bash -./mdtf -f src/default_finite_amplitude_wave_diag.jsonc -v -``` - -I encountered the following error at the data preparation stage: -``` -Received event while preprocessing <#MKNN:finite_amplitude_wave_diag.ta>: DataPreprocessEvent("Caught exception while cleaning attributes to write data for <#MKNN:finite_amplitude_wave_diag.ta>: ValueError('The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()').") -``` -The full log file can be found here: [GFDL-CM3_historical_r1i1p1.log](GFDL-CM3_historical_r1i1p1.log) - -The config files can be found at: -- https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/src/default_finite_amplitude_wave_diag.jsonc -- https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/diagnostics/finite_amplitude_wave_diag/settings.jsonc - -On my own linux machine, I put the model data at (below are the relative paths): -``` -mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.ua.day.nc -mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.va.day.nc -mdtf/inputdata/model/GFDL-CM3_historical_r1i1p1/day/GFDL-CM3_historical_r1i1p1.ta.day.nc -``` - -which were downloaded from: -``` -ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/ua/ua_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc -ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/va/va_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc -ftp://nomads.gfdl.noaa.gov/1/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/ta/ta_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc -``` - -This is my python environment file: -https://github.com/csyhuang/MDTF-diagnostics/blob/finite_amplitude_wave_diag/src/conda/env_finite_amplitude_wave_diag.yml - -May you advice how I can proceed? Thanks! - -Clare \ No newline at end of file diff --git a/diagnostics/finite_amplitude_wave_diag/unused/daily_avg.py b/diagnostics/finite_amplitude_wave_diag/unused/daily_avg.py deleted file mode 100644 index 20b5c4080..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/daily_avg.py +++ /dev/null @@ -1,43 +0,0 @@ -""" -Compute daily average from sample files -""" -import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots -from hn2016_falwa.xarrayinterface import QGDataset - -data_dir = "/home/clare/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/" -u_path = f"{data_dir}era5_2022_u_component_of_wind.nc" -v_path = f"{data_dir}era5_2022_v_component_of_wind.nc" -t_path = f"{data_dir}era5_2022_temperature.nc" -wk_dir = "/home/clare/GitHub/mdtf/wkdir/" -u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" -v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" -t_daily_mean_path = f"{wk_dir}t_daily_mean.nc" -u_daily_mean_3steps_path = f"{wk_dir}u_daily_mean_3steps.nc" -v_daily_mean_3steps_path = f"{wk_dir}v_daily_mean_3steps.nc" -t_daily_mean_3steps_path = f"{wk_dir}t_daily_mean_3steps.nc" - - -def output_daily_avg(input_path, output_file, varname="ua"): - input_file = xr.open_dataset(input_path) # xarray.Dataset - print(input_file) - print("================") - daily_resampled = input_file[varname].resample(time="1D").mean() - print(daily_resampled) - print("================") - print(f"daily_resampled.shape:\n{daily_resampled.shape}") - output_path = f"{wk_dir}{output_file}" - print(f"Start outputing file: {output_path}") - daily_resampled.to_netcdf(output_path) - print(f"Finished outputing file: {output_path}") - return output_path - - -if __name__ == '__main__': - data = xr.open_mfdataset(f"{data_dir}era5_2022_[tuv].nc") # get daily mean - print("Start interpolating.") - qgds = QGDataset(data) - uvtinterp = qgds.interpolate_fields() - print("Finished interpolating. State reference state computation") - refstates = qgds.compute_reference_states() - print("Finished full procedures") diff --git a/diagnostics/finite_amplitude_wave_diag/unused/daily_avg_model_notfinished.py b/diagnostics/finite_amplitude_wave_diag/unused/daily_avg_model_notfinished.py deleted file mode 100644 index d49817098..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/daily_avg_model_notfinished.py +++ /dev/null @@ -1,51 +0,0 @@ -""" -Compute daily average from sample files. This is working on OTC -""" -import os -import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots -from hn2016_falwa.xarrayinterface import QGDataset - -u_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ua.nc" -v_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.va.nc" -t_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/atmos_inst.1984010100-1984123123.ta.nc" -wk_dir = f"{os.environ['HOME']}/GitHub/mdtf/wkdir/" -u_daily_mean_path = f"{wk_dir}u_daily_mean.nc" -v_daily_mean_path = f"{wk_dir}v_daily_mean.nc" -t_daily_mean_path = f"{wk_dir}t_daily_mean.nc" -u_daily_mean_3steps_path = f"{wk_dir}u_daily_mean_3steps.nc" -v_daily_mean_3steps_path = f"{wk_dir}v_daily_mean_3steps.nc" -t_daily_mean_3steps_path = f"{wk_dir}t_daily_mean_3steps.nc" - - -def output_daily_avg(input_path, output_file, varname="ua"): - input_file = xr.open_dataset(input_path) # xarray.Dataset - print(input_file) - print("================") - daily_resampled = input_file[varname].resample(time="1D").mean() - print(daily_resampled) - print("================") - print(f"daily_resampled.shape:\n{daily_resampled.shape}") - output_path = f"{wk_dir}{output_file}" - print(f"Start outputing file: {output_path}") - daily_resampled.to_netcdf(output_path) - print(f"Finished outputing file: {output_path}") - return output_path - - -if __name__ == '__main__': - var_names = { - 'plev': 'level', - 'ylat': 'lat', - 'xlon': 'lon', - 'u': 'ua', - 'v': 'va', - 't': 'ta'} - # u_output_path = output_daily_avg(u_path, "u_daily_mean.nc", varname="ua") - # v_output_path = output_daily_avg(v_path, "v_daily_mean.nc", varname="va") - # t_output_path = output_daily_avg(t_path, "t_daily_mean.nc", varname="ta") - data_u = xr.open_dataset(u_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(u_daily_mean_3steps_path) - data_v = xr.open_dataset(v_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(v_daily_mean_3steps_path) - data_t = xr.open_dataset(t_daily_mean_path).isel(time=[0, 1, 2]).to_netcdf(t_daily_mean_3steps_path) - - print("Finished full procedures") diff --git a/diagnostics/finite_amplitude_wave_diag/unused/download_uvt_era5.py b/diagnostics/finite_amplitude_wave_diag/unused/download_uvt_era5.py deleted file mode 100644 index dcbb5caea..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/download_uvt_era5.py +++ /dev/null @@ -1,53 +0,0 @@ -import cdsapi - -c = cdsapi.Client() - -tasks = [('u', 'u_component_of_wind'), ('v', 'v_component_of_wind'), ('t', 'temperature')] -year = 2022 - -for short, long in tasks: - c.retrieve( - 'reanalysis-era5-pressure-levels', - { - 'product_type': 'reanalysis', - 'format': 'netcdf', - 'pressure_level': [ - '1', '2', '3', - '5', '7', '10', - '20', '30', '50', - '70', '100', '125', - '150', '175', '200', - '225', '250', '300', - '350', '400', '450', - '500', '550', '600', - '650', '700', '750', - '775', '800', '825', - '850', '875', '900', - '925', '950', '975', - '1000', - ], - 'variable': 'temperature', - 'year': f'{year}', - 'month': [ - '01', '02', '03', - '04', '05', '06', - '07', '08', '09', - '10', '11', '12', - ], - 'day': [ - '01', '02', '03', - '04', '05', '06', - '07', '08', '09', - '10', '11', '12', - '13', '14', '15', - '16', '17', '18', - '19', '20', '21', - '22', '23', '24', - '25', '26', '27', - '28', '29', '30', - '31', - ], - 'time': ['00:00', '06:00', '12:00', '18:00'], - 'anon_user_timestamp': '2023-07-31 18:00:58', - }, - f'era5_{year}_{short}.nc') diff --git a/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_original.py b/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_original.py deleted file mode 100644 index ce0beeb7c..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_original.py +++ /dev/null @@ -1,104 +0,0 @@ -# TODO: replace all with env variables -import os -import sys - -sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") -import numpy as np -import xarray as xr -import datetime -from hn2016_falwa.xarrayinterface import QGDataset - -def print_process_time(process, start_time): - print(f"{process}. Time: {(datetime.datetime.now() - start_time).total_seconds()}") - -start_time = datetime.datetime.now() -# 0) Get environment variables -wkdir = os.environ['wkdir'] -input_u_path = os.environ["u_file"] -input_v_path = os.environ["v_file"] -input_t_path = os.environ["t_file"] -u_var_name = os.environ["u_var_name"] -v_var_name = os.environ["v_var_name"] -t_var_name = os.environ["t_var_name"] -time_coord_name = os.environ["time_coord"] -xlon_coord_name = os.environ["xlon_coord"] -ylat_coord_name = os.environ["ylat_coord"] -plev_coord_name = os.environ["plev_coord"] - -# 1) Loading model data files: -u_file = xr.open_dataset(input_u_path) -v_file = xr.open_dataset(input_v_path) -t_file = xr.open_dataset(input_t_path) - -# Select DJF and do daily mean -# selected_months = [1, 2, 12] -print("Start computing daily mean.") -tstep = 100 -selected_months = [1] - -# 2) Doing computations: -print("Set coordinates") -ntimes = u_file.time.size -time_array = u_file.time -xlon = u_file.longitude.values -# latitude has to be in ascending order -print(u_file.latitude) -ylat = u_file.latitude.values -if np.diff(ylat)[0] < 0: - print('Flip ylat.') - ylat = ylat[::-1] -# pressure level has to be in descending order (ascending height) -print(u_file.level) -plev = u_file.level.values -if np.diff(plev)[0] > 0: - print('Flip plev.') - plev = plev[::-1] -nlon = xlon.size -nlat = ylat.size -nlev = plev.size - -new_xlon = np.arange(0, 360) -new_ylat = np.arange(-90, 91) - -print(f"Compute daily average and interp onto coarser grid. Time: {datetime.datetime.now()}") -# selected_months = [1, 2, 12] # DJF -selected_months = [1] # TODO testing -time_selected = u_file.time.dt.month.isin(selected_months) -data_u = u_file.sel(time=time_selected).resample(time="1D").first()\ - .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_v = v_file.sel(time=time_selected).resample(time="1D").first()\ - .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") -data_t = t_file.sel(time=time_selected).resample(time="1D").first()\ - .interp(latitude=new_ylat, longitude=new_xlon, method="nearest") - -print_process_time("Finished computing daily average and interp onto coarser grid", start_time) -print(data_u) -print(data_u.coords[ylat_coord_name]) - -# 3) Saving output data: -out_path = f"{wkdir}/refstates_2022Jan.nc" - -print_process_time("Start QGDataset calculation", start_time) -qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": u_var_name, "v": v_var_name, "t": t_var_name}) -uvtinterp = qgds.interpolate_fields() -refstates = qgds.compute_reference_states() -print_process_time("Examine yz_var", start_time) -print(refstates) -lwadiags = qgds.compute_lwa_and_barotropic_fluxes() -# TODO: interpolate back onto original grid? -print_process_time("Compute seasonal average", start_time) -seasonal_average = xr.merge([uvtinterp, refstates, lwadiags]).mean(dim=time_coord_name) -print(seasonal_average) -print_process_time(f"Start outputing to the file: {out_path}", start_time) -seasonal_average.to_netcdf(out_path) -print_process_time("Finished", start_time) - - -# 4) Saving output plots: - -# 5) Loading obs data files & plotting obs figures - -# 6) Cleaning up: -u_file.close() -v_file.close() -t_file.close() diff --git a/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_xarray.py b/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_xarray.py deleted file mode 100644 index a40df9da1..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/era5_diag_xarray.py +++ /dev/null @@ -1,48 +0,0 @@ -import os -import sys -import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots -from hn2016_falwa.xarrayinterface import QGDataset -sys.path.insert(0, "/home/clare/Dropbox/GitHub/hn2016_falwa") - -# 0) Get environment variables -wkdir = os.environ['wkdir'] -input_u_path = os.environ["u_file"] -input_v_path = os.environ["v_file"] -input_t_path = os.environ["t_file"] -u_var_name = os.environ["u_var_name"] -v_var_name = os.environ["v_var_name"] -t_var_name = os.environ["t_var_name"] -time_coord_name = os.environ["time_coord"] -xlon_coord_name = os.environ["xlon_coord"] -ylat_coord_name = os.environ["ylat_coord"] -plev_coord_name = os.environ["plev_coord"] - -# 1) Loading model data files: -data_u = xr.open_dataset(input_u_path) -data_v = xr.open_dataset(input_v_path) -data_t = xr.open_dataset(input_t_path) - -# Select DJF and do daily mean -# selected_months = [1, 2, 12] -print("Start computing daily mean.") -selected_months = [1] -# data_u = data_u.sel(time=data_u.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -# data_v = data_v.sel(time=data_v.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -# data_t = data_t.sel(time=data_t.time.dt.month.isin(selected_months)).resample(time="1D").mean(dim="time") -data_u = data_u.isel(time=0) -data_v = data_v.isel(time=0) -data_t = data_t.isel(time=0) - -# 2) Doing computations: -print("Start QGDataset calculation.") -qgds = QGDataset(da_u=data_u, da_v=data_v, da_t=data_t, var_names={"u": "u", "v": "v", "t": "t"}) -uvtinterp = qgds.interpolate_fields() -refstates = qgds.compute_reference_states() -print(refstates) -print("Finished") - -# 3) Saving output data: -out_path = f"{wkdir}/refstates.nc" - - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/example.html b/diagnostics/finite_amplitude_wave_diag/unused/example.html deleted file mode 100644 index 9822edece..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/example.html +++ /dev/null @@ -1,41 +0,0 @@ - -MDTF example diagnostic - -

Example diagnostic: time-averaged near-surface temperature

-

-If this were a real diagnostic, this would be where you'd give a brief summary -of what your diagnostic computes and how to interpret the output plots it -generated, which will be linked below. You can include hyperlinks to journal -articles, etc. for more detailed documentation on your methods or sources of -observational data. -

-

-The names of any environment variables set for the diagnostic (enclosed in -curly braces) will be replaced by the same values they had when the diagnostic -was run. For example, this diagnostic's favorite color is "{{EXAMPLE_FAV_COLOR}}." -

- - - -
Time averages, {{FIRSTYR}}-{{LASTYR}} -{{CASENAME}} -OBS -
Near-surface temperature (K) - -plot -plot -
diff --git a/diagnostics/finite_amplitude_wave_diag/unused/example_diag.py b/diagnostics/finite_amplitude_wave_diag/unused/example_diag.py deleted file mode 100644 index 9d1c38a34..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/example_diag.py +++ /dev/null @@ -1,202 +0,0 @@ -# MDTF Example Diagnostic POD -# ================================================================================ -# This script does a simple diagnostic calculation to illustrate how to adapt code -# for use in the MDTF diagnostic framework. The main change is to set input/output -# paths, variable names etc. from shell environment variables the framework -# provides, instead of hard-coding them. -# -# Below, this script consists of 2 parts: (1) a template of comprehensive header POD -# developers must include in their POD's main driver script, (2) actual code, and -# (3) extensive in-line comments. -# ================================================================================ -# -# This file is part of the Example Diagnostic POD of the MDTF code package (see mdtf/MDTF-diagnostics/LICENSE.txt) -# -# Example Diagnostic POD -# -# Last update: 8/1/2020 -# -# This is a example POD that you can use as a template for your diagnostics. -# If this were a real POD, you'd place a one-paragraph synopsis of your -# diagnostic here (like an abstract). -# -# Version & Contact info -# -# Here you should describe who contributed to the diagnostic, and who should be -# contacted for further information: -# -# - Version/revision information: version 1 (5/06/2020) -# - PI (name, affiliation, email) -# - Developer/point of contact (name, affiliation, email) -# - Other contributors -# -# Open source copyright agreement -# -# The MDTF framework is distributed under the LGPLv3 license (see LICENSE.txt). -# Unless you've distirbuted your script elsewhere, you don't need to change this. -# -# Functionality -# -# In this section you should summarize the stages of the calculations your -# diagnostic performs, and how they translate to the individual source code files -# provided in your submission. This will, e.g., let maintainers fixing a bug or -# people with questions about how your code works know where to look. -# -# Required programming language and libraries -# -# In this section you should summarize the programming languages and third-party -# libraries used by your diagnostic. You also provide this information in the -# ``settings.jsonc`` file, but here you can give helpful comments to human -# maintainers (eg, "We need at least version 1.5 of this library because we call -# this function.") -# -# Required model output variables -# -# In this section you should describe each variable in the input data your -# diagnostic uses. You also need to provide this in the ``settings.jsonc`` file, -# but here you should go into detail on the assumptions your diagnostic makes -# about the structure of the data. -# -# References -# -# Here you should cite the journal articles providing the scientific basis for -# your diagnostic. -# -# Maloney, E. D, and Co-authors, 2019: Process-oriented evaluation of climate -# and wether forcasting models. BAMS, 100(9), 1665-1686, -# doi:10.1175/BAMS-D-18-0042.1. -# -import os -import matplotlib -matplotlib.use('Agg') # non-X windows backend -# Commands to load third-party libraries. Any code you don't include that's -# not part of your language's standard library should be listed in the -# settings.jsonc file. -import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots - - -### 1) Loading model data files: ############################################### -# -# The framework copies model data to a regular directory structure of the form -# //...nc -# Here and frequency are requested in the "varlist" part of -# settings.json. - -# The following command sets input_path to the value of the shell environment -# variable called TAS_FILE. This variable is set by the framework to let the -# script know where the locally downloaded copy of the data for this variable -# (which we called "tas") is. -input_path = os.environ["TAS_FILE"] - -# command to load the netcdf file -model_dataset = xr.open_dataset(input_path) - - -### 2) Doing computations: ##################################################### -# -# Diagnostics in the framework are intended to work with native output from a -# variety of models. For this reason, variable names should not be hard-coded -# but instead set from environment variables. -# -tas_var_name = os.environ["tas_var"] -# For safety, don't even assume that the time dimension of the input file is -# named "time": -time_coord_name = os.environ["time_coord"] - -# The only computation done here: compute the time average of input data -tas_data = model_dataset[tas_var_name] -model_mean_tas = tas_data.mean(dim = time_coord_name) -# Note that we supplied the observational data as time averages, to save space -# and avoid having to repeat that calculation each time the diagnostic is run. - -# Logging relevant debugging or progress information is a good idea. Anything -# your diagnostic prints to STDOUT will be saved to its own log file. -print("Computed time average of {tas_var} for {CASENAME}.".format(**os.environ)) - - -### 3) Saving output data: ##################################################### -# -# Diagnostics should write output data to disk to a) make relevant results -# available to the user for further use or b) to pass large amounts of data -# between stages of a calculation run as different sub-scripts. Data can be in -# any format (as long as it's documented) and should be written to the -# directory /model/netCDF (created by the framework). -# -out_path = "{WK_DIR}/model/netCDF/temp_means.nc".format(**os.environ) - -# write out time averages as a netcdf file -model_mean_tas.to_netcdf(out_path) - - -### 4) Saving output plots: #################################################### -# -# Plots should be saved in EPS or PS format at //PS -# (created by the framework). Plots can be given any filename, but should have -# the extension ".eps" or ".ps". To make the webpage output, the framework will -# convert these to bitmaps with the same name but extension ".png". - -# Define a python function to make the plot, since we'll be doing it twice and -# we don't want to repeat ourselves. -def plot_and_save_figure(model_or_obs, title_string, dataset): - # initialize the plot - plt.figure(figsize=(12,6)) - plot_axes = plt.subplot(1,1,1) - # actually plot the data (makes a lat-lon colormap) - dataset.plot(ax = plot_axes) - plot_axes.set_title(title_string) - # save the plot in the right location - plot_path = "{WK_DIR}/{model_or_obs}/PS/example_{model_or_obs}_plot.eps".format( - model_or_obs=model_or_obs, **os.environ - ) - plt.savefig(plot_path, bbox_inches='tight') -# end of function - -# set an informative title using info about the analysis set in env vars -title_string = "{CASENAME}: mean {tas_var} ({FIRSTYR}-{LASTYR})".format(**os.environ) -# Plot the model data: -plot_and_save_figure("model", title_string, model_mean_tas) - - -### 5) Loading obs data files & plotting obs figures: ########################## -# -# If your diagnostic uses any model-independent supporting data (eg. reference -# or observational data) larger than a few kB of text, it should be provided via -# the observational data distribution instead of being included with the source -# code. This data can be in any format: the framework doesn't process it. The -# environment variable OBS_DATA will be set to a path where the framework has -# copied a directory containing your supplied data. -# -# The following command replaces the substring "{OBS_DATA}" with the value of -# the OBS_DATA environment variable. -input_path = "{OBS_DATA}/example_tas_means.nc".format(**os.environ) - -# command to load the netcdf file -obs_dataset = xr.open_dataset(input_path) -obs_mean_tas = obs_dataset['mean_tas'] - -# Plot the observational data: -title_string = "Observations: mean {tas_var}".format(**os.environ) -plot_and_save_figure("obs", title_string, obs_mean_tas) - - -### 6) Cleaning up: ############################################################ -# -# In addition to your language's normal housekeeping, don't forget to delete any -# temporary/scratch files you created in step 4). -# -model_dataset.close() -obs_dataset.close() - - -### 7) Error/Exception-Handling Example ######################################## -nonexistent_file_path = "{DATADIR}/mon/nonexistent_file.nc".format(**os.environ) -try: - nonexistent_dataset = xr.open_dataset(nonexistent_file_path) -except IOError as error: - print(error) - print("This message is printed by the example POD because exception-handling is working!") - - -### 8) Confirm POD executed sucessfully ######################################## -print("Last log message by Example POD: finished successfully!") diff --git a/diagnostics/finite_amplitude_wave_diag/unused/export_env_var.sh b/diagnostics/finite_amplitude_wave_diag/unused/export_env_var.sh deleted file mode 100644 index d9b9a858c..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/export_env_var.sh +++ /dev/null @@ -1,11 +0,0 @@ -export u_file=$HOME/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/era5_2022_u.nc -export v_file=$HOME/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/era5_2022_v.nc -export t_file=$HOME/GitHub/mdtf/inputdata/obs_data/finite_amplitude_wave_diag/era5_2022_t.nc -export u_var_name=u -export v_var_name=v -export t_var_name=t -export time_coord=time -export xlon_coord=longitude -export ylat_coord=latitude -export plev_coord=level -export wkdir=$HOME/GitHub/mdtf/wkdir \ No newline at end of file diff --git a/diagnostics/finite_amplitude_wave_diag/unused/export_env_var2.sh b/diagnostics/finite_amplitude_wave_diag/unused/export_env_var2.sh deleted file mode 100644 index 5343a5094..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/export_env_var2.sh +++ /dev/null @@ -1,9 +0,0 @@ -export UVT_FILE=$HOME/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc -export U_VAR=ua -export V_VAR=va -export T_VAR=ta -export TIME_COORD=time -export LON_COORD=lon -export LAT_COORD=lat -export LEV_COORD=plev -export WK_DIR=$HOME/GitHub/mdtf/wkdir diff --git a/diagnostics/finite_amplitude_wave_diag/unused/extract_ten_timeslice.py b/diagnostics/finite_amplitude_wave_diag/unused/extract_ten_timeslice.py deleted file mode 100644 index 87d56fb75..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/extract_ten_timeslice.py +++ /dev/null @@ -1,13 +0,0 @@ -""" -Extract one time slice from model data from OTC -""" -import os -import numpy as np -import xarray as xr - -data_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/CMIP5/output1/NOAA-GFDL/GFDL-CM3/historical/day/" + \ - "atmos/day/r1i1p1/v20120227/*a/[uvt]a_day_GFDL-CM3_historical_r1i1p1_20050101-20051231.nc" -data_file = xr.open_mfdataset(data_path).isel(time=np.arange(10)) -print(data_file) -data_file.to_netcdf("GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc") -print("Finish") diff --git a/diagnostics/finite_amplitude_wave_diag/unused/gridfill_utils.py b/diagnostics/finite_amplitude_wave_diag/unused/gridfill_utils.py deleted file mode 100644 index fc524a2a8..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/gridfill_utils.py +++ /dev/null @@ -1,43 +0,0 @@ -import numpy as np - - -def fill_nan_with_zonal_mean_each_level(lat_lon_field): - """ - The solution is from the StackOverflow thread: - https://stackoverflow.com/questions/18689235/numpy-array-replace-nan-values-with-average-of-columns - Args: - lat_lon_field(np.ndarray): field of dimension (lat, lon) - Returns: - A 2D array of the same shape as lat_lon_field with NaN filled with zonal mean value - """ - - copy_array = lat_lon_field.copy() - zonal_mean = np.nan_to_num(np.nanmean(copy_array, axis=-1), nan=10) - inds = np.where(np.isnan(copy_array)) - copy_array[inds] = np.take(zonal_mean, inds[0]) - return copy_array - - -def use_northern_hem_data_for_southern_hem(lat_lon_field): - """ - The solution is from the StackOverflow thread: - https://stackoverflow.com/questions/18689235/numpy-array-replace-nan-values-with-average-of-columns - Args: - lat_lon_field(np.ndarray): field of dimension (lat, lon) - Returns: - A 2D array of the same shape as lat_lon_field with NaN filled with zonal mean value - """ - - copy_array = lat_lon_field.copy() - zonal_mean = np.nan_to_num(np.nanmean(copy_array, axis=-1), nan=10) - inds = np.where(np.isnan(copy_array)) - copy_array[inds] = np.take(zonal_mean, inds[0]) - return copy_array - -if __name__ == '__main__': - narray = np.array([[1, 0, 1, np.nan], [np.nan, 3, 4, 5],]) - results = fill_nan_with_zonal_mean_each_level(narray) - print(results.shape) - print(results) - print(np.nanmean(narray, axis=-1)) - print(results.mean(axis=-1)) diff --git a/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py b/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py deleted file mode 100644 index ac4b3fcc1..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/gridfill_with_model_data.py +++ /dev/null @@ -1,65 +0,0 @@ -""" -Attempt to work with daily mean data from daily_avg_model_notfinished.py -This runs on iMac -""" -import os -import xarray as xr -import numpy as np -from hn2016_falwa.xarrayinterface import QGDataset - -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level - -# These are local path to Clare's iMac -storage_path = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" -u_file = f"{storage_path}u_daily_mean_3steps.nc" -v_file = f"{storage_path}v_daily_mean_3steps.nc" -t_file = f"{storage_path}t_daily_mean_3steps.nc" - -interp_u_file = f"{storage_path}u_daily_mean_interp_3steps.nc" -interp_v_file = f"{storage_path}v_daily_mean_interp_3steps.nc" -interp_t_file = f"{storage_path}t_daily_mean_interp_3steps.nc" -output_interp = True - -coord_file = xr.open_dataset(u_file) -xlon = coord_file.coords['lon'] -ylat = coord_file.coords['lat'] -plev = coord_file.coords['level'] - -if output_interp: - args_tuple = [(u_file, 'ua', interp_u_file), (v_file, 'va', interp_v_file), (t_file, 'ta', interp_t_file)] - for original_file, var_name, interp_file in args_tuple: - df = xr.open_dataset(original_file) - field_of_interest = df[var_name] - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[field_of_interest], - input_core_dims=(('lat', 'lon'),), - output_core_dims=(('lat', 'lon'),), - vectorize=True) - field_at_all_level = field_at_all_level.interp( - lat=np.arange(-90, 91), - kwargs={"fill_value": "extrapolate"}) - field_at_all_level.to_netcdf(interp_file) - print(f"Finished outputing {interp_file}") - -data = xr.open_mfdataset(f"{storage_path}[uvt]_daily_mean_interp_3steps.nc") -qgds = QGDataset(data, var_names={'u': 'ua', 'v': 'va', 't': 'ta'}, qgfield_kwargs={'northern_hemisphere_results_only': False}) - -uvtinterp = qgds.interpolate_fields() -refstates = qgds.compute_reference_states() -lwadiags = qgds.compute_lwa_and_barotropic_fluxes() - -# Problem encountered (2023/9/5) -# QGPV at k=0 are all 0 -# Check temperature in original file: -# coord_file.variables['ta'].isel(time=0).max(axis=-1).max(axis=-1) -# array([274.72104, 277.33417, 280.6038 , 277.43634, 276.58832, 275.09503, -# 262.54962, 272.56357, 281.4019 , 284.82413, 289.1702 , 295.15497, -# 300.94907, 304.54556, 306.85352, 308.36664, 309.40552, 310.41824, -# 310.63425, 310.75208, 310.814 , 310.87076, 310.94513], dtype=float32) -# coord_file.coords['level'].values -# array([1000., 925., 850., 775., 700., 600., 500., 400., 300., 250., -# 200., 150., 100., 70., 50., 30., 20., 10., 7., 5., -# 3., 2., 1.], dtype=float32) -# Something went wrong... - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py deleted file mode 100644 index 878bac050..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_gridfill.py +++ /dev/null @@ -1,74 +0,0 @@ -""" -Run this on OTC to compute reference state for 1 timestep -""" -import os -import numpy as np -import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level -from hn2016_falwa.xarrayinterface import QGDataset -import matplotlib.pyplot as plt -from hn2016_falwa.oopinterface import QGFieldNHN22 - - -wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" -data_dir = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" -u_path = f"{data_dir}atmos_inst_1tstep_u.nc" -v_path = f"{data_dir}atmos_inst_1tstep_v.nc" -t_path = f"{data_dir}atmos_inst_1tstep_t.nc" -gridfill_u_path = u_path.replace("u.nc", "u_gridfill.nc") -gridfill_v_path = v_path.replace("v.nc", "v_gridfill.nc") -gridfill_t_path = t_path.replace("t.nc", "t_gridfill.nc") - -coord_file = xr.open_dataset(u_path) -xlon = coord_file.coords['lon'] -ylat = coord_file.coords['lat'] -plev = coord_file.coords['level'] -coord_file.close() - -all_file = xr.open_mfdataset("atmos_inst_t1000_[uvt].nc") -gridfill_file = "atmos_inst_t1000_gridfill_{var}.nc" - -# *** First do poisson solver *** -run_poisson = True -if run_poisson: - args_tuple = ['ua', 'va', 'ta'] - field_list = [] - for var_name in args_tuple: - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[all_file[var_name]], - input_core_dims=(('lat', 'lon'),), - output_core_dims=(('lat', 'lon'),), - vectorize=True, dask="allowed") - gridfill_file_path = gridfill_file.format(var=var_name) - field_at_all_level.to_netcdf(gridfill_file_path) - print(f"Finished outputing {gridfill_file_path}") - -# *** Interpolate onto regular grid *** -all_files = xr.open_mfdataset("atmos_inst_t1000_gridfill_[uvt]a.nc") -all_files = all_files.interp( - coords={ - "lat": np.arange(-90, 91, 1.5), - "lon": np.arange(0, 361, 1.5)}, - method="nearest", - kwargs={"fill_value": "extrapolate"}) -qgds = QGDataset(all_files, var_names={"u": "ua", "v": "va", "t": "ta"}, qgfield=QGFieldNHN22) -uvtinterp = qgds.interpolate_fields() -plt.contourf( - uvtinterp['interpolated_u'].ylat, - uvtinterp['interpolated_u'].height, - uvtinterp['interpolated_u'].mean(axis=-1), - np.arange(-50, 51, 5)) -plt.colorbar() -plt.show() -print("Finished interpolate_fields") -refstates = qgds.compute_reference_states() # Error arises when solving reference state -plt.contourf(refstates['uref'].ylat, - refstates['uref'].height, - refstates['uref'], - np.arange(-50, 51, 5)) -plt.colorbar() -plt.show() -print("Finished compute_reference_states") - - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py deleted file mode 100644 index 9ddd9ee05..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_interpolate_before_gridfill.py +++ /dev/null @@ -1,127 +0,0 @@ -""" -Run this on OTC to compute reference state for 1 timestep -Seems it is working on a coarse grid... -Continue from here next time -""" -import os -import numpy as np -import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level -from hn2016_falwa.xarrayinterface import QGDataset -import matplotlib.pyplot as plt -from hn2016_falwa.oopinterface import QGFieldNHN22, QGFieldNH18 -from hn2016_falwa.xarrayinterface import hemisphere_to_globe - - -wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" -data_dir = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" -u_path = f"{data_dir}atmos_inst_1tstep_u.nc" -v_path = f"{data_dir}atmos_inst_1tstep_v.nc" -t_path = f"{data_dir}atmos_inst_1tstep_t.nc" -gridfill_u_path = u_path.replace("u.nc", "u_gridfill.nc") -gridfill_v_path = v_path.replace("v.nc", "v_gridfill.nc") -gridfill_t_path = t_path.replace("t.nc", "t_gridfill.nc") - -coord_file = xr.open_dataset(u_path) -xlon = coord_file.coords['lon'] -ylat = coord_file.coords['lat'] -plev = coord_file.coords['level'] -coord_file.close() - -run_gridfill = True - -all_files = xr.open_dataset("../GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice.nc") -all_files = all_files\ - .assign_coords({'plev': all_files.plev // 100})\ - .interp( - coords={ - "lat": np.arange(-90, 91, 1.5), - "lon": np.arange(0, 361, 1.5)}, - method="linear") - # kwargs={"fill_value": "extrapolate"}) # installed package bottleneck -gridfill_file = "GFDL-CM3_historical_r1i1p1_20050101-20051231_1tslice_gridfill_{var}.nc" -gridfill_file_all = gridfill_file.format(var="[uvt]a") -# *** First do poisson solver *** -if run_gridfill: - args_tuple = ['ua', 'va', 'ta'] - field_list = [] - for var_name in args_tuple: - field_at_all_level = xr.apply_ufunc( - gridfill_each_level, - *[all_files[var_name].load()], - input_core_dims=(('lat', 'lon'),), - output_core_dims=(('lat', 'lon'),), - vectorize=True, dask="forbidden") - gridfill_file_path = gridfill_file.format(var=var_name) - field_at_all_level.to_netcdf(gridfill_file_path) - print(f"Finished outputing {gridfill_file_path}") - all_files = xr.open_mfdataset(gridfill_file_all) -else: - all_files = all_files.fillna(10) - -# *** Create symmetric data *** -# all_files = hemisphere_to_globe(all_files) - -# *** Interpolate onto regular grid *** -qgds = QGDataset( - all_files, - var_names={"u": "ua", "v": "va", "t": "ta"}, - qgfield=QGFieldNH18, - qgfield_kwargs={"kmax": 33}) -uvtinterp = qgds.interpolate_fields() -plt.contourf( - uvtinterp['interpolated_u'].ylat, - uvtinterp['interpolated_u'].height, - uvtinterp['interpolated_u'].mean(axis=-1), - 40, - cmap='rainbow') -plt.title("Zonal mean zonal wind") -plt.colorbar() -plt.show() -print("Finished interpolate_fields") -refstates = qgds.compute_reference_states() # Error arises when solving reference state -plt.contourf(refstates['uref'].ylat[2:-2], - refstates['uref'].height, - refstates['uref'][:, 2:-2], - 40, - cmap='rainbow') -plt.title("Uref") -plt.colorbar() -plt.show() -print("Finished compute_reference_states") -refstates = qgds.compute_lwa_and_barotropic_fluxes() # Error arises when solving reference state -plt.contourf(refstates['lwa'].ylat, - refstates['lwa'].height, - refstates['lwa'].mean(axis=-1), 40, cmap='rainbow') -plt.title("Zonal mean FAWA") -plt.colorbar() -plt.show() -print("Finished compute_lwa_and_barotropic_fluxes") - -plt.contourf(refstates['lwa_baro'].xlon, - refstates['lwa_baro'].ylat, - refstates['lwa_baro'], - 40, cmap='rainbow') -plt.title("Barotropic LWA") -plt.colorbar() -plt.show() - -height_level_index = 10 - -plt.contourf(uvtinterp['qgpv'].xlon, - uvtinterp['qgpv'].ylat[3:-3], - uvtinterp['qgpv'].isel(height=height_level_index)[3:-3, :], - 40, cmap='rainbow') -plt.title(f"QGPV at k={height_level_index}") -plt.colorbar() -plt.show() - -plt.contourf(refstates['lwa'].xlon, - refstates['lwa'].ylat, - refstates['lwa'].isel(height=height_level_index), - 40, cmap='rainbow') -plt.title(f"LWA at k={height_level_index}") -plt.colorbar() -plt.show() - - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py deleted file mode 100644 index 6c946848e..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/iMac_model_data_zonal_mean.py +++ /dev/null @@ -1,60 +0,0 @@ -""" -Run this on OTC to compute reference state for 1 timestep -""" -import os -import numpy as np -import xarray as xr # python library we use to read netcdf files -from diagnostics.finite_amplitude_wave_diag.finite_amplitude_wave_diag_utils import gridfill_each_level -from hn2016_falwa.xarrayinterface import QGDataset -import matplotlib.pyplot as plt -from hn2016_falwa.oopinterface import QGFieldNHN22 - - -wk_dir = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/wkdir/" -data_dir = f"{os.environ['HOME']}/Dropbox/GitHub/hn2016_falwa/github_data_storage/" -u_path = f"{data_dir}atmos_inst_1tstep_u.nc" -v_path = f"{data_dir}atmos_inst_1tstep_v.nc" -t_path = f"{data_dir}atmos_inst_1tstep_t.nc" -gridfill_u_path = u_path.replace("u.nc", "u_gridfill.nc") -gridfill_v_path = v_path.replace("v.nc", "v_gridfill.nc") -gridfill_t_path = t_path.replace("t.nc", "t_gridfill.nc") - -coord_file = xr.open_dataset(u_path) -xlon = coord_file.coords['lon'] -ylat = coord_file.coords['lat'] -plev = coord_file.coords['level'] -coord_file.close() - -u_file = xr.open_dataset(u_path) -v_file = xr.open_dataset(v_path) -t_file = xr.open_dataset(t_path) - -# *** Examine data first *** -to_examine_data = False -if to_examine_data: - zonal_mean_u = np.ma.masked_invalid(u_file.ua.values).mean(axis=-1) - zonal_mean_v = np.ma.masked_invalid(v_file.va.values).mean(axis=-1) - zonal_mean_t = np.ma.masked_invalid(t_file.ta.values).mean(axis=-1) - - fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) - cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') - ax1.set_title("Zonal mean zonal wind u") - ax1.set_ylabel("Pressure [hPa]") - ax1.set_xlabel("Longitude [deg]") - fig.colorbar(cs1, ax=ax1, shrink=0.9) - ax1.invert_yaxis() - cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') - ax2.set_title("Zonal mean meridional wind v") - ax2.set_xlabel("Longitude [deg]") - fig.colorbar(cs2, ax=ax2, shrink=0.9) - ax2.invert_yaxis() - cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') - ax3.set_title("Zonal mean air temperature t") - ax3.set_xlabel("Longitude [deg]") - fig.colorbar(cs3, ax=ax3, shrink=0.9) - ax3.invert_yaxis() - plt.tight_layout() - plt.show() - print("Stop here") - - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/otc_examine_model_data.py b/diagnostics/finite_amplitude_wave_diag/unused/otc_examine_model_data.py deleted file mode 100644 index f4ffacf2e..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/otc_examine_model_data.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Examine the zonal mean of u, v, T before gridfill -""" -import os -import numpy as np -import xarray as xr -import matplotlib -matplotlib.use('Agg') -import matplotlib.pyplot as plt - - -wk_dir = f"{os.environ['HOME']}/GitHub/mdtf/wkdir/" -data_dir = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/" -u_path = f"{data_dir}atmos_inst.1984010100-1984123123.ua.nc" -v_path = f"{data_dir}atmos_inst.1984010100-1984123123.va.nc" -t_path = f"{data_dir}atmos_inst.1984010100-1984123123.ta.nc" - -coord_file = xr.open_dataset(u_path) -xlon = coord_file.coords['lon'] -ylat = coord_file.coords['lat'] -plev = coord_file.coords['level'] -coord_file.close() - -u_file = xr.open_dataset(u_path) -v_file = xr.open_dataset(v_path) -t_file = xr.open_dataset(t_path) - -# *** Examine data first *** -for tstep in np.arange(0, 8761, 500): - zonal_mean_u = np.ma.masked_invalid(u_file.isel(time=tstep).ua.values).mean(axis=-1) - zonal_mean_v = np.ma.masked_invalid(v_file.isel(time=tstep).va.values).mean(axis=-1) - zonal_mean_t = np.ma.masked_invalid(t_file.isel(time=tstep).ta.values).mean(axis=-1) - time_str = str(u_file.isel(time=tstep)['time'].values).split()[0] - - fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 3)) - plt.suptitle(f"{time_str}") - cs1 = ax1.contourf(ylat, plev, zonal_mean_u, 30, cmap='rainbow') - ax1.set_title("Zonal mean zonal wind u") - ax1.set_ylabel("Pressure [hPa]") - ax1.set_xlabel("Longitude [deg]") - fig.colorbar(cs1, ax=ax1, shrink=0.9) - ax1.invert_yaxis() - cs2 = ax2.contourf(ylat, plev, zonal_mean_v, 30, cmap='rainbow') - ax2.set_title("Zonal mean meridional wind v") - ax2.set_xlabel("Longitude [deg]") - fig.colorbar(cs2, ax=ax2, shrink=0.9) - ax2.invert_yaxis() - cs3 = ax3.contourf(ylat, plev, zonal_mean_t, 30, cmap='rainbow') - ax3.set_title("Zonal mean air temperature t") - ax3.set_xlabel("Longitude [deg]") - fig.colorbar(cs3, ax=ax3, shrink=0.9) - ax3.invert_yaxis() - plt.tight_layout() - plt.savefig(f"zonal_mean_{time_str}.png") - print(f"Finished processing {time_str}") - - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/otc_model_data_1tstep_extract.py b/diagnostics/finite_amplitude_wave_diag/unused/otc_model_data_1tstep_extract.py deleted file mode 100644 index e28e06350..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/otc_model_data_1tstep_extract.py +++ /dev/null @@ -1,22 +0,0 @@ -""" -Extract uvT data for 1 time step -""" -import os -import xarray as xr # python library we use to read netcdf files - - -wk_dir = f"{os.environ['HOME']}/GitHub/mdtf/wkdir/" -data_dir = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/" -u_path = f"{data_dir}atmos_inst.1984010100-1984123123.ua.nc" -v_path = f"{data_dir}atmos_inst.1984010100-1984123123.va.nc" -t_path = f"{data_dir}atmos_inst.1984010100-1984123123.ta.nc" - -print("Start outputting 1 timestamp") -tstep = 1000 -xr.open_dataset(u_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_t{tstep}_u.nc") -xr.open_dataset(v_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_t{tstep}_v.nc") -xr.open_dataset(t_path).isel(time=tstep).to_netcdf(f"{data_dir}atmos_inst_t{tstep}_t.nc") -print("Finish outputting 1 timestamp") - - - diff --git a/diagnostics/finite_amplitude_wave_diag/unused/send_to_sandro.py b/diagnostics/finite_amplitude_wave_diag/unused/send_to_sandro.py deleted file mode 100644 index f11962493..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/send_to_sandro.py +++ /dev/null @@ -1,29 +0,0 @@ -""" -Extract some sample data and send to Sandro -""" -import os -import numpy as np -import xarray as xr # python library we use to read netcdf files -import matplotlib.pyplot as plt # python library we use to make plots -from hn2016_falwa.xarrayinterface import QGDataset - - -# *** Combine files: concatenate over time *** -file_handle = xr.open_mfdataset(f"send_to_sandro_t*.nc", concat_dim='time', combine='nested') -print(file_handle) -print(file_handle.coords['time']) -file_handle.to_netcdf("send_to_sandro_12_time_slice.nc") - - -to_output_step_by_step = False -if to_output_step_by_step: - original_file_path = f"{os.environ['HOME']}/GitHub/mdtf/inputdata/model/GFDL-CM4/data/atmos_inst/ts/hourly/1yr/"+\ - "atmos_inst.1984010100-1984123123.[uvt]a.nc" - for tstep in np.arange(0, 8760, 730): - file_handle = xr.open_mfdataset(original_file_path).isel(time=tstep) - print("file_handle") - print(file_handle) - filename = f"send_to_sandro_t{tstep}.nc" - print(f"Start outputting {filename}") - file_handle.to_netcdf(filename) - print(f"Finished outputting {filename}") diff --git a/diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py b/diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py deleted file mode 100644 index d3f49010b..000000000 --- a/diagnostics/finite_amplitude_wave_diag/unused/visualize_refstate.py +++ /dev/null @@ -1,12 +0,0 @@ -import numpy as np -import xarray as xr -import matplotlib.pyplot as plt - -all_file = xr.open_dataset("../refstates_2022Jan.nc") -plt.contourf( - all_file.uref['ylat'], - all_file.uref['height'], - all_file.uref, - np.arange(-50, 101, 10)) -plt.colorbar() -plt.show() diff --git a/diagnostics/precip_buoy_diag/vert_cython.pyx b/diagnostics/precip_buoy_diag/vert_cython.pyx index 2eb8af1ad..dc03ccbf0 100644 --- a/diagnostics/precip_buoy_diag/vert_cython.pyx +++ b/diagnostics/precip_buoy_diag/vert_cython.pyx @@ -123,7 +123,7 @@ np.ndarray[DTYPE1_t, ndim=1] ind_low): ## Mid-level ## # if (j=im): # op4[i]+=var[j,i]*dp[j,i] -# op5[i]+=lwa_baro[j,i]*dp[j,i] +# op5[i]+=var1[j,i]*dp[j,i] def vert_integ_exneri_variable_bl(np.ndarray[DTYPE_t, ndim=2] var, diff --git a/src/default_tests.jsonc b/src/default_tests.jsonc index 28825a0b9..dbe8027d9 100644 --- a/src/default_tests.jsonc +++ b/src/default_tests.jsonc @@ -84,7 +84,7 @@ // Location of the Anaconda/miniconda or micromamba installation to use for managing // dependencies (path returned by running `[conda | micromamba] info`.) If empty, // framework will attempt to determine location of system's conda installation. - "conda_root": "$HOME/miniconda3", + "conda_root": "", // Location of micromamba executable if using micromamba "micromamba_exe":"", @@ -93,7 +93,7 @@ // be equal to the "--env_dir" flag passed to conda_env_setup.sh. If left // blank, the framework will look for its environments in the system default // location. - "conda_env_root": "$HOME/miniconda3/envs", + "conda_env_root": "", // SETTINGS ------------------------------------------------------------------ // Any command-line option recognized by the mdtf script (type `mdtf --help`) From 61c2ab3704e688ce9788b7e52b032d9a7719f964 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 19 May 2024 21:08:38 -0500 Subject: [PATCH 169/178] Add back references --- .../finite_amplitude_wave_diag_zonal_mean.rst | 112 +++++------------- 1 file changed, 32 insertions(+), 80 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst b/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst index 244bbf1f1..c6fda4731 100644 --- a/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst +++ b/diagnostics/finite_amplitude_wave_diag/doc/finite_amplitude_wave_diag_zonal_mean.rst @@ -69,107 +69,59 @@ Required model output variables References ---------- -(to be filled in) - -More about this diagnostic --------------------------- - -(to be filled in) - -Links to external sites -^^^^^^^^^^^^^^^^^^^^^^^ - -(to be filled in) - -More references and citations -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -(to be filled in) - -Figures -^^^^^^^ - -Images **must** be provided in either .png or .jpeg formats in order to be -displayed properly in both the html and pdf output. - -Here's the syntax for including a figure in the document: - -.. code-block:: restructuredtext - - .. _my-figure-tag: [only needed for linking to figures] - - .. figure:: [path to image file, relative to the source.rst file] - :align: left - :width: 75 % [these both need to be indented by three spaces] +References +---------- - Paragraphs or other text following the figure that are indented by three - spaces are treated as a caption/legend, eg: +.. _ref-Nakamura-annual-review: - - red line: a Gaussian - - blue line: another Gaussian +10241. Nakamura, N. (2024). Large-Scale Eddy-Mean Flow Interaction in the Earth's Extratropical Atmosphere. *Annual Review of Fluid Mechanics*, **56**, 349-377, +`doi:10.1146/annurev-fluid-121021-035602 `__. -which produces +.. _ref-Neal-et-al-GRL: -.. _my-figure-tag: +10242. Neal, E., Huang, C. S., & Nakamura, N. (2022). The 2021 Pacific Northwest heat wave and associated blocking: meteorology and the role of an upstream cyclone as a diabatic source of wave activity. *Geophysical Research Letters*, **49(8)**, e2021GL097699. `doi:10.1029/2021GL097699 `__. -.. figure:: gaussians.jpg - :align: left - :width: 75 % +.. _ref-Nakamura-Science: - Paragraphs or other text following the figure that are indented by three - spaces are treated as a caption/legend, eg: +10243. Nakamura, N., & Huang, C. S. (2018). Atmospheric blocking as a traffic jam in the jet stream. *Science*, **361(6397)**, 42-47, `doi:10.1126/science.aat0721 `__. - - blue line: a Gaussian - - orange line: another Gaussian +.. _ref-Nakamura-Solomon-JAS-2010: -The tag lets you refer to figures in the text, e.g. -``:ref:`Figure 1 ``` → :ref:`Figure 1 `. +10244. Nakamura, N., & Solomon, A. (2010). Finite-amplitude wave activity and mean flow adjustments in the atmospheric general circulation. Part I: Quasigeostrophic theory and analysis. *Journal of the atmospheric sciences*, **67(12)**, 3967-3983, `doi:10.1175/2010JAS3503.1 `__. -Equations -^^^^^^^^^ +.. _ref-Nakamura-Solomon-JAS-2011: -Accented and Greek letters can be written directly using Unicode: é, Ω. -(Make sure your text editor is saving the file in UTF-8 encoding). +10245. Nakamura, N., & Solomon, A. (2011). Finite-amplitude wave activity and mean flow adjustments in the atmospheric general circulation. Part II: Analysis in the isentropic coordinate. Journal of the atmospheric sciences, 68(11), 2783-2799, `doi:10.1175/2011JAS3685.1 `__. -Use the following syntax for superscripts and subscripts in in-line text: +.. _ref-Huang-Nakamura-JAS-2016: -.. code-block:: restructuredtext +10246. Huang, C. S., & Nakamura, N. (2016). Local finite-amplitude wave activity as a diagnostic of anomalous weather events. Journal of the Atmospheric Sciences, 73(1), 211-229, `doi:10.1175/JAS-D-15-0194.1 `__. - W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . +.. _ref-Huang-Nakamura-GRL-2017: -which produces: W m\ :sup:`-2`\ ; CO\ :sub:`2`\ . -Note one space is needed after both forward slashes in the input; these spaces -are not included in the output. +10247. Huang, C. S., & Nakamura, N. (2017). Local wave activity budgets of the wintertime Northern Hemisphere: Implication for the Pacific and Atlantic storm tracks. Geophysical Research Letters, 44(11), 5673-5682, `doi:10.1002/2017GL073760 `__. -Equations can be written using standard -`latex `__ -(PDF link) syntax. Short equations in-line with the text can be written as -``:math:`f = 2 \Omega \sin \phi``` → :math:`f = 2 \Omega \sin \phi`. - -Longer display equations can be written as follows. Note that a blank line is -needed after the ``.. math::`` heading and after each equation, with the -exception of aligned equations. +More about this diagnostic +-------------------------- -.. code-block:: restructuredtext +(to be filled in) - .. math:: +Links to external sites +^^^^^^^^^^^^^^^^^^^^^^^ - \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ - \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, +(to be filled in) - \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. +More references and citations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -which produces: +(to be filled in) -.. math:: +Figures +^^^^^^^ - \frac{D \mathbf{u}_g}{Dt} + f_0 \hat{\mathbf{k}} \times \mathbf{u}_a &= 0; \\ - \frac{Dh}{Dt} + f \nabla_z \cdot \mathbf{u}_a &= 0, +(to be filled in) - \text{where } \mathbf{u}_g = \frac{g}{f_0} \hat{\mathbf{k}} \times \nabla_z h. +Equations +^^^^^^^^^ -The editor at `https://livesphinx.herokuapp.com/ -`__ can have issues formatting complicated -equations, so you may want to check its output with a latex-specific editor, -such as `overleaf `__ or other `equation editors -`__. +(to be filled in) From 3bc4373d4c5325b455d391b1da021027a471dd01 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 19 May 2024 21:46:42 -0500 Subject: [PATCH 170/178] Added author names --- README.md | 67 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 2f208a245..f42b63d4e 100644 --- a/README.md +++ b/README.md @@ -12,39 +12,40 @@ Each process-oriented diagnostic [POD; [Maloney et al.(2019)](#citations)] targe The links in the table below show sample output, a brief description, and a link to the full documentation for each currently-supported POD. -| Diagnostic | Contributor | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------| -| [AMOC 3D structure ](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_GFDL-CM2p1/transport_onto_TS/transport_onto_TS.html) (implementation in progress) | Xiaobiao Xu (FSU/COAPS) | -| [Blocking Neale](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/blocking_neale/doc/blocking_neale.rst) | Rich Neale (NCAR), Dani Coleman (NCAR) | -| [Convective Transition Diagnostics](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/convective_transition_diag/convective_transition_diag.html) | J. David Neelin (UCLA) | -| [Diurnal Cycle of Precipitation](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/precip_diurnal_cycle/precip_diurnal_cycle.html) | Rich Neale (NCAR) | -| [Eulerian Storm Track](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/eulerian_storm_track/doc/eulerian_storm_track.rst) | James Booth (CUNY), Jeyavinoth Jeyaratnam | -| [Extratropical Variance (EOF 500hPa Height)](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/EOF_500hPa/EOF_500hPa.html) | CESM/AMWG (NCAR) | -| [Forcing Feedback Diagnostic](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/forcing_feedback/doc/forcing_feedback.rst) | Brian Soden (U. Miami), Ryan Kramer| -| [Mixed Layer Depth](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/mixed_layer_depth/doc/mixed_layer_depth.rst) | Cecilia Bitz (U. Washington), Lettie Roach | -| [MJO Propagation and Amplitude ](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_GFDL.CM4.c96L32.am4g10r8/MJO_prop_amp/MJO_prop_amp.html)| Xianan Jiang (UCLA) | -| [MJO Spectra and Phasing](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/MJO_suite/MJO_suite.html) | CESM/AMWG (NCAR) | -| [MJO Teleconnections](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/MJO_teleconnection/MJO_teleconnection.html) | Eric Maloney (CSU) | -| [Moist Static Energy Diagnostic Package](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/ENSO_MSE/doc/ENSO_MSE.rst) | H. Annamalai (U. Hawaii), Jan Hafner (U. Hawaii) | -| [Ocean Surface Flux Diagnostic](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/ocn_surf_flux_diag/doc/ocn_surf_flux_diag.rst) | Charlotte A. DeMott (Colorado State University), Chia-Weh Hsu (GFDL) | -| [Precipitation Buoyancy Diagnostic](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/precip_buoy_diag/doc/precip_buoy_diag.rst) | J. David Neelin (UCLA), Fiaz Ahmed | -| [Rossby Wave Sources Diagnostic Package](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/ENSO_RWS/doc/ENSO_RWS.rst) | H. Annamalai (U. Hawaii), Jan Hafner (U. Hawaii) | -| [Sea Ice Suite](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/seaice_suite/doc/seaice_suite.rst) | Cecilia Bitz (U. Washington), Lettie Roach | -| [Soil Moisture-Evapotranspiration coupling](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/SM_ET_coupling/doc/SM_ET_coupling.rst) | Eric Wood (Princeton) | -| [Stratosphere-Troposphere Coupling: Annular Modes](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_annular_modes/doc/stc_annular_modes.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | -| [Stratosphere-Troposphere Coupling: Eddy Heat Fluxes](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_eddy_heat_fluxes/doc/stc_eddy_heat_fluxes.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | -| [Stratosphere-Troposphere Coupling: QBO and ENSO stratospheric teleconnections](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_qbo_enso/doc/stc_qbo_enso.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL), Dillon Elsbury (NOAA) | -| [Stratosphere-Troposphere Coupling: Stratospheric Ozone and Circulation](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_eddy_heat_fluxes/doc/stc_ozone.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | -| [Stratosphere-Troposphere Coupling: Stratospheric Polar Vortex Extremes](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_spv_extremes/doc/stc_spv_extremes.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | -| [Stratosphere-Troposphere Coupling: Vertical Wave Coupling](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_vert_wave_coupling/doc/stc_vert_wave_coupling.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | -| [Surface Albedo Feedback](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/albedofb/doc/surface_albedo_feedback.rst) | Cecilia Bitz (U. Washington), Aaron Donahoe (U. Washington), Ed Blanchard, Wei Cheng, Lettie Roach | -| [Surface Temperature Extremes and Distribution Shape](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/temp_extremes_distshape/doc/temp_extremes_distshape.rst) | J. David Neelin (UCLA), Paul C Loikith (PSU), Arielle Catalano (PSU) | -| [TC MSE Variance Budget Analysis](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/TC_MSE/doc/TC_MSE.rst) | Allison Wing (Florida State University), Jarrett Starr (Florida State University)| -| [Top Heaviness Metric](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/top_heaviness_metric/doc/top_heaviness_metric.rst) | Zhuo Wang (U.Illinois Urbana-Champaign), Jiacheng Ye (U.Illinois Urbana-Champaign)| -| [Tropical Cyclone Rain Rate Azimuthal Average](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/TC_Rain/doc/TC_Rain.rst) | Daehyun Kim (U. Washington), Nelly Emlaw (U.Washington) | -| [Tropical Pacific Sea Level](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/tropical_pacific_sea_level/doc/tropical_pacific_sea_level.rst) | Jianjun Yin (U. Arizona), Chia-Weh Hsu (GFDL)| -| [Warm Rain Microphysics](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/warm_rain_microphysics/documentation) (implementation in progress) | Kentaroh Suzuki (AORI, U. Tokyo)| -| [Wavenumber-Frequency Spectra](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/Wheeler_Kiladis/Wheeler_Kiladis.html) | CESM/AMWG (NCAR) | +| Diagnostic | Contributor | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------| +| [AMOC 3D structure ](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_GFDL-CM2p1/transport_onto_TS/transport_onto_TS.html) (implementation in progress) | Xiaobiao Xu (FSU/COAPS) | +| [Blocking Neale](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/blocking_neale/doc/blocking_neale.rst) | Rich Neale (NCAR), Dani Coleman (NCAR) | +| [Convective Transition Diagnostics](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/convective_transition_diag/convective_transition_diag.html) | J. David Neelin (UCLA) | +| [Diurnal Cycle of Precipitation](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/precip_diurnal_cycle/precip_diurnal_cycle.html) | Rich Neale (NCAR) | +| [Eulerian Storm Track](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/eulerian_storm_track/doc/eulerian_storm_track.rst) | James Booth (CUNY), Jeyavinoth Jeyaratnam | +| [Extratropical Variance (EOF 500hPa Height)](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/EOF_500hPa/EOF_500hPa.html) | CESM/AMWG (NCAR) | +| [Forcing Feedback Diagnostic](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/forcing_feedback/doc/forcing_feedback.rst) | Brian Soden (U. Miami), Ryan Kramer | +| [Finite-amplitude Rossby Wave Diagnostics](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/forcing_feedback/doc/forcing_feedback.rst) | Clare S. Y. Huang (U. Chicago), Christopher Polster (JGU Mainz), Noboru Nakamura (U. Chicago)| +| [Mixed Layer Depth](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/mixed_layer_depth/doc/mixed_layer_depth.rst) | Cecilia Bitz (U. Washington), Lettie Roach | +| [MJO Propagation and Amplitude ](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_GFDL.CM4.c96L32.am4g10r8/MJO_prop_amp/MJO_prop_amp.html) | Xianan Jiang (UCLA) | +| [MJO Spectra and Phasing](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/MJO_suite/MJO_suite.html) | CESM/AMWG (NCAR) | +| [MJO Teleconnections](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/MJO_teleconnection/MJO_teleconnection.html) | Eric Maloney (CSU) | +| [Moist Static Energy Diagnostic Package](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/ENSO_MSE/doc/ENSO_MSE.rst) | H. Annamalai (U. Hawaii), Jan Hafner (U. Hawaii) | +| [Ocean Surface Flux Diagnostic](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/ocn_surf_flux_diag/doc/ocn_surf_flux_diag.rst) | Charlotte A. DeMott (Colorado State University), Chia-Weh Hsu (GFDL) | +| [Precipitation Buoyancy Diagnostic](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/precip_buoy_diag/doc/precip_buoy_diag.rst) | J. David Neelin (UCLA), Fiaz Ahmed | +| [Rossby Wave Sources Diagnostic Package](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/ENSO_RWS/doc/ENSO_RWS.rst) | H. Annamalai (U. Hawaii), Jan Hafner (U. Hawaii) | +| [Sea Ice Suite](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/seaice_suite/doc/seaice_suite.rst) | Cecilia Bitz (U. Washington), Lettie Roach | +| [Soil Moisture-Evapotranspiration coupling](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/SM_ET_coupling/doc/SM_ET_coupling.rst) | Eric Wood (Princeton) | +| [Stratosphere-Troposphere Coupling: Annular Modes](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_annular_modes/doc/stc_annular_modes.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | +| [Stratosphere-Troposphere Coupling: Eddy Heat Fluxes](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_eddy_heat_fluxes/doc/stc_eddy_heat_fluxes.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | +| [Stratosphere-Troposphere Coupling: QBO and ENSO stratospheric teleconnections](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_qbo_enso/doc/stc_qbo_enso.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL), Dillon Elsbury (NOAA) | +| [Stratosphere-Troposphere Coupling: Stratospheric Ozone and Circulation](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_eddy_heat_fluxes/doc/stc_ozone.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | +| [Stratosphere-Troposphere Coupling: Stratospheric Polar Vortex Extremes](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_spv_extremes/doc/stc_spv_extremes.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | +| [Stratosphere-Troposphere Coupling: Vertical Wave Coupling](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/stc_vert_wave_coupling/doc/stc_vert_wave_coupling.rst) | Amy H. Butler (NOAA CSL), Zachary D. Lawrence (CIRES/NOAA PSL) | +| [Surface Albedo Feedback](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/albedofb/doc/surface_albedo_feedback.rst) | Cecilia Bitz (U. Washington), Aaron Donahoe (U. Washington), Ed Blanchard, Wei Cheng, Lettie Roach | +| [Surface Temperature Extremes and Distribution Shape](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/temp_extremes_distshape/doc/temp_extremes_distshape.rst) | J. David Neelin (UCLA), Paul C Loikith (PSU), Arielle Catalano (PSU) | +| [TC MSE Variance Budget Analysis](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/TC_MSE/doc/TC_MSE.rst) | Allison Wing (Florida State University), Jarrett Starr (Florida State University) | +| [Top Heaviness Metric](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/top_heaviness_metric/doc/top_heaviness_metric.rst) | Zhuo Wang (U.Illinois Urbana-Champaign), Jiacheng Ye (U.Illinois Urbana-Champaign) | +| [Tropical Cyclone Rain Rate Azimuthal Average](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/TC_Rain/doc/TC_Rain.rst) | Daehyun Kim (U. Washington), Nelly Emlaw (U.Washington) | +| [Tropical Pacific Sea Level](https://github.com/NOAA-GFDL/MDTF-diagnostics/blob/main/diagnostics/tropical_pacific_sea_level/doc/tropical_pacific_sea_level.rst) | Jianjun Yin (U. Arizona), Chia-Weh Hsu (GFDL) | +| [Warm Rain Microphysics](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/warm_rain_microphysics/documentation) (implementation in progress) | Kentaroh Suzuki (AORI, U. Tokyo) | +| [Wavenumber-Frequency Spectra](https://www.cgd.ucar.edu/cms/bundy/Projects/diagnostics/mdtf/mdtf_figures/MDTF_QBOi.EXP1.AMIP.001.save/Wheeler_Kiladis/Wheeler_Kiladis.html) | CESM/AMWG (NCAR) | From 96138ebfcced88bb07a8d24efd1daf55e1a24b67 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 19 May 2024 22:05:08 -0500 Subject: [PATCH 171/178] clean up paths --- .../finite_amplitude_wave_diag_zonal_mean.py | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py index a3a1461b5..7c51f7e0e 100644 --- a/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py +++ b/diagnostics/finite_amplitude_wave_diag/finite_amplitude_wave_diag_zonal_mean.py @@ -3,7 +3,7 @@ # Calculate finite-amplitude wave diagnostics that quantifies wave-mean flow # interactions. # -# Last update: 03/18/2024 +# Last update: 05/19/2024 # ================================================================================ # Version & Contact info # @@ -52,31 +52,24 @@ # Here and frequency are requested in the "varlist" part of # settings.json. already_done_gridfill: bool = True -load_environ: bool = (socket.gethostname() == 'otc') +# load_environ: bool = (socket.gethostname() == 'otc') frequency = "day" # TODO: change later -if load_environ: # otc path - print( - f""" - Start running on OTC. Print out all environment variables: - {os.environ} - """) - wk_dir = os.environ["WK_DIR"] - uvt_path = f"{os.environ['DATADIR']}/{frequency}/{os.environ['CASENAME']}.[uvt]a.{frequency}.nc" - casename = os.environ["CASENAME"] -else: # iMac path - wk_dir = "/Users/claresyhuang/Dropbox/GitHub/hn2016_falwa/github_data_storage" - uvt_path = f"{os.environ['HOME']}/Dropbox/GitHub/mdtf/MDTF-diagnostics/diagnostics/finite_amplitude_wave_diag/" + \ - "GFDL-CM3_historical_r1i1p1_20050101-20051231_10tslice.nc" - casename = "GFDL-CM3_historical_r1i1p1" +print( + f""" + Start running on OTC. Print out all environment variables: + {os.environ} + """) +wk_dir = os.environ["WK_DIR"] +uvt_path = f"{os.environ['DATADIR']}/{frequency}/{os.environ['CASENAME']}.[uvt]a.{frequency}.nc" +casename = os.environ["CASENAME"] print( f""" wk_dir = {wk_dir} uvt_path = {uvt_path} casename = {casename} - """ -) + """) # *** Coordinates of input dataset *** u_var_name = "ua" From 1d019feacac9f5128999ba350a1e47c817319bfc Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 19 May 2024 22:28:34 -0500 Subject: [PATCH 172/178] remove redundant file --- diagnostics/finite_amplitude_wave_diag/coordinate_utils.py | 0 diagnostics/finite_amplitude_wave_diag/env_otc.sh | 3 --- 2 files changed, 3 deletions(-) delete mode 100644 diagnostics/finite_amplitude_wave_diag/coordinate_utils.py delete mode 100644 diagnostics/finite_amplitude_wave_diag/env_otc.sh diff --git a/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py b/diagnostics/finite_amplitude_wave_diag/coordinate_utils.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/diagnostics/finite_amplitude_wave_diag/env_otc.sh b/diagnostics/finite_amplitude_wave_diag/env_otc.sh deleted file mode 100644 index 3048d1ae0..000000000 --- a/diagnostics/finite_amplitude_wave_diag/env_otc.sh +++ /dev/null @@ -1,3 +0,0 @@ -export WK_DIR=/home/clare/GitHub/mdtf/wkdir -export DATADIR=/home/clare/GitHub/mdtf/inputdata/model -export CASENAME="GFDL-CM3_historical_r1i1p1" From 6985ff7ab4664ba988c53bbcd9698674b55363cf Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 29 May 2024 10:19:25 -0500 Subject: [PATCH 173/178] merge --- data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json | 4638 ----- data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json | 14478 ---------------- tools/__init__.py | 0 tools/catalog_builder/__init__.py | 0 4 files changed, 19116 deletions(-) delete mode 100644 data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json delete mode 100644 data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json delete mode 100644 tools/__init__.py delete mode 100644 tools/catalog_builder/__init__.py diff --git a/data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json b/data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json deleted file mode 100644 index fc207ba1f..000000000 --- a/data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json +++ /dev/null @@ -1,4638 +0,0 @@ -{ - "prec_conv": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "expcalc": { - "CMOR_varname": "expcalc", - "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Calcite Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "conv_freq": { - "CMOR_varname": "ci", - "standard_name": "convection_time_fraction", - "long_name": "Fraction of Time Convection Occurs", - "modeling_realm": "atmos", - "units": "1" - }, - "cltcalipso": { - "CMOR_varname": "cltcalipso", - "standard_name": "cloud_area_fraction", - "long_name": "CALIPSO Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "modeling_realm": "atmos", - "units": "Pa" - }, - "tauu": { - "CMOR_varname": "tauuClim", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "modeling_realm": "atmos", - "units": "Pa" - }, - "pme_river": { - "CMOR_varname": "wfonocorr", - "standard_name": "water_flux_into_sea_water_without_flux_correction", - "long_name": "Water Flux into Sea Water Without Flux Correction", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "cLeaf": { - "CMOR_varname": "cLeaf", - "standard_name": "leaf_carbon_content", - "long_name": "Carbon Mass in Leaves", - "modeling_realm": "land", - "units": "kg m-2" - }, - "precip": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "so2_wet_dep": { - "CMOR_varname": "wetso2", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of SO2", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "sconcbc": { - "CMOR_varname": "sconcbc", - "standard_name": "mass_concentration_of_black_carbon_dry_aerosol_in_air", - "long_name": "Surface Concentration of Black Carbon Aerosol", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "thetaoga": { - "CMOR_varname": "thetaoga", - "standard_name": "sea_water_potential_temperature", - "long_name": "Global Average Sea Water Potential Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "WVP": { - "CMOR_varname": "prwClim", - "standard_name": "atmosphere_water_vapor_content", - "long_name": "Water Vapor Path", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "tnt2": { - "CMOR_varname": "tnt", - "standard_name": "tendency_of_air_temperature", - "long_name": "Tendency of Air Temperature", - "modeling_realm": "atmos", - "units": "K s-1" - }, - "tauu": { - "CMOR_varname": "tauu", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "modeling_realm": "atmos", - "units": "Pa" - }, - "t_ref": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "hfxba": { - "CMOR_varname": "hfxba", - "standard_name": "ocean_heat_x_transport_due_to_bolus_advection", - "long_name": "Ocean Heat X Transport due to Bolus Advection", - "modeling_realm": "ocean", - "units": "W" - }, - "q_ref": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "modeling_realm": "atmos", - "units": "1" - }, - "areacella": { - "CMOR_varname": "areacella", - "standard_name": "cell_area", - "long_name": "Atmosphere Grid-Cell Area", - "modeling_realm": "atmosphere & land", - "units": "m2" - }, - "pdi": { - "CMOR_varname": "pdi", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", - "long_name": "Diatom Primary Carbon Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "ialb": { - "CMOR_varname": "ialb", - "standard_name": "bare_sea_ice_albedo", - "long_name": "Bare Sea Ice Albedo", - "modeling_realm": "ocean & ice", - "units": "1" - }, - "dispkexyfo": { - "CMOR_varname": "dispkexyfo", - "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", - "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "total_mass_seawater": { - "CMOR_varname": "masso", - "standard_name": "sea_water_mass", - "long_name": "Sea Water Mass", - "modeling_realm": "ocean", - "units": "kg" - }, - "ps": { - "CMOR_varname": "psClim", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "modeling_realm": "atmos", - "units": "Pa" - }, - "agessc": { - "CMOR_varname": "agessc", - "standard_name": "sea_water_age_since_surface_contact", - "long_name": "Sea Water Age Since Surface Contact", - "modeling_realm": "ocean", - "units": "yr" - }, - "hfx": { - "CMOR_varname": "hfx", - "standard_name": "ocean_heat_x_transport", - "long_name": "Ocean Heat X Transport", - "modeling_realm": "ocean", - "units": "W" - }, - "qo3v": { - "CMOR_varname": "tro3Clim", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Mole Fraction of O3", - "modeling_realm": "atmos", - "units": "1e-9" - }, - "sos": { - "CMOR_varname": "sos", - "standard_name": "sea_surface_salinity", - "long_name": "Sea Surface Salinity", - "modeling_realm": "ocean", - "units": "psu" - }, - "clmcalipso": { - "CMOR_varname": "clmcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Mid Level Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "pon": { - "CMOR_varname": "pon", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", - "long_name": "Particulate Organic Nitrogen Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "swup_toa": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "bc_wet_dep": { - "CMOR_varname": "wetbc", - "standard_name": "tendency_of_atmosphere_mass_content_of_black_carbon_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Black Carbon Aerosol Mass", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "po4": { - "CMOR_varname": "po4", - "standard_name": "mole_concentration_of_phosphate_in_sea_water", - "long_name": "Dissolved Phosphate Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "evap": { - "CMOR_varname": "evap", - "standard_name": "water_evaporation_flux", - "long_name": "Water Evaporation Flux from Sea Ice", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "calc": { - "CMOR_varname": "calc", - "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Calcite Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "dissoc": { - "CMOR_varname": "dissoc", - "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", - "long_name": "Dissolved Organic Carbon Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "dem_s": { - "CMOR_varname": "dems", - "standard_name": "stratiform_cloud_longwave_emissivity", - "long_name": "Stratiform Cloud Emissivity", - "modeling_realm": "atmos", - "units": "1" - }, - "sst": { - "CMOR_varname": "tos", - "standard_name": "surface_temperature", - "long_name": "Sea Surface Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "chldiaz": { - "CMOR_varname": "chldiaz", - "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "sconcpoa": { - "CMOR_varname": "sconcpoa", - "standard_name": "mass_concentration_of_primary_particulate_organic_matter_dry_aerosol_in_air", - "long_name": "Surface Concentration of Dry Aerosol Primary Organic Matter", - "modeling_realm": "atmos", - "units": "kg m-3" - }, - "Gmwork": { - "CMOR_varname": "tnkebto", - "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", - "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "snomelt": { - "CMOR_varname": "snomelt", - "standard_name": "snow_melt_rate", - "long_name": "Snow Melt Rate", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "DMS_ddep_cmip": { - "CMOR_varname": "drydms", - "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of DMS", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "ph": { - "CMOR_varname": "ph", - "standard_name": "sea_water_ph_reported_on_total_scale", - "long_name": "pH", - "modeling_realm": "ocean_biochem", - "units": "1" - }, - "transiy": { - "CMOR_varname": "transiy", - "standard_name": "sea_ice_y_transport", - "long_name": "Northward sea ice transport", - "modeling_realm": "ocean & ice", - "units": "kg s-1" - }, - "SOA_wet_dep": { - "CMOR_varname": "wetsoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Dry Aerosol Secondary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "SO2_emis_cmip2": { - "CMOR_varname": "emiso2", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_emission", - "long_name": "Total Emission Rate of SO2", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "visc_cbu": { - "CMOR_varname": "difvmo", - "standard_name": "ocean_vertical_momentum_diffusivity", - "long_name": "Ocean Vertical Momentum Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "clc": { - "CMOR_varname": "clc", - "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", - "long_name": "Convective Cloud Area Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "pbot_t": { - "CMOR_varname": "pbo", - "standard_name": "sea_water_pressure_at_sea_floor", - "long_name": "Sea Water Pressure at Sea floor", - "modeling_realm": "ocean", - "units": "dbar" - }, - "difvho": { - "CMOR_varname": "difvho", - "standard_name": "ocean_vertical_heat_diffusivity", - "long_name": "Ocean Vertical Heat Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "c3PftFrac": { - "CMOR_varname": "c3PftFrac", - "standard_name": "area_fraction", - "long_name": "Total C3 PFT Cover Fraction", - "modeling_realm": "land", - "units": "%" - }, - "sftof": { - "CMOR_varname": "sftof", - "standard_name": "sea_area_fraction", - "long_name": "Sea Area Fraction", - "modeling_realm": "ocean", - "units": "%" - }, - "total_volume_seawater": { - "CMOR_varname": "volo", - "standard_name": "sea_water_volume", - "long_name": "Sea Water Volume", - "modeling_realm": "ocean", - "units": "m3" - }, - "concso4": { - "CMOR_varname": "concso4", - "standard_name": "mass_concentration_of_sulfate_dry_aerosol_in_air", - "long_name": "Concentration of SO4", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "talk": { - "CMOR_varname": "talk", - "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Total Alkalinity at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "rainfall_flux", - "long_name": "Surface Rainfall Rate into the Sea Ice Portion of the Grid Cell", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "mrros": { - "CMOR_varname": "mrrosClim", - "standard_name": "surface_runoff_flux", - "long_name": "Surface Runoff", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "nh4": { - "CMOR_varname": "nh4", - "standard_name": "mole_concentration_of_ammonium_in_sea_water", - "long_name": "Dissolved Ammonium Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "tasmin": { - "CMOR_varname": "tasminClim", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "cld_amt_2d": { - "CMOR_varname": "cltClim", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "" - }, - "phypmisc": { - "CMOR_varname": "phypmisc", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", - "long_name": "Other Phytoplankton Carbon Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "intparag": { - "CMOR_varname": "intparag", - "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", - "long_name": "Aragonite Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "tos_atm": { - "CMOR_varname": "tos", - "standard_name": "sea_surface_temperature", - "long_name": "Sea Surface Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "fl_lssnow": { - "CMOR_varname": "prlsns", - "standard_name": "large_scale_snowfall_flux", - "long_name": "Stratiform Snowfall Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "evspsblveg": { - "CMOR_varname": "evspsblveg", - "standard_name": "water_evaporation_flux_from_canopy", - "long_name": "Evaporation from Canopy", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "clcalipso_sat": { - "CMOR_varname": "clcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "fFire": { - "CMOR_varname": "fFire", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires_excluding_anthropogenic_land_use_change", - "long_name": "Carbon Mass Flux into Atmosphere due to CO2 Emission from Fire", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "tran": { - "CMOR_varname": "tranClim", - "standard_name": "transpiration_flux", - "long_name": "Transpiration", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "rh_ref_cmip_min": { - "CMOR_varname": "rhsmin", - "standard_name": "relative_humidity", - "long_name": "Surface Daily Minimum Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "sic": { - "CMOR_varname": "sic", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea Ice Area Fraction", - "modeling_realm": "ocean & ice", - "units": "%" - }, - "dust_col": { - "CMOR_varname": "loaddust", - "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol", - "long_name": "Load of Dust", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "dht": { - "CMOR_varname": "thkcello", - "standard_name": "cell_thickness", - "long_name": "Ocean Model Cell Thickness", - "modeling_realm": "land", - "units": "m" - }, - "tau_x": { - "CMOR_varname": "tauuo", - "standard_name": "surface_downward_x_stress", - "long_name": "Surface Downward X Stress", - "modeling_realm": "ocean & ice", - "units": "N m-2" - }, - "msftbarot": { - "CMOR_varname": "msftbarot", - "standard_name": "ocean_barotropic_mass_streamfunction", - "long_name": "Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "fgo2": { - "CMOR_varname": "fgo2", - "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", - "long_name": "Surface Downward O2 Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "rh_ref_cmip": { - "CMOR_varname": "rhs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "zooc": { - "CMOR_varname": "zooc", - "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Zooplankton Carbon Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "o2min": { - "CMOR_varname": "o2min", - "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", - "long_name": "Oxygen Minimum Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "emipoav2": { - "CMOR_varname": "emipoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_net_chemical_production", - "long_name": "Emission Rate of Dry Aerosol Primary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "dissoc": { - "CMOR_varname": "dissoc", - "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", - "long_name": "Dissolved Organic Carbon Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "omldamax": { - "CMOR_varname": "omldamax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", - "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "modeling_realm": "ocean", - "units": "m" - }, - "bddtdic": { - "CMOR_varname": "bddtdic", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "phydiaz": { - "CMOR_varname": "phydiaz", - "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "wmo": { - "CMOR_varname": "wmo", - "standard_name": "upward_ocean_mass_transport", - "long_name": "Upward Ocean Mass Transport", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "phymisc": { - "CMOR_varname": "phymisc", - "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "strocny": { - "CMOR_varname": "strocny", - "standard_name": "upward_y_stress_at_sea_ice_base", - "long_name": "Northward Ocean Stress On Sea Ice", - "modeling_realm": "ocean & ice", - "units": "N m-2" - }, - "sphum": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "modeling_realm": "atmos", - "units": "1" - }, - "cfadLidarsr532": { - "CMOR_varname": "cfadLidarsr532", - "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", - "long_name": "CALIPSO Scattering Ratio", - "modeling_realm": "atmos", - "units": "1" - }, - "intpp": { - "CMOR_varname": "intpp", - "standard_name": "net_primary_mole_productivity_of_carbon_by_phytoplankton", - "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "swdn_tot_dif": { - "CMOR_varname": "rsdsdiff", - "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", - "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "umo": { - "CMOR_varname": "umo", - "standard_name": "ocean_mass_x_transport", - "long_name": "Ocean Mass X Transport", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "modeling_realm": "atmos", - "units": "m" - }, - "vcomp": { - "CMOR_varname": "vaClim", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "temp": { - "CMOR_varname": "taClim", - "standard_name": "air_temperature", - "long_name": "Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_net_downward_longwave_flux", - "long_name": "Surface Net Downward Longwave Radiation", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "rsucs": { - "CMOR_varname": "rsucs", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "IWP_all_clouds": { - "CMOR_varname": "cliviClim", - "standard_name": "atmosphere_cloud_ice_content", - "long_name": "Ice Water Path", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "rh_cmip": { - "CMOR_varname": "hurClim", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "thetao": { - "CMOR_varname": "thetao", - "standard_name": "sea_water_potential_temperature", - "long_name": "Sea Water Potential Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "hght": { - "CMOR_varname": "zgClim", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "modeling_realm": "atmos", - "units": "m" - }, - "pop": { - "CMOR_varname": "pop", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", - "long_name": "Particulate Organic Phosphorus Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "clhcalipso": { - "CMOR_varname": "clhcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO High Level Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "lwup_sfc": { - "CMOR_varname": "rlusClim", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "pop": { - "CMOR_varname": "pop", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", - "long_name": "Particulate Organic Phosphorus Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "co2_dvmr": { - "CMOR_varname": "co2", - "standard_name": "mole_fraction_of_carbon_dioxide_in_air", - "long_name": "Mole Fraction of CO2", - "modeling_realm": "atmos", - "units": "1e-6" - }, - "fbddtdisi": { - "CMOR_varname": "fbddtdisi", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "bddtdife": { - "CMOR_varname": "bddtdife", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_iron_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "sconcdust": { - "CMOR_varname": "sconcdust", - "standard_name": "mass_concentration_of_dust_dry_aerosol_in_air", - "long_name": "Surface Concentration of Dust", - "modeling_realm": "atmos", - "units": "kg m-3" - }, - "hfibthermds": { - "CMOR_varname": "hfibthermds", - "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "tx_trans": { - "CMOR_varname": "umo", - "standard_name": "ocean_mass_x_transport", - "long_name": "Ocean Mass X Transport", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "volcello": { - "CMOR_varname": "volcello", - "standard_name": "ocean_volume", - "long_name": "Ocean Grid-Cell Volume", - "modeling_realm": "ocean", - "units": "m-3" - }, - "chldiaz": { - "CMOR_varname": "chldiaz", - "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water at Surface", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "chlmisc": { - "CMOR_varname": "chlmisc", - "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Other Phytoplankton Chlorophyll Mass Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "clw": { - "CMOR_varname": "clwClim", - "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "1" - }, - "hfy": { - "CMOR_varname": "hfy", - "standard_name": "ocean_heat_y_transport", - "long_name": "Ocean Heat Y Transport", - "modeling_realm": "ocean", - "units": "W" - }, - "lwdn_sfc_clr": { - "CMOR_varname": "rldscs", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "diff_cbt_t": { - "CMOR_varname": "difvho", - "standard_name": "ocean_vertical_heat_diffusivity", - "long_name": "Ocean Vertical Heat Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "masscello": { - "CMOR_varname": "masscello", - "standard_name": "sea_water_mass_per_unit_area", - "long_name": "Sea Water Mass Per Unit Area", - "modeling_realm": "ocean", - "units": "kg m-2" - }, - "tnhusd": { - "CMOR_varname": "tnhusd", - "standard_name": "tendency_of_specific_humidity_due_to_diffusion", - "long_name": "Tendency of Specific Humidity due to Diffusion", - "modeling_realm": "atmos", - "units": "s-1" - }, - "reffclwc": { - "CMOR_varname": "reffclwc", - "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", - "long_name": "Convective Cloud Droplet Effective Radius", - "modeling_realm": "atmos", - "units": "m" - }, - "sit": { - "CMOR_varname": "sit", - "standard_name": "sea_ice_thickness", - "long_name": "Sea Ice Thickness", - "modeling_realm": "ocean & ice", - "units": "m" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "wap", - "modeling_realm": "atmos", - "units": "Pa s-1" - }, - "bc_ddep": { - "CMOR_varname": "drybc", - "standard_name": "tendency_of_atmosphere_mass_content_of_black_carbon_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of Black Carbon Aerosol Mass", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "Kd_itidal_z": { - "CMOR_varname": "difvtrto", - "standard_name": "ocean_vertical_tracer_diffusivity_due_to_tides", - "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "evap": { - "CMOR_varname": "evspsbl", - "standard_name": "water_evaporation_flux", - "long_name": "Evaporation", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "hcice": { - "CMOR_varname": "hcice", - "standard_name": "sea_ice_total_heat_content", - "long_name": "Sea Ice Total Heat Content", - "modeling_realm": "ocean & ice", - "units": "J" - }, - "concss": { - "CMOR_varname": "concss", - "standard_name": "mass_concentration_of_seasalt_dry_aerosol_in_air", - "long_name": "Concentration of Seasalt", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "reffclws": { - "CMOR_varname": "reffclws", - "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", - "long_name": "Stratiform Cloud Droplet Effective Radius", - "modeling_realm": "atmos", - "units": "m" - }, - "sfc_hflux_from_water_prec": { - "CMOR_varname": "hfrainds", - "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", - "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "slp": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_sea_level", - "long_name": "Sea Level Pressure", - "modeling_realm": "atmos", - "units": "Pa" - }, - "evspsblveg": { - "CMOR_varname": "evspsblvegClim", - "standard_name": "water_evaporation_flux_from_canopy", - "long_name": "Evaporation from Canopy", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "residualFrac": { - "CMOR_varname": "residualFrac", - "standard_name": "area_fraction", - "long_name": "Fraction of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", - "modeling_realm": "land", - "units": "%" - }, - "pastureFrac": { - "CMOR_varname": "pastureFrac", - "standard_name": "area_fraction", - "long_name": "Anthropogenic Pasture Fraction", - "modeling_realm": "land", - "units": "%" - }, - "hblt_max": { - "CMOR_varname": "omldamax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", - "long_name": "Mean Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "modeling_realm": "ocean", - "units": "m" - }, - "rlussi": { - "CMOR_varname": "rlussi", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Upward Long Wave over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "W m-2" - }, - "salt": { - "CMOR_varname": "so", - "standard_name": "sea_water_salinity", - "long_name": "Sea Water Salinity", - "modeling_realm": "ocean", - "units": "psu" - }, - "phyc": { - "CMOR_varname": "phyc", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Phytoplankton Carbon Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "visc_cbu_tides": { - "CMOR_varname": "difvmto", - "standard_name": "ocean_vertical_momentum_diffusivity_due_to_tides", - "long_name": "Ocean Vertical Momentum Diffusivity due to Tides", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "rrvch4": { - "CMOR_varname": "ch4global", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "Global Mean Mole Fraction of CH4", - "modeling_realm": "atmosChem", - "units": "1e-9" - }, - "fbddtdife": { - "CMOR_varname": "fbddtdife", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "hfnorthba": { - "CMOR_varname": "hfynorthba", - "standard_name": "northward_ocean_heat_transport_due_to_bolus_advection", - "long_name": "Northward Ocean Heat Transport due to Bolus Advection", - "modeling_realm": "ocean", - "units": "W" - }, - "concno3": { - "CMOR_varname": "concno3", - "standard_name": "mass_concentration_ of_nitrate_dry_aerosol_in_air", - "long_name": "Concentration of NO3 Aerosol", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "intpbsi": { - "CMOR_varname": "intpbsi", - "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", - "long_name": "Silica Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "swflx": { - "CMOR_varname": "rsntds", - "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", - "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "gridspec": { - "CMOR_varname": "gridspec", - "standard_name": "[gridspec_ocnBgchem]", - "long_name": "Gridspec", - "modeling_realm": "ocean_biochem", - "units": "" - }, - "zo2min": { - "CMOR_varname": "zo2min", - "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_molecular_oxygen_in_sea_water", - "long_name": "Depth of Oxygen Minimum Concentration", - "modeling_realm": "ocean_biochem", - "units": "m" - }, - "rlncs": { - "CMOR_varname": "rlncs", - "standard_name": "net_upward_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Net Upwelling Clear-Sky Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "evap": { - "CMOR_varname": "evspsblClim", - "standard_name": "water_evaporation_flux", - "long_name": "Evaporation", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "fbddtalk": { - "CMOR_varname": "fbddtalk", - "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", - "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "reff_lsclliq": { - "CMOR_varname": "reffclws", - "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "m" - }, - "bmelt": { - "CMOR_varname": "bmelt", - "standard_name": "rate_of_melt_at_sea_ice_base", - "long_name": "Rate of Melt at Sea Ice Base", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "agm": { - "CMOR_varname": "diftrblo", - "standard_name": "ocean_tracer_bolus_laplacian_diffusivity", - "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "precip": { - "CMOR_varname": "prClim", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "evap_heat": { - "CMOR_varname": "hfls", - "standard_name": "surface_downward_latent_heat_flux", - "long_name": "Surface Downward Latent Heat Flux", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "transix": { - "CMOR_varname": "transix", - "standard_name": "sea_ice_x_transport", - "long_name": "Eastward Sea Ice Transport", - "modeling_realm": "ocean & ice", - "units": "kg s-1" - }, - "cl": { - "CMOR_varname": "clClim", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Cloud Area Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "divice": { - "CMOR_varname": "divice", - "standard_name": "??", - "long_name": "Strain Rate Divergence of Sea Ice", - "modeling_realm": "ocean & ice", - "units": "s-1" - }, - "grCongel": { - "CMOR_varname": "grCongel", - "standard_name": "tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation", - "long_name": "Congelation Sea Ice Growth Rate", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "sconcoa": { - "CMOR_varname": "sconcoa", - "standard_name": "mass_concentration_of_particulate_organic_matter_dry_aerosol_in_air", - "long_name": "Surface Concentration of Dry Aerosol Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "rGrowth": { - "CMOR_varname": "rGrowth", - "standard_name": "surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_growth", - "long_name": "Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "grassFrac": { - "CMOR_varname": "grassFrac", - "standard_name": "area_fraction", - "long_name": "Natural Grass Fraction", - "modeling_realm": "land", - "units": "%" - }, - "fco2fos": { - "CMOR_varname": "fco2fos", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", - "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "swup_toa_clr": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "sblsi": { - "CMOR_varname": "sblsi", - "standard_name": "surface_snow_and_ice_sublimation_flux", - "long_name": "Sublimation over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "kg m-2" - }, - "vsi": { - "CMOR_varname": "vsi", - "standard_name": "northward_sea_ice_velocity", - "long_name": "Northward Sea Ice Velocity", - "modeling_realm": "seaIce & ocean", - "units": "m s-1" - }, - "shflx": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "power_diss_tides": { - "CMOR_varname": "tnpeot", - "standard_name": "tendency_of_ocean_potential_energy_content_due_to_tides", - "long_name": "Tendency of Ocean Potential Energy Content due to Tides", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "phyfe": { - "CMOR_varname": "phyfe", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", - "long_name": "Phytoplankton Iron Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "lwdn_sfc_clr": { - "CMOR_varname": "rldscsClim", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Surface Clear-Sky Longwave", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "pot_rho_0": { - "CMOR_varname": "rhopoto", - "standard_name": "sea_water_potential_density", - "long_name": "Sea Water Potential Density", - "modeling_realm": "ocean", - "units": "kg m-3" - }, - "ssalt_emis": { - "CMOR_varname": "emiss", - "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_due_to_emission", - "long_name": "Total Emission Rate of Seasalt", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "fbddtdip": { - "CMOR_varname": "fbddtdip", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Phosphate due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "tau_y": { - "CMOR_varname": "tauvo", - "standard_name": "surface_downward_y_stress", - "long_name": "Surface Downward Y Stress", - "modeling_realm": "ocean & ice", - "units": "N m-2" - }, - "ra": { - "CMOR_varname": "ra", - "standard_name": "plant_respiration_carbon_flux", - "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "clcalipso2_sat": { - "CMOR_varname": "clcalipso2", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", - "modeling_realm": "atmos", - "units": "%" - }, - "aiso_lap": { - "CMOR_varname": "difmxylo", - "standard_name": "ocean_momentum_xy_laplacian_diffusivity", - "long_name": "Ocean Momentum XY Laplacian Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "pbp": { - "CMOR_varname": "pbp", - "standard_name": "tendency_of_mole_concentration_of_phosphorus_in_sea_water_due_to_biological_production", - "long_name": "Biogenic Phosphorus Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "tot_h2o": { - "CMOR_varname": "h2o", - "standard_name": "mass_fraction_of_water_in_air", - "long_name": "Mass Fraction of Water", - "modeling_realm": "aerosol", - "units": "1" - }, - "tntc": { - "CMOR_varname": "tntc", - "standard_name": "tendency_of_air_temperature_due_to_convection", - "long_name": "Tendency of Air Temperature due to Moist Convection", - "modeling_realm": "atmos", - "units": "K s-1" - }, - "phydiat": { - "CMOR_varname": "phydiat", - "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "DMS_wet_dep": { - "CMOR_varname": "wetdms", - "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of DMS", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "ssalt_wet_dep": { - "CMOR_varname": "wetss", - "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Seasalt", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "Heat_PmE": { - "CMOR_varname": "hfrainds", - "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", - "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "ucomp": { - "CMOR_varname": "uaClim", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "sftgif": { - "CMOR_varname": "sftgif", - "standard_name": "land_ice_area_fraction", - "long_name": "Fraction of Grid Cell Covered with Glacier", - "modeling_realm": "land", - "units": "%" - }, - "vcomp": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "cProduct": { - "CMOR_varname": "cProduct", - "standard_name": "carbon_content_of_products_of_anthropogenic_land_use_change", - "long_name": "Carbon Mass in Products of Land Use Change", - "modeling_realm": "land", - "units": "kg m-2" - }, - "u_ref": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "modeling_realm": "aerosol", - "units": "m s-1" - }, - "intpbfe": { - "CMOR_varname": "intpbfe", - "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", - "long_name": "Iron Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "tnhusc": { - "CMOR_varname": "tnhusc", - "standard_name": "tendency_of_specific_humidity_due_to_convection", - "long_name": "Tendency of Specific Humidity due to Convection", - "modeling_realm": "atmos", - "units": "s-1" - }, - "mc": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "intpn2": { - "CMOR_varname": "intpn2", - "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", - "long_name": "Nitrogen Fixation Rate in Ocean", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "ctpisccp": { - "CMOR_varname": "pctisccp", - "standard_name": "air_pressure_at_cloud_top", - "long_name": "ISCCP Mean Cloud Top Pressure", - "modeling_realm": "atmos", - "units": "Pa" - }, - "calving_melt_heat": { - "CMOR_varname": "hfibthermds", - "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "intpdiaz": { - "CMOR_varname": "intpdiaz", - "standard_name": "net_primary_mole_productivity_of_carbon_by_diazotrophs", - "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "exparag": { - "CMOR_varname": "exparag", - "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Aragonite Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "fsn": { - "CMOR_varname": "fsn", - "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", - "long_name": "Surface Downward Net Flux of Nitrogen", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "dfe": { - "CMOR_varname": "dfe", - "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", - "long_name": "Dissolved Iron Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "cfadDbze94": { - "CMOR_varname": "cfadDbze94", - "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", - "long_name": "CloudSat Radar Reflectivity CFAD", - "modeling_realm": "atmos", - "units": "1" - }, - "dissic": { - "CMOR_varname": "dissic", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", - "long_name": "Dissolved Inorganic Carbon Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "clhcalipso_sat": { - "CMOR_varname": "clhcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO High Level Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "qo3v": { - "CMOR_varname": "tro3", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Mole Fraction of O3", - "modeling_realm": "atmos", - "units": "1e-9" - }, - "om_emis_col": { - "CMOR_varname": "emibb", - "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_emission", - "long_name": "Total Emission of Primary Aerosol from Biomass Burning", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "clwc": { - "CMOR_varname": "clwc", - "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Convective Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "1" - }, - "dust_ddep": { - "CMOR_varname": "drydust", - "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of Dust", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "deptho": { - "CMOR_varname": "deptho", - "standard_name": "sea_floor_depth_below_geoid", - "long_name": "Sea Floor Depth", - "modeling_realm": "ocean", - "units": "m" - }, - "tnhusscpbl2": { - "CMOR_varname": "tnhusscpbl", - "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", - "long_name": "Tendency of Specific Humidity due to Stratiform Cloud Condensation and Evaporation", - "modeling_realm": "atmos", - "units": "s-1" - }, - "fprec_melt_heat": { - "CMOR_varname": "hfsnthermds", - "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "o2": { - "CMOR_varname": "o2", - "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", - "long_name": "Dissolved Oxygen Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "z": { - "CMOR_varname": "zfull", - "standard_name": "height_above_reference_ellipsoid", - "long_name": "Altitude of Model Full-Levels", - "modeling_realm": "atmos", - "units": "m" - }, - "mrlsl": { - "CMOR_varname": "mrlsl", - "standard_name": "moisture_content_of_soil_layer", - "long_name": "Water Content of Soil Layer", - "modeling_realm": "land", - "units": "kg m-2" - }, - "tntmp": { - "CMOR_varname": "tntmp", - "standard_name": "tendency_of_air_temperature_due_to_model_physics", - "long_name": "Tendency of Air Temperature due to Diabatic Processes", - "modeling_realm": "atmos", - "units": "K s-1" - }, - "ta700": { - "CMOR_varname": "ta700", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "v_ref": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "modeling_realm": "aerosol", - "units": "m s-1" - }, - "rln": { - "CMOR_varname": "rln", - "standard_name": "net_upward_longwave_flux_in_air", - "long_name": "Net Upward Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "rh_ref_cmip": { - "CMOR_varname": "hurs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "clic": { - "CMOR_varname": "clic", - "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", - "long_name": "Mass Fraction of Convective Cloud Ice", - "modeling_realm": "atmos", - "units": "1" - }, - "cSoilSlow": { - "CMOR_varname": "cSoilSlow", - "standard_name": "slow_soil_pool_carbon_content", - "long_name": "Carbon Mass in Slow Soil Pool", - "modeling_realm": "land", - "units": "kg m-2" - }, - "tossq": { - "CMOR_varname": "tossq", - "standard_name": "square_of_sea_surface_temperature", - "long_name": "Square of Sea Surface Temperature", - "modeling_realm": "ocean", - "units": "K2" - }, - "clcalipso2": { - "CMOR_varname": "clcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "difvso": { - "CMOR_varname": "difvso", - "standard_name": "ocean_vertical_salt_diffusivity", - "long_name": "Ocean Vertical Salt Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "fddtdip": { - "CMOR_varname": "fddtdip", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", - "long_name": "Rate of Change of Net Dissolved Inorganic Phosphate", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "expc": { - "CMOR_varname": "expc", - "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Particulate Organic Carbon Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "albisccp": { - "CMOR_varname": "albisccp", - "standard_name": "cloud_albedo", - "long_name": "ISCCP Mean Cloud Albedo", - "modeling_realm": "atmos", - "units": "1" - }, - "fl_lsrain": { - "CMOR_varname": "prlsprof", - "standard_name": "large_scale_rainfall_flux", - "long_name": "Stratiform Rainfall Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "darag": { - "CMOR_varname": "darag", - "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_dissolution", - "long_name": "Aragonite Dissolution", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "cropFrac": { - "CMOR_varname": "cropFrac", - "standard_name": "area_fraction", - "long_name": "Crop Fraction", - "modeling_realm": "land", - "units": "%" - }, - "physi": { - "CMOR_varname": "physi", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", - "long_name": "Phytoplankton Silica Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "tot_cld_amt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "frc": { - "CMOR_varname": "frc", - "standard_name": "tendency_of_ocean_mole_content_of_carbon_due_to_sedimentation", - "long_name": "Downward Carbon Flux at Ocean Bottom", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "bddtalk": { - "CMOR_varname": "bddtalk", - "standard_name": "tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", - "long_name": "Rate of Change of Alkalinity due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "cfadLidarsr532_sat": { - "CMOR_varname": "cfadLidarsr532", - "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", - "long_name": "CALIPSO Scattering Ratio", - "modeling_realm": "atmos", - "units": "1" - }, - "sphum": { - "CMOR_varname": "husClim", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "modeling_realm": "atmos", - "units": "1" - }, - "cllcalipso_sat": { - "CMOR_varname": "cllcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Low Level Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "rh_ref_cmip_max": { - "CMOR_varname": "rhsmax", - "standard_name": "relative_humidity", - "long_name": "Surface Daily Maximum Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "hfls": { - "CMOR_varname": "hflsClim", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "t_surf": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "modeling_realm": "land", - "units": "K" - }, - "ccice": { - "CMOR_varname": "clic", - "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", - "long_name": "Mass Fraction of Convective Cloud Ice", - "modeling_realm": "atmos", - "units": "1" - }, - "thkcello": { - "CMOR_varname": "thkcello", - "standard_name": "cell_thickness", - "long_name": "Ocean Model Cell Thickness", - "modeling_realm": "ocean", - "units": "m" - }, - "cl": { - "CMOR_varname": "cl", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Cloud Area Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "WVP": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_water_vapor_content", - "long_name": "Water Vapor Path", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "rh_cmip": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "sconcss": { - "CMOR_varname": "sconcss", - "standard_name": "mass_concentration_of_seasalt_dry_aerosol_in_air", - "long_name": "Surface Concentration of Seasalt", - "modeling_realm": "atmos", - "units": "kg m-3" - }, - "zos": { - "CMOR_varname": "zos", - "standard_name": "sea_surface_height_above_geoid", - "long_name": "Sea Surface Height Above Geoid", - "modeling_realm": "ocean", - "units": "m" - }, - "pon": { - "CMOR_varname": "pon", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", - "long_name": "Particulate Organic Nitrogen Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "rsu": { - "CMOR_varname": "rsu", - "standard_name": "upwelling_shortwave_flux_in_air", - "long_name": "Upwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "chlpico": { - "CMOR_varname": "chlpico", - "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water at Surface", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "sfc_salt_flux_ice": { - "CMOR_varname": "sfdsi", - "standard_name": "downward_sea_ice_basal_salt_flux", - "long_name": "Downward Sea Ice Basal Salt Flux", - "modeling_realm": "ocean & seaIce", - "units": "kg m-2 s-1" - }, - "po4": { - "CMOR_varname": "po4", - "standard_name": "mole_concentration_of_phosphate_in_sea_water", - "long_name": "Dissolved Phosphate Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "wt": { - "CMOR_varname": "wo", - "standard_name": "upward_sea_water_velocity", - "long_name": "Upward Sea Water Velocity", - "modeling_realm": "ocean", - "units": "m s-1" - }, - "snoToice": { - "CMOR_varname": "snoToIce", - "standard_name": "tendency_of_sea_ice_amount_due_to_snow_conversion", - "long_name": "Snow-Ice Formation Rate", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_downward_sensible_heat_flux", - "long_name": "Surface Downward Sensible Heat Flux", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "fescav": { - "CMOR_varname": "fescav", - "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_scavenging_by_inorganic_particles", - "long_name": "Nonbiogenic Iron Scavenging", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "strairx": { - "CMOR_varname": "strairx", - "standard_name": "surface_downward_x_stress", - "long_name": "Eastward atmospheric stress on sea ice", - "modeling_realm": "ocean & ice", - "units": "N m-2" - }, - "SO2_ddep_cmip": { - "CMOR_varname": "dryso2", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of SO2", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "snw": { - "CMOR_varname": "snw", - "standard_name": "surface_snow_amount", - "long_name": "Surface Snow Amount", - "modeling_realm": "land_ice", - "units": "kg m-2" - }, - "NH3_ddep_cmip": { - "CMOR_varname": "drynh3", - "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of NH3", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "pp": { - "CMOR_varname": "pp", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", - "long_name": "Primary Carbon Production by Phytoplankton", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "cldnvi": { - "CMOR_varname": "cldnvi", - "standard_name": "atmosphere_number_content_of_cloud_droplets", - "long_name": "Column Integrated Cloud Droplet Number", - "modeling_realm": "atmos", - "units": "m-2" - }, - "water": { - "CMOR_varname": "mrso", - "standard_name": "soil_moisture_content", - "long_name": "Total Soil Moisture Content", - "modeling_realm": "land", - "units": "kg m-2" - }, - "swup_toa_clr": { - "CMOR_varname": "rsutcsClim", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "clis": { - "CMOR_varname": "clis", - "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Ice", - "modeling_realm": "atmos", - "units": "1" - }, - "hfnorthdiff": { - "CMOR_varname": "hfnorthdiff", - "standard_name": "northward_ocean_heat_transport_due_to_diffusion", - "long_name": "Northward Ocean Heat Transport due to Diffusion", - "modeling_realm": "ocean", - "units": "W" - }, - "omlmax": { - "CMOR_varname": "omlmax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", - "long_name": "Monthly Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "modeling_realm": "ocean", - "units": "m" - }, - "pbsi": { - "CMOR_varname": "pbsi", - "standard_name": "tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production", - "long_name": "Biogenic Silica Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "tz_trans_sq": { - "CMOR_varname": "wmosq", - "standard_name": "square_of_upward_ocean_mass_transport", - "long_name": "Square of Upward Ocean Mass Transport", - "modeling_realm": "ocean", - "units": "kg2 s-2" - }, - "dem_c": { - "CMOR_varname": "demc", - "standard_name": "convective_cloud_longwave_emissivity", - "long_name": "Convective Cloud Emissivity", - "modeling_realm": "atmos", - "units": "1" - }, - "tauvo": { - "CMOR_varname": "tauvo", - "standard_name": "surface_downward_y_stress", - "long_name": "Surface Downward Y Stress", - "modeling_realm": "ocean", - "units": "N m-2" - }, - "u_ref": { - "CMOR_varname": "uasClim", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "modeling_realm": "aerosol", - "units": "m s-1" - }, - "mld_sq": { - "CMOR_varname": "mlotstsq", - "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", - "modeling_realm": "ocean", - "units": "m2" - }, - "reff_lsclice": { - "CMOR_varname": "reffclis", - "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", - "modeling_realm": "atmos", - "units": "m" - }, - "cld_amt_2d": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "mfo": { - "CMOR_varname": "mfo", - "standard_name": "sea_water_transport_across_line", - "long_name": "Sea Water Transport", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "clisccp": { - "CMOR_varname": "clisccp", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "ISCCP Cloud Area Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "si": { - "CMOR_varname": "si", - "standard_name": "mole_concentration_of_silicate_in_sea_water", - "long_name": "Dissolved Silicate Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "bfe": { - "CMOR_varname": "bfe", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", - "long_name": "Particulate Biogenic Iron Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "pbfe": { - "CMOR_varname": "pbfe", - "standard_name": "tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production", - "long_name": "Biogenic Iron Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "phyn": { - "CMOR_varname": "phyn", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", - "long_name": "Phytoplankton Nitrogen Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "bsi": { - "CMOR_varname": "bsi", - "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", - "long_name": "Particulate Biogenic Silica Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "rsdssi": { - "CMOR_varname": "rsdssi", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Downward Shortwave over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "W m-2" - }, - "rho_dzt": { - "CMOR_varname": "masscello", - "standard_name": "sea_water_mass_per_unit_area", - "long_name": "Sea Water Mass Per Unit Area", - "modeling_realm": "ocean", - "units": "kg m-2" - }, - "dtau_c": { - "CMOR_varname": "dtauc", - "standard_name": "atmosphere_optical_thickness_due_to_convective_cloud", - "long_name": "Convective Cloud Optical Depth", - "modeling_realm": "atmos", - "units": "1" - }, - "sfc_hflux_from_runoff": { - "CMOR_varname": "hfrunoffds", - "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", - "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "eviscu": { - "CMOR_varname": "eviscu", - "standard_name": "atmosphere_momentum_diffusivity", - "long_name": "Eddy Viscosity Coefficients for Momentum", - "modeling_realm": "atmos", - "units": "m2 s-1" - }, - "grFrazil": { - "CMOR_varname": "grFrazil", - "standard_name": "tendency_of_sea_ice_amount_due_to_frazil_ice_accumulation_in_leads", - "long_name": "Frazil Sea Ice Growth (Leads) Rate", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "zossga": { - "CMOR_varname": "zossga", - "standard_name": "global_average_steric_sea_level_change", - "long_name": "Global Average Steric Sea Level Change", - "modeling_realm": "ocean", - "units": "m" - }, - "swup_sfc": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "rsdcs": { - "CMOR_varname": "rsdcs", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "msftyyzba": { - "CMOR_varname": "msftyyzba", - "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_bolus_advection", - "long_name": "Ocean Y Overturning Mass Streamfunction due to Bolus Advection", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "tsnint": { - "CMOR_varname": "tsnint", - "standard_name": "temperature_at_interface_between_sea_ice_and_snow", - "long_name": "Temperature at Interface Between Sea Ice and Snow", - "modeling_realm": "ocean & ice", - "units": "K" - }, - "intpbp": { - "CMOR_varname": "intpbp", - "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", - "long_name": "Phosphorus Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1 " - }, - "pme_river": { - "CMOR_varname": "wfo", - "standard_name": "water_flux_into_sea_water", - "long_name": "Water Flux Into Sea Water", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "concso2": { - "CMOR_varname": "concso2", - "standard_name": "mole_fraction_of_sulfur_dioxide_in_air", - "long_name": "Mole Fraction of SO2", - "modeling_realm": "aerosol", - "units": "1" - }, - "phyfe": { - "CMOR_varname": "phyfe", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", - "long_name": "Phytoplankton Iron Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "fbddtdic": { - "CMOR_varname": "fbddtdic", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "mrsofc": { - "CMOR_varname": "mrsofc", - "standard_name": "soil_moisture_content_at_field_capacity", - "long_name": "Capacity of Soil to Store Water", - "modeling_realm": "land", - "units": "kg m-2" - }, - "concpoa": { - "CMOR_varname": "concpoa", - "standard_name": "mass_concentration_of_primary_particulate_organic_matter_dry_aerosol_in_air", - "long_name": "Concentration of Dry Aerosol Primary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "mrso": { - "CMOR_varname": "mrsoClim", - "standard_name": "soil_moisture_content", - "long_name": "Total Soil Moisture Content", - "modeling_realm": "land", - "units": "kg m-2" - }, - "sfc_po45": { - "CMOR_varname": "po4", - "standard_name": "??", - "long_name": "phosphate", - "modeling_realm": "atmos", - "units": "mol P m-3" - }, - "cfadDbze94_sat": { - "CMOR_varname": "cfadDbze94", - "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", - "long_name": "CloudSat Radar Reflectivity CFAD", - "modeling_realm": "atmos", - "units": "1" - }, - "intpcalcite": { - "CMOR_varname": "intpcalcite", - "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", - "long_name": "Calcite Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "Surface Snow Area Fraction", - "modeling_realm": "ocean & ice", - "units": "%" - }, - "clcalipso2": { - "CMOR_varname": "clcalipso2", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", - "modeling_realm": "atmos", - "units": "%" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "downwelling_shortwave_flux_in_sea_water", - "long_name": "Downwelling Shortwave Radiation in Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "volo": { - "CMOR_varname": "volo", - "standard_name": "sea_water_volume", - "long_name": "Sea Water Volume", - "modeling_realm": "ocean", - "units": "m3" - }, - "cdnc": { - "CMOR_varname": "cdnc", - "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air", - "long_name": "Cloud Droplet Number Concentration", - "modeling_realm": "aerosol", - "units": "m-3" - }, - "epcalc100": { - "CMOR_varname": "epcalc100", - "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Downward Flux of Calcite", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "si": { - "CMOR_varname": "si", - "standard_name": "mole_concentration_of_silicate_in_sea_water", - "long_name": "Dissolved Silicate Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "o2": { - "CMOR_varname": "o2", - "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", - "long_name": "Dissolved Oxygen Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "reff_ccclliq": { - "CMOR_varname": "reffclwc", - "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "m" - }, - "sfc_hflux_from_water_evap": { - "CMOR_varname": "hfevapds", - "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", - "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "tasmin": { - "CMOR_varname": "tasmin", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "rh_ref": { - "CMOR_varname": "rh_ref", - "standard_name": "relative_humidity", - "long_name": "relative humidity at 2 m", - "modeling_realm": "atmos", - "units": "percent" - }, - "wfo": { - "CMOR_varname": "wfo", - "standard_name": "water_flux_into_sea_water", - "long_name": "Water Flux Into Sea Water", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "conv_freq": { - "CMOR_varname": "ciClim", - "standard_name": "convection_time_fraction", - "long_name": "Fraction of Time Convection Occurs", - "modeling_realm": "atmos", - "units": "1" - }, - "hfgeou": { - "CMOR_varname": "hfgeou", - "standard_name": "upward_geothermal_heat_flux_at_sea_floor", - "long_name": "Upward Geothermal Heat Flux at Sea Floor", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "detoc": { - "CMOR_varname": "detoc", - "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", - "long_name": "Detrital Organic Carbon Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "graz": { - "CMOR_varname": "graz", - "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_grazing_of_phytoplankton", - "long_name": "Total Grazing of Phytoplankton by Zooplankton", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "omldamax_mon": { - "CMOR_varname": "omldamax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", - "long_name": "Mean Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "modeling_realm": "ocean", - "units": "m" - }, - "concbc": { - "CMOR_varname": "concbc", - "standard_name": "mass_concentration_of_black_carbon_dry_aerosol_in_air", - "long_name": "Concentration of Black Carbon Aerosol", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "dpocdtpico": { - "CMOR_varname": "dpocdtpico", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", - "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Picophytoplankton", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "tntr": { - "CMOR_varname": "tntr", - "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", - "long_name": "Tendency of Air Temperature due to Radiative Heating", - "modeling_realm": "atmos", - "units": "K s-1" - }, - "eparag100": { - "CMOR_varname": "eparag100", - "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Downward Flux of Aragonite", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "SOA_ddep": { - "CMOR_varname": "drysoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of Dry Aerosol Secondary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "mld": { - "CMOR_varname": "mlotst", - "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", - "modeling_realm": "ocean", - "units": "m" - }, - "sea_level": { - "CMOR_varname": "zos", - "standard_name": "sea_surface_height_above_geoid", - "long_name": "Sea Surface Height Above Geoid", - "modeling_realm": "ocean", - "units": "m" - }, - "gridspec": { - "CMOR_varname": "gridspec", - "standard_name": "[gridspec_seaIce]", - "long_name": "Gridspec", - "modeling_realm": "ocean & ice", - "units": "" - }, - "diff_t": { - "CMOR_varname": "edt", - "standard_name": "atmosphere_heat_diffusivity", - "long_name": "Eddy Diffusivity Coefficient for Temperature Variable", - "modeling_realm": "atmos", - "units": "m2 s-1" - }, - "diff_cbt_tides": { - "CMOR_varname": "difvtrto", - "standard_name": "ocean_vertical_tracer_diffusivity_due_to_tides", - "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "temp_global_ave": { - "CMOR_varname": "thetaoga", - "standard_name": "sea_water_potential_temperature", - "long_name": "Global Average Sea Water Potential Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "swup_toa": { - "CMOR_varname": "rsut4co2", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "prec_conv": { - "CMOR_varname": "prcClim", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "msftyrhozba": { - "CMOR_varname": "msftyrhozba", - "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_bolus_advection", - "long_name": "Ocean Y Overturning Mass Streamfunction due to Bolus Advection", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "SWDN": { - "CMOR_varname": "rsds", - "standard_name": "downwelling_shortwave_flux_in_sea_water", - "long_name": "Downwelling Shortwave Radiation in Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "clws": { - "CMOR_varname": "clws", - "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "1" - }, - "sconcso4": { - "CMOR_varname": "sconcso4", - "standard_name": "mass_concentration_of_sulfate_dry_aerosol_in_air", - "long_name": "Surface Concentration of SO4", - "modeling_realm": "atmos", - "units": "kg m-3" - }, - "msftmyz": { - "CMOR_varname": "msftmyz", - "standard_name": "ocean_meridional_overturning_mass_streamfunction", - "long_name": "Ocean Meridional Overturning Mass Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "vmo": { - "CMOR_varname": "vmo", - "standard_name": "ocean_mass_y_transport", - "long_name": "Ocean Mass Y Transport", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "mc_half": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "dpo2": { - "CMOR_varname": "dpo2", - "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Delta PO2", - "modeling_realm": "ocean_biochem", - "units": "Pa" - }, - "hflssi": { - "CMOR_varname": "hflssi", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "W m-2" - }, - "t_ref": { - "CMOR_varname": "tasClim", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "power_diss": { - "CMOR_varname": "tnpeo", - "standard_name": "tendency_of_ocean_potential_energy_content", - "long_name": "Tendency of Ocean Potential Energy Content", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "olr_clr": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "rootd": { - "CMOR_varname": "rootd", - "standard_name": "soil_moisture_content_at_field_capacity", - "long_name": "Capacity of Soil to Store Water", - "modeling_realm": "land", - "units": "kg m-2" - }, - "tauv": { - "CMOR_varname": "tauvClim", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "modeling_realm": "atmos", - "units": "Pa" - }, - "cRoot": { - "CMOR_varname": "cRoot", - "standard_name": "root_carbon_content", - "long_name": "Carbon Mass in Roots", - "modeling_realm": "land", - "units": "kg m-2" - }, - "mrros": { - "CMOR_varname": "mrros", - "standard_name": "surface_runoff_flux", - "long_name": "Surface Runoff", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "snow_tot": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "pnew": { - "CMOR_varname": "pnew", - "standard_name": "tendency_of_mole_concentration_of_organic_carbon_in_sea_water_due_to_net_new_primary_production", - "long_name": "Primary Carbon Production by Phytoplankton Based on NO3 Alone", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "msftmrhoz": { - "CMOR_varname": "msftmrhoz", - "standard_name": "ocean_meridional_overturning_mass_streamfunction", - "long_name": "Ocean Meridional Overturning Mass Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "detoc": { - "CMOR_varname": "detoc", - "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", - "long_name": "Detrital Organic Carbon Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "masso": { - "CMOR_varname": "masso", - "standard_name": "sea_water_mass", - "long_name": "Sea Water Mass", - "modeling_realm": "ocean", - "units": "kg" - }, - "dtau_s": { - "CMOR_varname": "dtaus", - "standard_name": "atmosphere_optical_thickness_due_to_stratiform_cloud", - "long_name": "Stratiform Cloud Optical Depth", - "modeling_realm": "atmos", - "units": "1" - }, - "epn100": { - "CMOR_varname": "epn100", - "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", - "long_name": "Downward Flux of Particulate Organic Nitrogen", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "psiu": { - "CMOR_varname": "msftbarot", - "standard_name": "ocean_barotropic_mass_streamfunction", - "long_name": "Ocean Barotropic Mass Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "fbddtdin": { - "CMOR_varname": "fbddtdin", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "diftrelo": { - "CMOR_varname": "diftrelo", - "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", - "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "SH": { - "CMOR_varname": "hfss", - "standard_name": "surface_downward_sensible_heat_flux", - "long_name": "Surface Downward Sensible Heat Flux", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "lsice": { - "CMOR_varname": "clis", - "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Ice", - "modeling_realm": "atmos", - "units": "1" - }, - "evisct": { - "CMOR_varname": "evisct", - "standard_name": "atmosphere_heat_diffusivity", - "long_name": "Eddy Diffusivity Coefficients for Temperature", - "modeling_realm": "atmos", - "units": "m2 s-1" - }, - "chlmisc": { - "CMOR_varname": "chlmisc", - "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Other Phytoplankton Chlorophyll Mass Concentration", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "fLuc": { - "CMOR_varname": "fLuc", - "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", - "long_name": "Net Carbon Mass Flux into Atmosphere due to Land Use Change", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "swup_toa": { - "CMOR_varname": "rsutClim", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "swdn_sfc_clr": { - "CMOR_varname": "rsdscs", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "tsice": { - "CMOR_varname": "tsice", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature of Sea Ice", - "modeling_realm": "ocean & ice", - "units": "K" - }, - "cldncl": { - "CMOR_varname": "cldncl", - "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", - "long_name": "Cloud Droplet Number Concentration of Cloud Tops", - "modeling_realm": "atmos", - "units": "m-3" - }, - "soga": { - "CMOR_varname": "soga", - "standard_name": "sea_water_salinity", - "long_name": "Global Mean Sea Water Salinity", - "modeling_realm": "ocean", - "units": "psu" - }, - "conv_cld_base": { - "CMOR_varname": "ccbClim", - "standard_name": "air_pressure_at_convective_cloud_base", - "long_name": "Air Pressure at Convective Cloud Base", - "modeling_realm": "atmos", - "units": "Pa" - }, - "tclisccp": { - "CMOR_varname": "cltisccp", - "standard_name": "cloud_area_fraction", - "long_name": "ISCCP Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "tran": { - "CMOR_varname": "tran", - "standard_name": "transpiration_flux", - "long_name": "Transpiration", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "nh4": { - "CMOR_varname": "nh4", - "standard_name": "mole_concentration_of_ammonium_in_sea_water", - "long_name": "Dissolved Ammonium Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "ph": { - "CMOR_varname": "ph", - "standard_name": "sea_water_ph_reported_on_total_scale", - "long_name": "pH at Surface", - "modeling_realm": "ocean_biochem", - "units": "1" - }, - "rh": { - "CMOR_varname": "rh", - "standard_name": "heterotrophic_respiration_carbon_flux", - "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "msftyyz": { - "CMOR_varname": "msftyyz", - "standard_name": "ocean_y_overturning_mass_streamfunction", - "long_name": "Ocean Y Overturning Mass Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "SSH": { - "CMOR_varname": "zos", - "standard_name": "sea_surface_height_above_geoid", - "long_name": "Sea Surface Height Above Geoid", - "modeling_realm": "ocean", - "units": "m" - }, - "ice_calving": { - "CMOR_varname": "ficeberg", - "standard_name": "water_flux_into_sea_water_from_icebergs", - "long_name": "Water Flux into Sea Water From Icebergs", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "cfc_11": { - "CMOR_varname": "cfc11", - "standard_name": "moles_per_unit_mass_of_cfc11_in_sea_water", - "long_name": "Moles Per Unit Mass of CFC-11 in Sea Water", - "modeling_realm": "ocean", - "units": "mol kg-1" - }, - "pfull_cmip": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Full-Levels", - "modeling_realm": "atmos", - "units": "Pa" - }, - "lwdn_sfc": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "cllcalipso": { - "CMOR_varname": "cllcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Low Level Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "omg500": { - "CMOR_varname": "wap500", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "modeling_realm": "atmos", - "units": "Pa s-1" - }, - "usi": { - "CMOR_varname": "usi", - "standard_name": "eastward_sea_ice_velocity", - "long_name": "Eastward Sea Ice Velocity", - "modeling_realm": "seaIce & ocean", - "units": "m s-1" - }, - "tntscpbl2": { - "CMOR_varname": "tntscpbl", - "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", - "long_name": "Tendency of Air Temperature due to Stratiform Cloud Condensation and Evaporation", - "modeling_realm": "atmos", - "units": "K s-1" - }, - "cVeg": { - "CMOR_varname": "cVeg", - "standard_name": "vegetation_carbon_content", - "long_name": "Carbon Mass in Vegetation", - "modeling_realm": "land", - "units": "kg m-2" - }, - "dispkevfo": { - "CMOR_varname": "dispkevfo", - "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_vertical_friction", - "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to Vertical Friction", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "mlotst": { - "CMOR_varname": "mlotst", - "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", - "modeling_realm": "ocean", - "units": "m" - }, - "bddtdisi": { - "CMOR_varname": "bddtdisi", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicate_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "cSoilFast": { - "CMOR_varname": "cSoilFast", - "standard_name": "fast_soil_pool_carbon_content", - "long_name": "Carbon Mass in Fast Soil Pool", - "modeling_realm": "land", - "units": "kg m-2" - }, - "aer_ab_c_vs": { - "CMOR_varname": "abs550aer", - "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol", - "long_name": "Ambient Aerosol Absorption Optical Thickness at 550 nm", - "modeling_realm": "aerosol", - "units": "1" - }, - "bsi": { - "CMOR_varname": "bsi", - "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", - "long_name": "Particulate Biogenic Silica Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "power_diss_back": { - "CMOR_varname": "tnpeotb", - "standard_name": "tendency_of_ocean_potential_energy_content_due_to_background", - "long_name": "Tendency of Ocean Potential Energy Content due to Background", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "cli": { - "CMOR_varname": "cliClim", - "standard_name": "mass_fraction_of_cloud_ice_in_air", - "long_name": "Mass Fraction of Cloud Ice", - "modeling_realm": "atmos", - "units": "1" - }, - "talk": { - "CMOR_varname": "talk", - "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Total Alkalinity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "sconcsoa": { - "CMOR_varname": "sconcsoa", - "standard_name": "mass_concentration_of_secondary_particulate_organic_matter_dry_aerosol_in_air", - "long_name": "Surface Concentration of Dry Aerosol Secondary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "phyp": { - "CMOR_varname": "phyp", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", - "long_name": "Phytoplankton Phosphorus Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "phydiat": { - "CMOR_varname": "phydiat", - "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "mrsos": { - "CMOR_varname": "mrsosClim", - "standard_name": "moisture_content_of_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column", - "modeling_realm": "land", - "units": "kg m-2" - }, - "NH3_emis_cmip2": { - "CMOR_varname": "eminh3", - "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_emission", - "long_name": "Total Emission Rate of NH3", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "VI": { - "CMOR_varname": "vsi", - "standard_name": "northward_sea_ice_velocity", - "long_name": "Northward Sea Ice Velocity", - "modeling_realm": "seaIce & ocean", - "units": "m s-1" - }, - "t_ref_max": { - "CMOR_varname": "tasmax", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "runoff": { - "CMOR_varname": "friver", - "standard_name": "water_flux_into_sea_water_from_rivers", - "long_name": "Water Flux into Sea Water From Rivers", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "soil_T": { - "CMOR_varname": "tsl", - "standard_name": "soil_temperature", - "long_name": "Temperature of Soil", - "modeling_realm": "land", - "units": "K" - }, - "hght": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "modeling_realm": "atmos", - "units": "m" - }, - "sss": { - "CMOR_varname": "sos", - "standard_name": "sea_surface_salinity", - "long_name": "Sea Surface Salinity", - "modeling_realm": "ocean", - "units": "psu" - }, - "msftbarot": { - "CMOR_varname": "msftbarot", - "standard_name": "ocean_barotropic_mass_streamfunction", - "long_name": "Ocean Barotropic Mass Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "intppico": { - "CMOR_varname": "intppico", - "standard_name": "net_primary_mole_productivity_of_carbon_by_picophytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "SOA_col": { - "CMOR_varname": "loadsoa", - "standard_name": "atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol", - "long_name": "Load of Dry Aerosol Secondary Organic Matter", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "aer_ex_c_870": { - "CMOR_varname": "od870aer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol", - "long_name": "Ambient Aerosol Opitical Thickness at 870 nm", - "modeling_realm": "aerosol", - "units": "1" - }, - "fprec": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux where Ice Free Ocean over Sea", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "snm": { - "CMOR_varname": "snmClim", - "standard_name": "surface_snow_melt_flux", - "long_name": "Surface Snow Melt", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "ridgice": { - "CMOR_varname": "ridgice", - "standard_name": "tendency_of_sea_ice_area_fraction_due_to_ridging", - "long_name": "Sea Ice Ridging Rate", - "modeling_realm": "ocean & ice", - "units": "s-1" - }, - "rh_ref_cmip": { - "CMOR_varname": "hursClim", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "temp": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "intdic": { - "CMOR_varname": "intdic", - "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", - "long_name": "Dissolved Inorganic Carbon Content", - "modeling_realm": "ocean_biochem", - "units": "kg m-2 " - }, - "om_ddep": { - "CMOR_varname": "drypoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of Dry Aerosol Primary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "physi": { - "CMOR_varname": "physi", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", - "long_name": "Phytoplankton Silica Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "fHarvest": { - "CMOR_varname": "fHarvest", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting", - "long_name": "Carbon Mass Flux into Atmosphere due to Crop Harvesting", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "expn": { - "CMOR_varname": "expn", - "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", - "long_name": "Sinking Particulate Organic Nitrogen Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "dcalc": { - "CMOR_varname": "dcalc", - "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_dissolution", - "long_name": "Calcite Dissolution", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "olr": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "cfc11": { - "CMOR_varname": "cfc11", - "standard_name": "moles_of_cfc11_per_unit_mass_in_sea_water", - "long_name": "Moles Per Unit Mass of CFC-11 in Sea Water", - "modeling_realm": "ocean", - "units": "mol kg-1" - }, - "vhgm_rho": { - "CMOR_varname": "msftyyzba", - "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_bolus_advection", - "long_name": "Ocean Y Overturning Mass Streamfunction due to Bolus Advection", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "tasmax": { - "CMOR_varname": "tasmaxClim", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "concdms": { - "CMOR_varname": "concdms", - "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", - "long_name": "Mole Fraction of DMS", - "modeling_realm": "aerosol", - "units": "1" - }, - "diff_cbt_back": { - "CMOR_varname": "difvtrbo", - "standard_name": "ocean_vertical_tracer_diffusivity_due_to_background", - "long_name": "Ocean Vertical Tracer Diffusivity due to Background", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "pbo": { - "CMOR_varname": "pbo", - "standard_name": "sea_water_pressure_at_sea_floor", - "long_name": "Sea Water Pressure at Sea floor", - "modeling_realm": "ocean", - "units": "dbar" - }, - "concoa": { - "CMOR_varname": "concoa", - "standard_name": "mass_concentration_of_particulate_organic_matter_dry_aerosol_in_air", - "long_name": "Concentration of Dry Aerosol Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "diff_m": { - "CMOR_varname": "evu", - "standard_name": "atmosphere_momentum_diffusivity", - "long_name": "Eddy Viscosity Coefficient for Momentum Variables", - "modeling_realm": "atmos", - "units": "m2 s-1" - }, - "dissic": { - "CMOR_varname": "dissic", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", - "long_name": "Dissolved Inorganic Carbon Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "t_ref_min": { - "CMOR_varname": "tasmin", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "fddtdic": { - "CMOR_varname": "fddtdic", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", - "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "cli": { - "CMOR_varname": "cli", - "standard_name": "mass_fraction_of_cloud_ice_in_air", - "long_name": "Mass Fraction of Cloud Ice", - "modeling_realm": "atmos", - "units": "1" - }, - "intpmisc": { - "CMOR_varname": "intpmisc", - "standard_name": "net_primary_mole_productivity_of_carbon_by_miscellaneous_phytoplankton", - "long_name": "Primary Organic Carbon Production by Other Phytoplankton", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "lsliq": { - "CMOR_varname": "clws", - "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "1" - }, - "cltcalipso_sat": { - "CMOR_varname": "cltcalipso", - "standard_name": "cloud_area_fraction", - "long_name": "CALIPSO Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "tnhus2": { - "CMOR_varname": "tnhus", - "standard_name": "tendency_of_specific_humidity", - "long_name": "Tendency of Specific Humidity", - "modeling_realm": "atmos", - "units": "s-1" - }, - "tnhusa": { - "CMOR_varname": "tnhusa", - "standard_name": "tendency_of_specific_humidity_due_to_advection", - "long_name": "Tendency of Specific Humidity due to Advection", - "modeling_realm": "atmos", - "units": "s-1" - }, - "sconcnh4": { - "CMOR_varname": "sconcnh4", - "standard_name": "mass_concentration_of_ammonium_dry_aerosol_in_air", - "long_name": "Surface Concentration of NH4", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "hur": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "snw": { - "CMOR_varname": "snwClim", - "standard_name": "surface_snow_amount", - "long_name": "Surface Snow Amount", - "modeling_realm": "land_ice", - "units": "kg m-2" - }, - "swup_sfc": { - "CMOR_varname": "rsusClim", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "simpleDMS_emis_cmip": { - "CMOR_varname": "emidms", - "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_emission", - "long_name": "Total Emission Rate of DMS", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "temp": { - "CMOR_varname": "thetao", - "standard_name": "sea_water_potential_temperature", - "long_name": "Sea Water Potential Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "t_surf": { - "CMOR_varname": "tsClim", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "modeling_realm": "land", - "units": "K" - }, - "mrlso": { - "CMOR_varname": "mrfsoClim", - "standard_name": "soil_frozen_water_content", - "long_name": "Soil Frozen Water Content", - "modeling_realm": "land & landIce", - "units": "kg m-2" - }, - "snow_tot": { - "CMOR_varname": "prsnClim", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "netrad_1_Pa": { - "CMOR_varname": "rtmt", - "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", - "long_name": "Net Downward Flux at Top of Model", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "pcalc": { - "CMOR_varname": "pcalc", - "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_biological_production", - "long_name": "Calcite Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "chldiat": { - "CMOR_varname": "chldiat", - "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", - "long_name": "Diatom Chlorophyll Mass Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_downward_latent_heat_flux", - "long_name": "Surface Downward Latent Heat Flux", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "sconcno3": { - "CMOR_varname": "sconcno3", - "standard_name": "mass_concentration_of_nitrate_dry_aerosol_in_air", - "long_name": "Surface Concentration of NO3", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "t_ref": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature Where Land", - "modeling_realm": "land", - "units": "K" - }, - "cSoil": { - "CMOR_varname": "cSoil", - "standard_name": "soil_carbon_content", - "long_name": "Carbon in Soil Pool", - "modeling_realm": "land", - "units": "kg m-2" - }, - "rsussi": { - "CMOR_varname": "rsussi", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Upward Shortwave over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "W m-2" - }, - "fddtalk": { - "CMOR_varname": "fddtalk", - "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Rate of Change of Alkalinity", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "bddtdip": { - "CMOR_varname": "bddtdip", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphate_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Phosphate due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "modeling_realm": "atmos", - "units": "1" - }, - "parasol_refl_sat": { - "CMOR_varname": "parasolRefl", - "standard_name": "toa_bidirectional_reflectance", - "long_name": "PARASOL Reflectance", - "modeling_realm": "atmos", - "units": "1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "fl_ccsnow": { - "CMOR_varname": "prsnc", - "standard_name": "convective_snowfall_flux", - "long_name": "Convective Snowfall Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "zostoga": { - "CMOR_varname": "zostoga", - "standard_name": "global_average_thermosteric_sea_level_change", - "long_name": "Global Average Thermosteric Sea Level Change", - "modeling_realm": "ocean", - "units": "m" - }, - "evap": { - "CMOR_varname": "evs", - "standard_name": "water_evaporation_flux", - "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "concdust": { - "CMOR_varname": "concdust", - "standard_name": "mass_concentration_ of_dust_dry_aerosol_in_air", - "long_name": "Concentration of Dust", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "strairy": { - "CMOR_varname": "strairy", - "standard_name": "surface_downward_y_stress", - "long_name": "Northward Atmospheric Stress On Sea Ice", - "modeling_realm": "ocean & ice", - "units": "N m-2" - }, - "parag": { - "CMOR_varname": "parag", - "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_biological_production", - "long_name": "Aragonite Production", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "soil_T": { - "CMOR_varname": "tslClim", - "standard_name": "soil_temperature", - "long_name": "Temperature of Soil", - "modeling_realm": "land", - "units": "K" - }, - "fgco2": { - "CMOR_varname": "fgco2", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", - "long_name": "Surface Downward CO2 Flux", - "modeling_realm": "ocean_biochem", - "units": "kg m-2 s-1" - }, - "tau_x": { - "CMOR_varname": "tauu", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "modeling_realm": "atmos", - "units": "Pa" - }, - "tnta": { - "CMOR_varname": "tnta", - "standard_name": "tendency_of_air_temperature_due_to_advection", - "long_name": "Tendency of Air Temperature due to Advection", - "modeling_realm": "atmos", - "units": "K s-1" - }, - "zooc": { - "CMOR_varname": "zooc", - "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Zooplankton Carbon Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "hfydiff": { - "CMOR_varname": "hfydiff", - "standard_name": "ocean_heat_y_transport_due_to_diffusion", - "long_name": "Ocean Heat Y Transport due to Diffussion", - "modeling_realm": "ocean", - "units": "W" - }, - "netrad_1_Pa": { - "CMOR_varname": "rtmtClim", - "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", - "long_name": "Net Downward Flux at Top of Model", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "baresoilFrac": { - "CMOR_varname": "baresoilFrac", - "standard_name": "area_fraction", - "long_name": "Bare Soil Fraction", - "modeling_realm": "land", - "units": "%" - }, - "phypico": { - "CMOR_varname": "phypico", - "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "ucomp": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "SOA_chem_col": { - "CMOR_varname": "chepsoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_due_to_net_chemical_production", - "long_name": "Production Rate of Dry Aerosol Secondary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "u": { - "CMOR_varname": "uo", - "standard_name": "sea_water_x_velocity", - "long_name": "Sea Water X Velocity", - "modeling_realm": "ocean", - "units": "m s-1" - }, - "diftrblo": { - "CMOR_varname": "diftrblo", - "standard_name": "ocean_tracer_bolus_laplacian_diffusivity", - "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "tasmax": { - "CMOR_varname": "tasmax", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "dpco2": { - "CMOR_varname": "dpco2", - "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Delta PCO2", - "modeling_realm": "ocean_biochem", - "units": "Pa" - }, - "dust_emis": { - "CMOR_varname": "emidust", - "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_due_to_emission", - "long_name": "Total Emission Rate of Dust", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "swup_sfc_clr": { - "CMOR_varname": "rsuscsClim", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "SO4_ddep_cmip": { - "CMOR_varname": "dryso4", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of SO4", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "tz_trans": { - "CMOR_varname": "wmo", - "standard_name": "upward_ocean_mass_transport", - "long_name": "Upward Ocean Mass Transport", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "Kd_z": { - "CMOR_varname": "difvso", - "standard_name": "ocean_vertical_salt_diffusivity", - "long_name": "Ocean Vertical Salt Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "nbp": { - "CMOR_varname": "nbp", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", - "long_name": "Carbon Mass Flux out of Atmosphere due to Net Biospheric Production on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "msftmrhozba": { - "CMOR_varname": "msftmrhozba", - "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_bolus_advection", - "long_name": "Ocean Meridional Overturning Mass Streamfunction due to Bolus Advection", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "calc": { - "CMOR_varname": "calc", - "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Calcite Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "hfssi": { - "CMOR_varname": "hfssi", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "W m-2" - }, - "parasolRefl": { - "CMOR_varname": "parasolRefl", - "standard_name": "toa_bidirectional_reflectance", - "long_name": "PARASOL Reflectance", - "modeling_realm": "atmos", - "units": "1" - }, - "aredi": { - "CMOR_varname": "diftrelo", - "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", - "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "conv_cld_top": { - "CMOR_varname": "cct", - "standard_name": "air_pressure_at_convective_cloud_top", - "long_name": "Air Pressure at Convective Cloud Top", - "modeling_realm": "atmos", - "units": "Pa" - }, - "hfyba": { - "CMOR_varname": "hfyba", - "standard_name": "ocean_heat_y_transport_due_to_bolus_advection", - "long_name": "Ocean Heat Y Transport due to Bolus Advection", - "modeling_realm": "ocean", - "units": "W" - }, - "v": { - "CMOR_varname": "vo", - "standard_name": "sea_water_y_velocity", - "long_name": "Sea Water Y Velocity", - "modeling_realm": "ocean", - "units": "m s-1" - }, - "omega": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "modeling_realm": "atmos", - "units": "Pa s-1" - }, - "sftlf": { - "CMOR_varname": "sftlf", - "standard_name": "land_area_fraction", - "long_name": "Land Area Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "olr_clr": { - "CMOR_varname": "rlutcsClim", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "netrad_toa": { - "CMOR_varname": "rtoa", - "standard_name": "toa_net_downward_radiative_flux", - "long_name": "TOA Net Downward Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "om_wet_dep": { - "CMOR_varname": "wetpoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Dry Aerosol Primary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "hfxdiff": { - "CMOR_varname": "hfxdiff", - "standard_name": "ocean_heat_x_transport_due_to_diffusion", - "long_name": "Ocean Heat X Transport due to Diffusion", - "modeling_realm": "ocean", - "units": "W" - }, - "mcd": { - "CMOR_varname": "mcd", - "standard_name": "atmosphere_downdraft_convective_mass_flux", - "long_name": "Downdraught Convective Mass Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "ageice": { - "CMOR_varname": "ageice", - "standard_name": "age_of_sea_ice", - "long_name": "Age of Sea Ice", - "modeling_realm": "ocean & ice", - "units": "years" - }, - "areacello": { - "CMOR_varname": "areacello", - "standard_name": "cell_area", - "long_name": "Ocean Grid-Cell Area", - "modeling_realm": "ocean", - "units": "m-2" - }, - "phyp": { - "CMOR_varname": "phyp", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", - "long_name": "Phytoplankton Phosphorus Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "totNH4_wet_dep": { - "CMOR_varname": "wetnh4", - "standard_name": "tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of NH4+NH3", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "sst_sq": { - "CMOR_varname": "tossq", - "standard_name": "square_of_sea_surface_temperature", - "long_name": "Square of Sea Surface Temperature", - "modeling_realm": "ocean", - "units": "K2" - }, - "gm_eddy_ke_source": { - "CMOR_varname": "tnkebto", - "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", - "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "tnhusmp": { - "CMOR_varname": "tnhusmp", - "standard_name": "tendency_of_specific_humidity_due_to_model_physics", - "long_name": "Tendency of Specific Humidity due to Model Physics", - "modeling_realm": "atmos", - "units": "s-1" - }, - "WP_all_clouds": { - "CMOR_varname": "clwviClim", - "standard_name": "atmosphere_cloud_condensed_water_content", - "long_name": "Condensed Water Path", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "cSoilMedium": { - "CMOR_varname": "cSoilMedium", - "standard_name": "medium_soil_pool_carbon_content", - "long_name": "Carbon Mass in Medium Soil Pool", - "modeling_realm": "land", - "units": "kg m-2" - }, - "lai": { - "CMOR_varname": "lai", - "standard_name": "leaf_area_index", - "long_name": "Leaf Area Index", - "modeling_realm": "land", - "units": "1" - }, - "IWP_all_clouds": { - "CMOR_varname": "clivi", - "standard_name": "atmosphere_cloud_ice_content", - "long_name": "Ice Water Path", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "mrsos": { - "CMOR_varname": "mrsos", - "standard_name": "moisture_content_of_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column", - "modeling_realm": "land", - "units": "kg m-2" - }, - "no3": { - "CMOR_varname": "no3", - "standard_name": "mole_concentration_of_nitrate_in_sea_water", - "long_name": "Dissolved Nitrate Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "zsatarag": { - "CMOR_varname": "zsatarag", - "standard_name": "minimum_depth_of_aragonite_undersaturation_in_sea_water", - "long_name": "Aragonite Saturation Depth", - "modeling_realm": "ocean_biochem", - "units": "m" - }, - "aiso_bih": { - "CMOR_varname": "difmxybo", - "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", - "long_name": "Ocean Momentum XY Biharmonic Diffusivity", - "modeling_realm": "ocean", - "units": "m4 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux where Ice Free Ocean over Sea", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "sens_heat": { - "CMOR_varname": "hfss", - "standard_name": "surface_downward_sensible_heat_flux", - "long_name": "Surface Downward Sensible Heat Flux", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "evspsblsoi": { - "CMOR_varname": "evspsblsoiClim", - "standard_name": "water_evaporation_flux_from_soil", - "long_name": "Water Evaporation from Soil", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "sulfate_col_cmip": { - "CMOR_varname": "loadso4", - "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol", - "long_name": "Load of SO4", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "ccliq": { - "CMOR_varname": "clwc", - "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Convective Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "1" - }, - "clmcalipso_sat": { - "CMOR_varname": "clmcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Mid Level Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "tot_nh4_col": { - "CMOR_varname": "loadnh4", - "standard_name": "atmosphere_mass_content_of_ammonium_dry_aerosol", - "long_name": "Load of NH4", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "pr_ocean": { - "CMOR_varname": "pr", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux where Ice Free Ocean over Sea", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "lw_heat": { - "CMOR_varname": "rlds", - "standard_name": "surface_net_downward_longwave_flux", - "long_name": "Surface Net Downward Longwave Radiation", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "streng": { - "CMOR_varname": "streng", - "standard_name": "compressive_strength_of_sea_ice", - "long_name": "Compressive Sea Ice Strength", - "modeling_realm": "ocean & ice", - "units": "N m-1" - }, - "psl": { - "CMOR_varname": "pslClim", - "standard_name": "air_pressure_at_sea_level", - "long_name": "Sea Level Pressure", - "modeling_realm": "atmos", - "units": "Pa" - }, - "expp": { - "CMOR_varname": "expp", - "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", - "long_name": "Sinking Particulate Organic Phosphorus Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "fddtdin": { - "CMOR_varname": "fddtdin", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", - "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "LH": { - "CMOR_varname": "hfls", - "standard_name": "surface_downward_latent_heat_flux", - "long_name": "Surface Downward Latent Heat Flux", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "snd": { - "CMOR_varname": "snd", - "standard_name": "surface_snow_thickness", - "long_name": "Snow Depth", - "modeling_realm": "ocean & ice", - "units": "m" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Surface Snowfall Rate into the Sea Ice Portion of the Grid Cell", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "conv_cld_base": { - "CMOR_varname": "ccb", - "standard_name": "air_pressure_at_convective_cloud_base", - "long_name": "Air Pressure at Convective Cloud Base", - "modeling_realm": "atmos", - "units": "Pa" - }, - "phypico": { - "CMOR_varname": "phypico", - "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water", - }, - "": { - "CMOR_varname": "ocean_biochem", - "standard_name": "mol m-3", - }, - "phyn": { - "CMOR_varname": "phyn", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", - "long_name": "Phytoplankton Nitrogen Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "hblt_max": { - "CMOR_varname": "omlmax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", - "long_name": "Monthly Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "modeling_realm": "ocean", - "units": "m" - }, - "rh_cm": { - "CMOR_varname": "rh", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "modeling_realm": "atmos", - "units": "%" - }, - "emibcv2": { - "CMOR_varname": "emibc", - "standard_name": "tendency_of_atmosphere_mass_content_of_black_carbon_dry_aerosol_due_to_emission", - "long_name": "Emission Rate of Black Carbon Aerosol Mass", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "fl_ccrain": { - "CMOR_varname": "prcprof", - "standard_name": "convective_rainfall_flux", - "long_name": "Convective Rainfall Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "zh": { - "CMOR_varname": "zhalf", - "standard_name": "height_above_reference_ellipsoid", - "long_name": "Altitude of Model Half-Levels", - "modeling_realm": "atmos", - "units": "m" - }, - "evap_hflux": { - "CMOR_varname": "hfevapds", - "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", - "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "co3": { - "CMOR_varname": "co3", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Carbonate expressed as Carbon in Sea Water", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "mrlsl": { - "CMOR_varname": "mrlslClim", - "standard_name": "moisture_content_of_soil_layer", - "long_name": "Water Content of Soil Layer", - "modeling_realm": "land", - "units": "kg m-2" - }, - "sea_level_sq": { - "CMOR_varname": "zossq", - "standard_name": "square_of_sea_surface_height_above_geoid", - "long_name": "Square of Sea Surface Height Above Geoid", - "modeling_realm": "ocean", - "units": "m2" - }, - "treeFrac": { - "CMOR_varname": "treeFrac", - "standard_name": "area_fraction", - "long_name": "Tree Cover Fraction", - "modeling_realm": "land", - "units": "%" - }, - "wetso4": { - "CMOR_varname": "wetso4", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of SO4", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "tot_no3_col": { - "CMOR_varname": "loadno3", - "standard_name": "atmosphere_mass_content_of_nitrate_dry_aerosol", - "long_name": "Load of NO3", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "fsfe": { - "CMOR_varname": "fsfe", - "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", - "long_name": "Surface Downward Net Flux of Iron", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "wind_ref": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Daily-Mean Near-Surface Wind Speed", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "chldiat": { - "CMOR_varname": "chldiat", - "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", - "long_name": "Diatom Chlorophyll Mass Concentration", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "shrubFrac": { - "CMOR_varname": "shrubFrac", - "standard_name": "area_fraction", - "long_name": "Shrub Fraction", - "modeling_realm": "land", - "units": "%" - }, - "tmelt": { - "CMOR_varname": "tmelt", - "standard_name": "rate_of_melt_at_upper_surface_of_sea_ice", - "long_name": "Rate of Melt at Upper Surface of Sea Ice", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "phyc": { - "CMOR_varname": "phyc", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Phytoplankton Carbon Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "zosga": { - "CMOR_varname": "zosga", - "standard_name": "global_average_sea_level_change", - "long_name": "Global Average Sea Level Change", - "modeling_realm": "ocean", - "units": "m" - }, - "clw": { - "CMOR_varname": "clw", - "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Cloud Liquid Water", - "modeling_realm": "atmos", - "units": "1" - }, - "chl": { - "CMOR_varname": "chl", - "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Total Chlorophyll Mass Concentration", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "cMisc": { - "CMOR_varname": "cMisc", - "standard_name": "miscellaneous_living_matter_carbon_content", - "long_name": "Carbon Mass in Other Living Compartments on Land", - "modeling_realm": "land", - "units": "kg m-2" - }, - "conv_cld_top": { - "CMOR_varname": "cctClim", - "standard_name": "air_pressure_at_convective_cloud_top", - "long_name": "Air Pressure at Convective Cloud Top", - "modeling_realm": "atmos", - "units": "Pa" - }, - "swdn_sfc": { - "CMOR_varname": "rsdsClim", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "swdn_toa": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "gridspec": { - "CMOR_varname": "gridspec", - "standard_name": "[gridspec_ocean]", - "long_name": "Gridspec", - "modeling_realm": "ocean", - "units": "" - }, - "POA_col": { - "CMOR_varname": "loadpoa", - "standard_name": "atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol", - "long_name": "Load of Dry Aerosol Primary Organic Matter", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "salt_global_ave": { - "CMOR_varname": "soga", - "standard_name": "sea_water_salinity", - "long_name": "Global Mean Sea Water Salinity", - "modeling_realm": "ocean", - "units": "psu" - }, - "sic_atm": { - "CMOR_varname": "sic", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea Ice Area Fraction", - "modeling_realm": "seaIce & ocean", - "units": "%" - }, - "concsoa": { - "CMOR_varname": "concsoa", - "standard_name": "mass_concentration_of_secondary_particulate_organic_matter_dry_aerosol_in_air", - "long_name": "Concentration of Dry Aerosol Secondary Organic Matter", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "strocnx": { - "CMOR_varname": "strocnx", - "standard_name": "upward_x_stress_at_sea_ice_base", - "long_name": "Eastward Ocean Stress On Sea Ice", - "modeling_realm": "ocean & ice", - "units": "N m-2" - }, - "frn": { - "CMOR_varname": "frn", - "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", - "long_name": "Nitrogen Loss to Sediments and through Denitrification", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "expsi": { - "CMOR_varname": "expsi", - "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", - "long_name": "Sinking Particulate Silica Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "shflx": { - "CMOR_varname": "hfssClim", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "friver": { - "CMOR_varname": "friver", - "standard_name": "water_flux_into_sea_water_from_rivers", - "long_name": "Water Flux into Sea Water From Rivers", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "mrlso": { - "CMOR_varname": "mrfso", - "standard_name": "soil_frozen_water_content", - "long_name": "Soil Frozen Water Content", - "modeling_realm": "land & landIce", - "units": "kg m-2" - }, - "intpdiat": { - "CMOR_varname": "intpdiat", - "standard_name": "net_primary_mole_productivity_of_carbon_by_diatoms", - "long_name": "Primary Organic Carbon Production by Diatoms", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "lat_sat": { - "CMOR_varname": "lat", - "standard_name": "latitude", - "long_name": "Latitude", - "modeling_realm": "atmos", - "units": "degrees_north" - }, - "swdn_tot_dif_clr": { - "CMOR_varname": "rsdscsdiff", - "standard_name": "diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Diffuse Downward Clear Sky Shortwave Radiation", - "modeling_realm": "aerosol & land", - "units": "W m-2" - }, - "fediss": { - "CMOR_varname": "fediss", - "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_dissolution_from_inorganic_particles", - "long_name": "Particle Source of Dissolved Iron", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "tot_NH4_ddep_cmip": { - "CMOR_varname": "drynh4", - "standard_name": "tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of NH4", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "t_ref": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "rhopoto": { - "CMOR_varname": "rhopoto", - "standard_name": "sea_water_potential_density", - "long_name": "Sea Water Potential Density", - "modeling_realm": "ocean", - "units": "kg m-3" - }, - "phyppico": { - "CMOR_varname": "phyppico", - "standard_name": "tendency_of_mole_concentration_of_organic_carbon_in_sea_water_due_to_net_primary_production_by picophytoplankton", - "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Picop", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "tauuo": { - "CMOR_varname": "tauuo", - "standard_name": "surface_downward_x_stress", - "long_name": "Surface Downward X Stress", - "modeling_realm": "ocean", - "units": "N m-2" - }, - "UI": { - "CMOR_varname": "usi", - "standard_name": "eastward_sea_ice_velocity", - "long_name": "Eastward Sea Ice Velocity", - "modeling_realm": "seaIce & ocean", - "units": "m s-1" - }, - "lai": { - "CMOR_varname": "laiClim", - "standard_name": "leaf_area_index", - "long_name": "Leaf Area Index", - "modeling_realm": "land", - "units": "1" - }, - "arag": { - "CMOR_varname": "arag", - "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Aragonite Concentration at Surface", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 " - }, - "tauv": { - "CMOR_varname": "tauv", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "modeling_realm": "atmos", - "units": "Pa" - }, - "phymisc": { - "CMOR_varname": "phymisc", - "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "q_ref": { - "CMOR_varname": "hussClim", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "modeling_realm": "atmos", - "units": "1" - }, - "rldssi": { - "CMOR_varname": "rldssi", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Downward Long Wave over Sea Ice", - "modeling_realm": "ocean & ice", - "units": "W m-2" - }, - "chlpico": { - "CMOR_varname": "chlpico", - "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water", - "modeling_realm": "ocean_biochem", - "units": "kg m-3" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "modeling_realm": "land", - "units": "m" - }, - "swdn_sfc": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_sea_level", - "long_name": "Sea Level Pressure", - "modeling_realm": "atmos", - "units": "Pa" - }, - "mrro": { - "CMOR_varname": "mrroClim", - "standard_name": "runoff_flux", - "long_name": "Total Runoff", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "zsatcalc": { - "CMOR_varname": "zsatcalc", - "standard_name": "minimum_depth_of_calcite_undersaturation_in_sea_water", - "long_name": "Calcite Saturation Depth", - "modeling_realm": "ocean_biochem", - "units": "m" - }, - "dust_wet_dep": { - "CMOR_varname": "wetdust", - "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Dust", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "rrvn2o": { - "CMOR_varname": "n2oglobal", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "Global Mean Mole Fraction of N2O", - "modeling_realm": "atmosChem", - "units": "1e-9" - }, - "intpnitrate": { - "CMOR_varname": "intpnitrate", - "standard_name": "net_primary_mole_productivity_of_carbon_due_to_nitrate_utilization", - "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "sfdsi": { - "CMOR_varname": "sfdsi", - "standard_name": "downward_sea_ice_basal_salt_flux", - "long_name": "Downward Sea Ice Basal Salt Flux", - "modeling_realm": "ocean & seaIce", - "units": "kg m-2 s-1" - }, - "snm": { - "CMOR_varname": "snm", - "standard_name": "surface_snow_melt_flux", - "long_name": "Surface Snow Melt", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "arag": { - "CMOR_varname": "arag", - "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Aragonite Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "ec550aer": { - "CMOR_varname": "ec550aer", - "standard_name": "optical_thickness_of_atmosphere_layer_due_to_ambient_aerosol", - "long_name": "Ambient Aerosol Extinction Optical Thickness at 550 nm", - "modeling_realm": "aerosol", - "units": "m-1" - }, - "lwup_sfc": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "evspsblsoi": { - "CMOR_varname": "evspsblsoi", - "standard_name": "water_evaporation_flux_from_soil", - "long_name": "Water Evaporation from Soil", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "mrso": { - "CMOR_varname": "mrso", - "standard_name": "soil_moisture_content", - "long_name": "Total Soil Moisture Content", - "modeling_realm": "land", - "units": "kg m-2" - }, - "cWood": { - "CMOR_varname": "cWood", - "standard_name": "wood_carbon_content", - "long_name": "Carbon Mass in Wood", - "modeling_realm": "land", - "units": "kg m-2" - }, - "gpp": { - "CMOR_varname": "gpp", - "standard_name": "gross_primary_productivity_of_carbon", - "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "swup_sfc_clr": { - "CMOR_varname": "rsuscs", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "fGrazing": { - "CMOR_varname": "fGrazing", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_grazing", - "long_name": "Carbon Mass Flux into Atmosphere due to Grazing on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "cls": { - "CMOR_varname": "cls", - "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", - "long_name": "Stratiform Cloud Area Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "hfnorth": { - "CMOR_varname": "hfnorth", - "standard_name": "northward_ocean_heat_transport", - "long_name": "Northward Ocean Heat Transport", - "modeling_realm": "ocean", - "units": "W" - }, - "grLateral": { - "CMOR_varname": "grLateral", - "standard_name": "lateral_sea_ice_growth_rate", - "long_name": "Lateral Sea Ice Growth Rate", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "sst_sq": { - "CMOR_varname": "tsosq", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", - "long_name": "Mean Square of Sea Surface Temperature", - "modeling_realm": "aerosol", - "units": "K2" - }, - "mrro": { - "CMOR_varname": "mrro", - "standard_name": "runoff_flux", - "long_name": "Total Runoff", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "snoToIce": { - "CMOR_varname": "snoToIce", - "standard_name": "tendency_of_sea_ice_amount_due_to_snow_conversion", - "long_name": "Snow-Ice Formation Rate", - "modeling_realm": "ocean & ice", - "units": "kg m-2 s-1" - }, - "2d_cld_amt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "modeling_realm": "atmos", - "units": "%" - }, - "bfe": { - "CMOR_varname": "bfe", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", - "long_name": "Particulate Biogenic Iron Concentration", - "modeling_realm": "ocean_biochem", - "units": "mol m-3" - }, - "aer_ex_c_vs": { - "CMOR_varname": "od550aer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol", - "long_name": "Ambient Aerosol Opitical Thickness at 550 nm", - "modeling_realm": "aerosol", - "units": "1" - }, - "sfc_salt_flux_runoff": { - "CMOR_varname": "sfriver", - "standard_name": "salt_flux_into_sea_water_from_rivers", - "long_name": "Salt Flux into Sea Water from Rivers", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "pso": { - "CMOR_varname": "pso", - "standard_name": "sea_water_pressure_at_sea_water_surface", - "long_name": "Sea Water Pressure at Sea Water Surface", - "modeling_realm": "ocean", - "units": "dbar" - }, - "evs": { - "CMOR_varname": "evs", - "standard_name": "water_evaporation_flux", - "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", - "modeling_realm": "ocean", - "units": "kg m-2 s-1" - }, - "expcfe": { - "CMOR_varname": "expcfe", - "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", - "long_name": "Sinking Particulate Iron Flux", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "fsc": { - "CMOR_varname": "fsc", - "standard_name": "tendency_of_ocean_mole_content_of_carbon_due_to_runoff_and_sediment_dissolution", - "long_name": "Flux of Carbon Into Ocean Surface by Runoff and Sediment Dissolution", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "msftyrhoz": { - "CMOR_varname": "msftyrhoz", - "standard_name": "ocean_y_overturning_mass_streamfunction", - "long_name": "Ocean Y Overturning Mass Streamfunction", - "modeling_realm": "ocean", - "units": "kg s-1" - }, - "transifs": { - "CMOR_varname": "transifs", - "standard_name": "sea_ice_transport_across_line", - "long_name": "Sea Ice Mass Transport Through Fram Strait", - "modeling_realm": "ocean & ice", - "units": "kg s-1" - }, - "ssi": { - "CMOR_varname": "ssi", - "standard_name": "sea_ice_salinity", - "long_name": "Sea Ice Salinity", - "modeling_realm": "ocean & ice", - "units": "psu" - }, - "wind_ref_max": { - "CMOR_varname": "sfcWindmax", - "standard_name": "wind_speed", - "long_name": "Daily Maximum Near-Surface Wind Speed", - "modeling_realm": "atmos", - "units": "m s-1" - }, - "reffclwtop": { - "CMOR_varname": "reffclwtop", - "standard_name": "effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top", - "long_name": "Cloud-Top Effective Droplet Radius", - "modeling_realm": "aerosol", - "units": "m" - }, - "pm25_ex_c_vs": { - "CMOR_varname": "od550lt1aer", - "standard_name": "atmosphere_optical_thickness_due_to_pm1_ambient_aerosol", - "long_name": "Ambient Fine Aerosol Opitical Thickness at 550 nm", - "modeling_realm": "aerosol", - "units": "1" - }, - "ssalt_ddep": { - "CMOR_varname": "dryss", - "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_due_to_dry_deposition", - "long_name": "Dry Deposition Rate of Seasalt", - "modeling_realm": "aerosol", - "units": "kg m-2 s-1" - }, - "swdn_toa": { - "CMOR_varname": "rsdtClim", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "lon_sat": { - "CMOR_varname": "lon", - "standard_name": "longitude", - "long_name": "Longitude", - "modeling_realm": "atmos", - "units": "degrees_east" - }, - "tos": { - "CMOR_varname": "tos", - "standard_name": "sea_surface_temperature", - "long_name": "Sea Surface Temperature", - "modeling_realm": "ocean", - "units": "K" - }, - "swdn_sfc_clr": { - "CMOR_varname": "rsdscsClim", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "LWSs": { - "CMOR_varname": "lwsnl", - "standard_name": "liquid_water_content_of_snow_layer", - "long_name": "Liquid Water Content of Snow Layer", - "modeling_realm": "land_ice", - "units": "kg m-2" - }, - "reff_ccclice": { - "CMOR_varname": "reffclic", - "standard_name": "effective_radius_of_convective_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", - "modeling_realm": "atmos", - "units": "m" - }, - "olr": { - "CMOR_varname": "rlutClim", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "omega": { - "CMOR_varname": "wapClim", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "modeling_realm": "atmos", - "units": "Pa s-1" - }, - "c4PftFrac": { - "CMOR_varname": "c4PftFrac", - "standard_name": "area_fraction", - "long_name": "Total C4 PFT Cover Fraction", - "modeling_realm": "land", - "units": "%" - }, - "lwdn_sfc": { - "CMOR_varname": "rldsClim", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "rsd": { - "CMOR_varname": "rsd", - "standard_name": "downwelling_shortwave_flux_in_air", - "long_name": "Downwelling Shortwave Radiation", - "modeling_realm": "atmos", - "units": "W m-2" - }, - "hfds": { - "CMOR_varname": "hfds", - "standard_name": "surface_downward_heat_flux_in_sea_water", - "long_name": "Downward Heat Flux at Sea Water Surface", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "mc_full": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "concnh4": { - "CMOR_varname": "concnh4", - "standard_name": "mass_concentration_of_ammonium_dry_aerosol_in_air", - "long_name": "Concentration of NH4", - "modeling_realm": "aerosol", - "units": "kg m-3" - }, - "basin": { - "CMOR_varname": "basin", - "standard_name": "region", - "long_name": "Region Selection Index", - "modeling_realm": "ocean", - "units": "1" - }, - "fddtdife": { - "CMOR_varname": "fddtdife", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", - "long_name": "Rate of Change of Net Dissolved Inorganic Iron", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "phalf_cmip": { - "CMOR_varname": "phalf", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Half-Levels", - "modeling_realm": "aerosol", - "units": "Pa" - }, - "wmosq": { - "CMOR_varname": "wmosq", - "standard_name": "square_of_upward_ocean_mass_transport", - "long_name": "Square of Upward Ocean Mass Transport", - "modeling_realm": "ocean", - "units": "kg2 s-2" - }, - "bddtdin": { - "CMOR_varname": "bddtdin", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_nitrogen_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Nitrogen Nutrient due to Biological Activity", - "modeling_realm": "ocean_biochem", - "units": "mol m-3 s-1" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux where Ice Free Ocean over Sea", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "v_ref": { - "CMOR_varname": "vasClim", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "modeling_realm": "aerosol", - "units": "m s-1" - }, - "npp": { - "CMOR_varname": "npp", - "standard_name": "net_primary_productivity_of_carbon", - "long_name": "Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land", - "modeling_realm": "land", - "units": "kg m-2 s-1" - }, - "fddtdisi": { - "CMOR_varname": "fddtdisi", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", - "long_name": "Rate of Change of Net Dissolved Inorganic Silicate", - "modeling_realm": "ocean_biochem", - "units": "mol m-2 s-1" - }, - "rsntds": { - "CMOR_varname": "rsntds", - "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", - "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", - "modeling_realm": "ocean", - "units": "W m-2" - }, - "T": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "modeling_realm": "atmos", - "units": "K" - }, - "mcu": { - "CMOR_varname": "mcu", - "standard_name": "atmosphere_updraft_convective_mass_flux", - "long_name": "Updraught Convective Mass Flux", - "modeling_realm": "atmos", - "units": "kg m-2 s-1" - }, - "WP_all_clouds": { - "CMOR_varname": "clwvi", - "standard_name": "atmosphere_cloud_condensed_water_content", - "long_name": "Condensed Water Path", - "modeling_realm": "atmos", - "units": "kg m-2" - }, - "visc_cbu_back": { - "CMOR_varname": "difvmbo", - "standard_name": "ocean_vertical_momentum_diffusivity_due_to_background", - "long_name": "Ocean Vertical Momentum Diffusivity due to Background", - "modeling_realm": "ocean", - "units": "m2 s-1" - }, - "tau_y": { - "CMOR_varname": "tauv", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "modeling_realm": "atmos", - "units": "Pa" - } -} \ No newline at end of file diff --git a/data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json b/data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json deleted file mode 100644 index 4e84be508..000000000 --- a/data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json +++ /dev/null @@ -1,14478 +0,0 @@ -{ - "jno2": { - "CMOR_varname": "jno2", - "standard_name": "photolysis_rate_of_nitrogen_dioxide", - "long_name": "photolysis rate of NO2", - "mipTable": "AERmon", - "units": "s-1" - }, - "pod0": { - "CMOR_varname": "pod0", - "standard_name": "integral_wrt_time_of_mole_stomatal_uptake_of_ozone", - "long_name": "Phytotoxic ozone dose", - "mipTable": "AERmon", - "units": "mol m-2" - }, - "tntrs": { - "CMOR_varname": "tntrs", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", - "long_name": "Shortwave heating rate", - "mipTable": "AERmon", - "units": "K s-1" - }, - "tntrl": { - "CMOR_varname": "tntrl", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", - "long_name": "Longwave heating rate", - "mipTable": "AERmon", - "units": "K s-1" - }, - "cltc": { - "CMOR_varname": "cltc", - "standard_name": "convective_cloud_area_fraction", - "long_name": "Convective Cloud Area Fraction", - "mipTable": "AERmon", - "units": "%" - }, - "pfull": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Air Pressure", - "mipTable": "AERmon", - "units": "Pa" - }, - "bldep": { - "CMOR_varname": "bldep", - "standard_name": "atmosphere_boundary_layer_thickness", - "long_name": "Boundary Layer Depth", - "mipTable": "AERmon", - "units": "m" - }, - "phalf": { - "CMOR_varname": "phalf", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Half-Levels", - "mipTable": "AERmon", - "units": "Pa" - }, - "od550csaer": { - "CMOR_varname": "od550csaer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "ambient aerosol optical thickness at 550 nm", - "mipTable": "AERmon", - "units": "1" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Surface Temperature", - "mipTable": "AERhr", - "units": "K" - }, - "volcello": { - "CMOR_varname": "volcello", - "standard_name": "ocean_volume", - "long_name": "Ocean Grid-Cell Volume", - "mipTable": "Odec", - "units": "m3" - }, - "zfull": { - "CMOR_varname": "zfull", - "standard_name": "height_above_reference_ellipsoid", - "long_name": "Altitude of Model Full-Levels", - "mipTable": "fx", - "units": "m" - }, - "zg500": { - "CMOR_varname": "zg500", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height at 500 hPa", - "mipTable": "AERday", - "units": "m" - }, - "od550soa": { - "CMOR_varname": "od550soa", - "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol_particles", - "long_name": "soa aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "tntrl": { - "CMOR_varname": "tntrl", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", - "long_name": "Longwave heating rate", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tntrs": { - "CMOR_varname": "tntrs", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", - "long_name": "Shortwave heating rate", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tntrlcs": { - "CMOR_varname": "tntrlcs", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", - "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tntrscs": { - "CMOR_varname": "tntrscs", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", - "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tntc": { - "CMOR_varname": "tntc", - "standard_name": "tendency_of_air_temperature_due_to_convection", - "long_name": "Tendency of Air Temperature due to Convection", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tntscp": { - "CMOR_varname": "tntscp", - "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation", - "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tasmaxCrop": { - "CMOR_varname": "tasmaxCrop", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature over Crop Tile", - "mipTable": "Emon", - "units": "K" - }, - "tasminCrop": { - "CMOR_varname": "tasminCrop", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature over Crop Tile", - "mipTable": "Emon", - "units": "K" - }, - "prCrop": { - "CMOR_varname": "prCrop", - "standard_name": "precipitation_flux", - "long_name": "Precipitation over Crop Tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "tsnIs": { - "CMOR_varname": "tsnIs", - "standard_name": "temperature_in_surface_snow", - "long_name": "Ice Sheet Snow Internal Temperature", - "mipTable": "LImon", - "units": "K" - }, - "sblIs": { - "CMOR_varname": "sblIs", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Ice Sheet Surface Snow and Ice Sublimation Flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "snmIs": { - "CMOR_varname": "snmIs", - "standard_name": "surface_snow_melt_flux", - "long_name": "Ice Sheet Surface Snow Melt", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "mrroIs": { - "CMOR_varname": "mrroIs", - "standard_name": "runoff_flux", - "long_name": "Ice Sheet Total Run-off", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "sncIs": { - "CMOR_varname": "sncIs", - "standard_name": "surface_snow_area_fraction", - "long_name": "Ice Sheet Snow Cover Percentage", - "mipTable": "LImon", - "units": "%" - }, - "bigthetao": { - "CMOR_varname": "bigthetao", - "standard_name": "sea_water_conservative_temperature", - "long_name": "Sea Water Convervative Temperature", - "mipTable": "Odec", - "units": "degC" - }, - "toz": { - "CMOR_varname": "toz", - "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", - "long_name": "Total Column Ozone", - "mipTable": "AERday", - "units": "m" - }, - "cod": { - "CMOR_varname": "cod", - "standard_name": "atmosphere_optical_thickness_due_to_cloud", - "long_name": "cloud optical depth", - "mipTable": "AERday", - "units": "1" - }, - "zg10": { - "CMOR_varname": "zg10", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height at 10 hPa", - "mipTable": "AERday", - "units": "m" - }, - "maxpblz": { - "CMOR_varname": "maxpblz", - "standard_name": "atmosphere_boundary_layer_thickness", - "long_name": "maximum PBL height", - "mipTable": "AERday", - "units": "m" - }, - "minpblz": { - "CMOR_varname": "minpblz", - "standard_name": "atmosphere_boundary_layer_thickness", - "long_name": "minimum PBL height", - "mipTable": "AERday", - "units": "m" - }, - "ua10": { - "CMOR_varname": "ua10", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind at 10 hPa", - "mipTable": "AERday", - "units": "m s-1" - }, - "zg1000": { - "CMOR_varname": "zg1000", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height at 1000 hPa", - "mipTable": "AERday", - "units": "m" - }, - "zg100": { - "CMOR_varname": "zg100", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height at 100 hPa", - "mipTable": "AERday", - "units": "m" - }, - "c3h6": { - "CMOR_varname": "c3h6", - "standard_name": "mole_fraction_of_propene_in_air", - "long_name": "C3H6 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "hcho": { - "CMOR_varname": "hcho", - "standard_name": "mole_fraction_of_formaldehyde_in_air", - "long_name": "Formaldehyde volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "wetnh4": { - "CMOR_varname": "wetnh4", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of NH4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "c3h8": { - "CMOR_varname": "c3h8", - "standard_name": "mole_fraction_of_propane_in_air", - "long_name": "C3H8 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "wetnh3": { - "CMOR_varname": "wetnh3", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonia_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of NH3", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "wetso2": { - "CMOR_varname": "wetso2", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of SO2", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "wetso4": { - "CMOR_varname": "wetso4", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of SO4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "mmrpm1": { - "CMOR_varname": "mmrpm1", - "standard_name": "mass_fraction_of_pm1_dry_aerosol_particles_in_air", - "long_name": "PM1.0 mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "photo1d": { - "CMOR_varname": "photo1d", - "standard_name": "photolysis_rate_of_ozone_to_1D_oxygen_atom", - "long_name": "photolysis rate of O3 to O1d", - "mipTable": "AERmon", - "units": "s-1" - }, - "no2": { - "CMOR_varname": "no2", - "standard_name": "mole_fraction_of_nitrogen_dioxide_in_air", - "long_name": "NO2 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "ptp": { - "CMOR_varname": "ptp", - "standard_name": "tropopause_air_pressure", - "long_name": "Tropopause Air Pressure", - "mipTable": "AERmon", - "units": "Pa" - }, - "mmrno3": { - "CMOR_varname": "mmrno3", - "standard_name": "mass_fraction_of_nitrate_dry_aerosol_particles_in_air", - "long_name": "NO3 aerosol mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "ch3coch3": { - "CMOR_varname": "ch3coch3", - "standard_name": "mole_fraction_of_acetone_in_air", - "long_name": "CH3COCH3 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "cdnc": { - "CMOR_varname": "cdnc", - "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air", - "long_name": "Cloud Liquid Droplet Number Concentration", - "mipTable": "AERmon", - "units": "m-3" - }, - "ztp": { - "CMOR_varname": "ztp", - "standard_name": "tropopause_altitude", - "long_name": "Tropopause Altitude above Geoid", - "mipTable": "AERmon", - "units": "m" - }, - "emidust": { - "CMOR_varname": "emidust", - "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission", - "long_name": "total emission rate of dust", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "od550lt1aer": { - "CMOR_varname": "od550lt1aer", - "standard_name": "atmosphere_optical_thickness_due_to_pm1_ambient_aerosol_particles", - "long_name": "ambient fine mode aerosol optical thickness at 550 nm", - "mipTable": "AERmon", - "units": "1" - }, - "c2h6": { - "CMOR_varname": "c2h6", - "standard_name": "mole_fraction_of_ethane_in_air", - "long_name": "C2H6 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "c2h2": { - "CMOR_varname": "c2h2", - "standard_name": "mole_fraction_of_ethyne_in_air", - "long_name": "C2H2 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "wetdust": { - "CMOR_varname": "wetdust", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_wet_deposition", - "long_name": "wet deposition rate of dust", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "o3prod": { - "CMOR_varname": "o3prod", - "standard_name": "tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_production", - "long_name": "O3 production rate", - "mipTable": "AERmon", - "units": "mol m-3 s-1" - }, - "mmrpm2p5": { - "CMOR_varname": "mmrpm2p5", - "standard_name": "mass_fraction_of_pm2p5_dry_aerosol_particles_in_air", - "long_name": "PM2.5 mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "emibc": { - "CMOR_varname": "emibc", - "standard_name": "tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_emission", - "long_name": "emission rate of black carbon aerosol mass", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "ttop": { - "CMOR_varname": "ttop", - "standard_name": "air_temperature_at_cloud_top", - "long_name": "air temperature at cloud top", - "mipTable": "AERmon", - "units": "K" - }, - "od550bb": { - "CMOR_varname": "od550bb", - "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol_particles", - "long_name": "bb aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "AERmon", - "units": "m" - }, - "mmrso4": { - "CMOR_varname": "mmrso4", - "standard_name": "mass_fraction_of_sulfate_dry_aerosol_particles_in_air", - "long_name": "Aerosol sulfate mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "wetnoy": { - "CMOR_varname": "wetnoy", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of NOy including Aerosol Nitrate", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "co2": { - "CMOR_varname": "co2", - "standard_name": "mole_fraction_of_carbon_dioxide_in_air", - "long_name": "CO2 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "dryo3": { - "CMOR_varname": "dryo3", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ozone_due_to_dry_deposition", - "long_name": "dry deposition rate of o3", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "abs550aer": { - "CMOR_varname": "abs550aer", - "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "ambient aerosol absorption optical thickness at 550 nm", - "mipTable": "AERmon", - "units": "1" - }, - "od550ss": { - "CMOR_varname": "od550ss", - "standard_name": "atmosphere_optical_thickness_due_to_sea_salt_ambient_aerosol_particles", - "long_name": "sea salt aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "o3loss": { - "CMOR_varname": "o3loss", - "standard_name": "tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_destruction", - "long_name": "O3 destruction rate", - "mipTable": "AERmon", - "units": "mol m-3 s-1" - }, - "mmrss": { - "CMOR_varname": "mmrss", - "standard_name": "mass_fraction_of_sea_salt_dry_aerosol_particles_in_air", - "long_name": "Sea Salt mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "chepsoa": { - "CMOR_varname": "chepsoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production", - "long_name": "chemical production of dry aerosol secondary organic matter", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "mmrdust": { - "CMOR_varname": "mmrdust", - "standard_name": "mass_fraction_of_dust_dry_aerosol_particles_in_air", - "long_name": "Dust aerosol mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "o3": { - "CMOR_varname": "o3", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Ozone volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "hcl": { - "CMOR_varname": "hcl", - "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", - "long_name": "HCl volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "emioa": { - "CMOR_varname": "emioa", - "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission", - "long_name": "primary emission and chemical production of dry aerosol organic matter", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "airmass": { - "CMOR_varname": "airmass", - "standard_name": "atmosphere_mass_of_air_per_unit_area", - "long_name": "Vertically integrated mass content of air in layer", - "mipTable": "AERmon", - "units": "kg m-2" - }, - "od440aer": { - "CMOR_varname": "od440aer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "ambient aerosol optical thickness at 440 nm", - "mipTable": "AERmon", - "units": "1" - }, - "wa": { - "CMOR_varname": "wa", - "standard_name": "upward_air_velocity", - "long_name": "Upward Air Velocity", - "mipTable": "AERmon", - "units": "m s-1" - }, - "reffclwtop": { - "CMOR_varname": "reffclwtop", - "standard_name": "effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top", - "long_name": "cloud-top effective droplet radius", - "mipTable": "AERmon", - "units": "m" - }, - "emiso4": { - "CMOR_varname": "emiso4", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_emission", - "long_name": "total direct emission rate of so4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "isop": { - "CMOR_varname": "isop", - "standard_name": "mole_fraction_of_isoprene_in_air", - "long_name": "Isoprene volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "mmrsoa": { - "CMOR_varname": "mmrsoa", - "standard_name": "mass_fraction_of_secondary_particulate_organic_matter_dry_aerosol_particles_in_air", - "long_name": "Secondary organic aerosol mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "toz": { - "CMOR_varname": "toz", - "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", - "long_name": "Total Ozone Column", - "mipTable": "AERmon", - "units": "m" - }, - "od550so4": { - "CMOR_varname": "od550so4", - "standard_name": "atmosphere_optical_thickness_due_to_sulfate_ambient_aerosol_particles", - "long_name": "sulfate aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "oh": { - "CMOR_varname": "oh", - "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", - "long_name": "OH volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "mmrbc": { - "CMOR_varname": "mmrbc", - "standard_name": "mass_fraction_of_elemental_carbon_dry_aerosol_particles_in_air", - "long_name": "Elemental carbon mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "cod": { - "CMOR_varname": "cod", - "standard_name": "atmosphere_optical_thickness_due_to_cloud", - "long_name": "cloud optical depth", - "mipTable": "AERmon", - "units": "1" - }, - "dryoa": { - "CMOR_varname": "dryoa", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_dry_deposition", - "long_name": "dry deposition rate of dry aerosol total organic matter", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "emiss": { - "CMOR_varname": "emiss", - "standard_name": "tendency_of_atmosphere_mass_content_of_sea_salt_dry_aerosol_particles_due_to_emission", - "long_name": "total emission rate of seasalt", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "wetoa": { - "CMOR_varname": "wetoa", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Dry Aerosol Total Organic Matter", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "emibvoc": { - "CMOR_varname": "emibvoc", - "standard_name": "tendency_of_atmosphere_mass_content_of_biogenic_nmvoc_expressed_as_carbon_due_to_emission", - "long_name": "total emission rate of biogenic nmvoc", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "co": { - "CMOR_varname": "co", - "standard_name": "mole_fraction_of_carbon_monoxide_in_air", - "long_name": "CO volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "dryso4": { - "CMOR_varname": "dryso4", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_dry_deposition", - "long_name": "dry deposition rate of so4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "dryso2": { - "CMOR_varname": "dryso2", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", - "long_name": "dry deposition rate of so2", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "wetbc": { - "CMOR_varname": "wetbc", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_wet_deposition", - "long_name": "wet deposition rate of black carbon aerosol mass", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "lwp": { - "CMOR_varname": "lwp", - "standard_name": "atmosphere_mass_content_of_cloud_liquid_water", - "long_name": "liquid water path", - "mipTable": "AERmon", - "units": "kg m-2" - }, - "drybc": { - "CMOR_varname": "drybc", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_dry_deposition", - "long_name": "dry deposition rate of black carbon aerosol mass", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "hno3": { - "CMOR_varname": "hno3", - "standard_name": "mole_fraction_of_nitric_acid_in_air", - "long_name": "HNO3 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "chepasoa": { - "CMOR_varname": "chepasoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production", - "long_name": "total net production of anthropogenic secondary organic aerosol", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "tatp": { - "CMOR_varname": "tatp", - "standard_name": "tropopause_air_temperature", - "long_name": "Tropopause Air Temperature", - "mipTable": "AERmon", - "units": "K" - }, - "drynh3": { - "CMOR_varname": "drynh3", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonia_due_to_dry_deposition", - "long_name": "dry deposition rate of nh3", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "od550bc": { - "CMOR_varname": "od550bc", - "standard_name": "atmosphere_optical_thickness_due_to_black_carbon_ambient_aerosol", - "long_name": "black carbon aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "drynh4": { - "CMOR_varname": "drynh4", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_dry_deposition", - "long_name": "dry deposition rate of nh4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "od550dust": { - "CMOR_varname": "od550dust", - "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", - "long_name": "dust aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "emianox": { - "CMOR_varname": "emianox", - "standard_name": "tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission", - "long_name": "anthropogenic emission rate of nox", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "mmrnh4": { - "CMOR_varname": "mmrnh4", - "standard_name": "mass_fraction_of_ammonium_dry_aerosol_particles_in_air", - "long_name": "NH4 mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "so2": { - "CMOR_varname": "so2", - "standard_name": "mole_fraction_of_sulfur_dioxide_in_air", - "long_name": "SO2 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "emiaoa": { - "CMOR_varname": "emiaoa", - "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission", - "long_name": "total emission of anthropogenic organic aerosol", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "emiaco": { - "CMOR_varname": "emiaco", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission", - "long_name": "total emission rate of anthropogenic co", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "chegpso4": { - "CMOR_varname": "chegpso4", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_gaseous_phase_net_chemical_production", - "long_name": "Gas-phase production rate of SO4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "emilnox": { - "CMOR_varname": "emilnox", - "standard_name": "tendency_of_atmosphere_moles_of_nox_expressed_as_nitrogen", - "long_name": "layer-integrated lightning production of NOx", - "mipTable": "AERmon", - "units": "mol s-1" - }, - "eminox": { - "CMOR_varname": "eminox", - "standard_name": "tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission", - "long_name": "total emission rate of nox", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "dms": { - "CMOR_varname": "dms", - "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", - "long_name": "DMS volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "ch4": { - "CMOR_varname": "ch4", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "CH4 volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "AERmon", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "AERmon", - "units": "m s-1" - }, - "n2o": { - "CMOR_varname": "n2o", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "N2O volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "mmroa": { - "CMOR_varname": "mmroa", - "standard_name": "mass_fraction_of_particulate_organic_matter_dry_aerosol_particles_in_air", - "long_name": "Total organic aerosol mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "od550no3": { - "CMOR_varname": "od550no3", - "standard_name": "atmosphere_optical_thickness_due_to_nitrate_ambient_aerosol_particles", - "long_name": "nitrate aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "drynoy": { - "CMOR_varname": "drynoy", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_dry_deposition", - "long_name": "dry deposition rate of noy", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "emico": { - "CMOR_varname": "emico", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission", - "long_name": "total emission rate of co", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "no": { - "CMOR_varname": "no", - "standard_name": "mole_fraction_of_nitrogen_monoxide_in_air", - "long_name": "NO volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "tropoz": { - "CMOR_varname": "tropoz", - "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", - "long_name": "Tropospheric Ozone Column", - "mipTable": "AERmon", - "units": "m" - }, - "h2o": { - "CMOR_varname": "h2o", - "standard_name": "mass_fraction_of_water_in_air", - "long_name": "Mass Fraction of Water", - "mipTable": "AERmon", - "units": "1" - }, - "mmrpm10": { - "CMOR_varname": "mmrpm10", - "standard_name": "mass_fraction_of_pm10_ambient_aerosol_particles_in_air", - "long_name": "PM10 mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "emidms": { - "CMOR_varname": "emidms", - "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_emission", - "long_name": "total emission rate of dms", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "dryss": { - "CMOR_varname": "dryss", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sea_salt_dry_aerosol_particles_due_to_dry_deposition", - "long_name": "dry deposition rate of seasalt", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "pan": { - "CMOR_varname": "pan", - "standard_name": "mole_fraction_of_peroxyacetyl_nitrate_in_air", - "long_name": "PAN volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "od550aer": { - "CMOR_varname": "od550aer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "ambient aerosol optical thickness at 550 nm", - "mipTable": "AERmon", - "units": "1" - }, - "emiso2": { - "CMOR_varname": "emiso2", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_emission", - "long_name": "total emission rate of so2", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "cheaqpso4": { - "CMOR_varname": "cheaqpso4", - "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_aqueous_phase_net_chemical_production", - "long_name": "Aqueous-phase production rate of SO4", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "od550aerh2o": { - "CMOR_varname": "od550aerh2o", - "standard_name": "atmosphere_optical_thickness_due_to_water_in_ambient_aerosol_particles", - "long_name": "aerosol water aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "od550oa": { - "CMOR_varname": "od550oa", - "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol_particles", - "long_name": "total organic aerosol aod@550nm", - "mipTable": "AERmon", - "units": "1" - }, - "emiisop": { - "CMOR_varname": "emiisop", - "standard_name": "tendency_of_atmosphere_mass_content_of_isoprene_due_to_emission", - "long_name": "total emission rate of isoprene", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "mmraerh2o": { - "CMOR_varname": "mmraerh2o", - "standard_name": "mass_fraction_of_water_in_ambient_aerosol_particles_in_air", - "long_name": "Aerosol water mass mixing ratio", - "mipTable": "AERmon", - "units": "kg kg-1" - }, - "od870aer": { - "CMOR_varname": "od870aer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "ambient aerosol optical thickness at 870 nm", - "mipTable": "AERmon", - "units": "1" - }, - "ccn": { - "CMOR_varname": "ccn", - "standard_name": "number_concentration_of_cloud_condensation_nuclei_at_stp_in_air", - "long_name": "cloud condensation nuclei concentration at liquid cloud top", - "mipTable": "AERmon", - "units": "m-3" - }, - "eminh3": { - "CMOR_varname": "eminh3", - "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_emission", - "long_name": "total emission rate of nh3", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "wetss": { - "CMOR_varname": "wetss", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sea_salt_dry_aerosol_particles_due_to_wet_deposition", - "long_name": "Wet Deposition Rate of Seasalt", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "drydust": { - "CMOR_varname": "drydust", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_dry_deposition", - "long_name": "dry deposition rate of dust", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "emivoc": { - "CMOR_varname": "emivoc", - "standard_name": "tendency_of_atmosphere_mass_content_of_nmvoc_due_to_emission", - "long_name": "total emission rate of nmvoc", - "mipTable": "AERmon", - "units": "kg m-2 s-1" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface pressure", - "mipTable": "AERhr", - "units": "Pa" - }, - "sfpm25": { - "CMOR_varname": "sfpm25", - "standard_name": "mass_fraction_of_pm2p5_ambient_aerosol_particles_in_air", - "long_name": "PM2.5 mass mixing ratio in lowest model layer", - "mipTable": "AERhr", - "units": "kg kg-1" - }, - "sfno2": { - "CMOR_varname": "sfno2", - "standard_name": "mole_fraction_of_nitrogen_dioxide_in_air", - "long_name": "NO2 volume mixing ratio in lowest model layer", - "mipTable": "AERhr", - "units": "mol mol-1" - }, - "sfo3": { - "CMOR_varname": "sfo3", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "O3 volume mixing ratio in lowest model layer", - "mipTable": "AERhr", - "units": "mol mol-1" - }, - "sossq": { - "CMOR_varname": "sossq", - "standard_name": "square_of_sea_surface_salinity", - "long_name": "Square of Sea Surface Salinity", - "mipTable": "Oday", - "units": "1e-06" - }, - "sosga": { - "CMOR_varname": "sosga", - "standard_name": "sea_surface_salinity", - "long_name": "Global Average Sea Surface Salinity", - "mipTable": "Omon", - "units": "0.001" - }, - "sossq": { - "CMOR_varname": "sossq", - "standard_name": "square_of_sea_surface_salinity", - "long_name": "Square of Sea Surface Salinity", - "mipTable": "Omon", - "units": "1e-06" - }, - "mlotstmax": { - "CMOR_varname": "mlotstmax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Maximum Ocean Mixed Layer Thickness Defined by Sigma T", - "mipTable": "Omon", - "units": "m" - }, - "mlotstmin": { - "CMOR_varname": "mlotstmin", - "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Minimum Ocean Mixed Layer Thickness Defined by Sigma T", - "mipTable": "Omon", - "units": "m" - }, - "obvfsq": { - "CMOR_varname": "obvfsq", - "standard_name": "square_of_brunt_vaisala_frequency_in_sea_water", - "long_name": "Square of Brunt Vaisala Frequency in Sea Water", - "mipTable": "Omon", - "units": "s-2" - }, - "wo": { - "CMOR_varname": "wo", - "standard_name": "upward_sea_water_velocity", - "long_name": "Sea Water Z Velocity", - "mipTable": "Omon", - "units": "m s-1" - }, - "opottempmint": { - "CMOR_varname": "opottempmint", - "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_potential_temperature", - "long_name": "integral wrt depth of product of sea water density and potential temperature", - "mipTable": "Oyr", - "units": "degC kg m-2" - }, - "ocontempmint": { - "CMOR_varname": "ocontempmint", - "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_conservative_temperature", - "long_name": "integral wrt depth of product of sea water density and conservative temperature", - "mipTable": "Oyr", - "units": "degC kg m-2" - }, - "somint": { - "CMOR_varname": "somint", - "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_salinity", - "long_name": "integral wrt depth of product of sea water density and salinity", - "mipTable": "Oyr", - "units": "1e-3 kg m-2" - }, - "rsdoabsorb": { - "CMOR_varname": "rsdoabsorb", - "standard_name": "net_rate_of_absorption_of_shortwave_energy_in_ocean_layer", - "long_name": "net rate of absorption of shortwave energy in ocean layer", - "mipTable": "Oyr", - "units": "W m-2" - }, - "opottemprmadvect": { - "CMOR_varname": "opottemprmadvect", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_residual_mean_advection", - "long_name": "tendency of sea water potential temperature expressed as heat content due to residual mean advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "ocontemprmadvect": { - "CMOR_varname": "ocontemprmadvect", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_residual_mean_advection", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to residual mean (sum of Eulerian + parameterized) advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "osaltrmadvect": { - "CMOR_varname": "osaltrmadvect", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_residual_mean_advection", - "long_name": "tendency of sea water salinity expressed as salt content due to residual mean advection", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "CF3hr", - "units": "Pa" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "E3hrPt", - "units": "Pa" - }, - "rlntds": { - "CMOR_varname": "rlntds", - "standard_name": "surface_net_downward_longwave_flux", - "long_name": "Surface Net Downward Longwave Radiation", - "mipTable": "Omon", - "units": "W m-2" - }, - "clisccp": { - "CMOR_varname": "clisccp", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "ISCCP Percentage Cloud Area", - "mipTable": "CFmon", - "units": "%" - }, - "clisccp": { - "CMOR_varname": "clisccp", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "ISCCP Cloud Area Fraction", - "mipTable": "CFday", - "units": "%" - }, - "tasmaxCrop": { - "CMOR_varname": "tasmaxCrop", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature over Crop Tile", - "mipTable": "Eday", - "units": "K" - }, - "tasminCrop": { - "CMOR_varname": "tasminCrop", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature over Crop Tile", - "mipTable": "Eday", - "units": "K" - }, - "prCrop": { - "CMOR_varname": "prCrop", - "standard_name": "precipitation_flux", - "long_name": "Precipitation over Crop Tile", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "meanage": { - "CMOR_varname": "meanage", - "standard_name": "age_of_stratospheric_air", - "long_name": "Mean Age of Stratospheric Air", - "mipTable": "AERmonZ", - "units": "yr" - }, - "nh50": { - "CMOR_varname": "nh50", - "standard_name": "mole_fraction_of_artificial_tracer_with_fixed_lifetime_in_air", - "long_name": "Artificial tracer with 50 day lifetime", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "aoanh": { - "CMOR_varname": "aoanh", - "standard_name": "tracer_lifetime", - "long_name": "Tracer age of air Northern Hemisphere", - "mipTable": "AERmon", - "units": "yr" - }, - "zfullo": { - "CMOR_varname": "zfullo", - "standard_name": "depth_below_geoid", - "long_name": "Depth Below Geoid of Ocean Layer", - "mipTable": "Oclim", - "units": "m" - }, - "zhalfo": { - "CMOR_varname": "zhalfo", - "standard_name": "depth_below_geoid", - "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", - "mipTable": "Oclim", - "units": "m" - }, - "mrso": { - "CMOR_varname": "mrso", - "standard_name": "mass_content_of_water_in_soil", - "long_name": "Total Soil Moisture Content", - "mipTable": "day", - "units": "kg m-2" - }, - "irrLut": { - "CMOR_varname": "irrLut", - "standard_name": "surface_downward_mass_flux_of_water_due_to_irrigation", - "long_name": "Irrigation flux including any irrigation for crops", - "mipTable": "trees", - "units": "pasture" - }, - "fahLut": { - "CMOR_varname": "fahLut", - "standard_name": "surface_upward_heat_flux_due_to_anthropogenic_energy_consumption", - "long_name": "Anthropogenic heat flux generated from non-renewable human primary energy consumption", - "mipTable": "including energy use by vehicles", - "units": "commercial and residential buildings" - }, - "fProductDecompLut": { - "CMOR_varname": "fProductDecompLut", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products", - "long_name": "flux from wood and agricultural product pools on land use tile into atmosphere", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fLulccProductLut": { - "CMOR_varname": "fLulccProductLut", - "standard_name": "carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", - "long_name": "carbon harvested due to land-use or land-cover change process that enters anthropogenic product pools on tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fLulccResidueLut": { - "CMOR_varname": "fLulccResidueLut", - "standard_name": "carbon_mass_flux_into_soil_and_litter_due_to_anthropogenic_land_use_or_land_cover_change", - "long_name": "carbon transferred to soil or litter pools due to land-use or land-cover change processes on tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fLulccAtmLut": { - "CMOR_varname": "fLulccAtmLut", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_land_use_or_land_cover_change_excluding_forestry_and_agricultural_products", - "long_name": "carbon transferred directly to atmosphere due to any land-use or land-cover change activities including deforestation or agricultural fire", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "cProductLut": { - "CMOR_varname": "cProductLut", - "standard_name": "carbon_mass_content_of_forestry_and_agricultural_products", - "long_name": "wood and agricultural product pool carbon associated with land use tiles; examples of products include paper", - "mipTable": "cardboard", - "units": "timber for construction" - }, - "cProduct": { - "CMOR_varname": "cProduct", - "standard_name": "carbon_mass_content_of_forestry_and_agricultural_products", - "long_name": "Carbon Mass in Products of Land Use Change", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "AERmon", - "units": "Pa" - }, - "masso": { - "CMOR_varname": "masso", - "standard_name": "sea_water_mass", - "long_name": "Sea Water Mass", - "mipTable": "Odec", - "units": "kg" - }, - "volo": { - "CMOR_varname": "volo", - "standard_name": "sea_water_volume", - "long_name": "Sea Water Volume", - "mipTable": "Odec", - "units": "m3" - }, - "thkcello": { - "CMOR_varname": "thkcello", - "standard_name": "cell_thickness", - "long_name": "Ocean Model Cell Thickness", - "mipTable": "Odec", - "units": "m" - }, - "thetao": { - "CMOR_varname": "thetao", - "standard_name": "sea_water_potential_temperature", - "long_name": "Sea Water Potential Temperature", - "mipTable": "Odec", - "units": "degC" - }, - "thetaoga": { - "CMOR_varname": "thetaoga", - "standard_name": "sea_water_potential_temperature", - "long_name": "Global Average Sea Water Potential Temperature", - "mipTable": "Odec", - "units": "degC" - }, - "bigthetaoga": { - "CMOR_varname": "bigthetaoga", - "standard_name": "sea_water_conservative_temperature", - "long_name": "Global Average Sea Water Conservative Temperature", - "mipTable": "Odec", - "units": "degC" - }, - "tos": { - "CMOR_varname": "tos", - "standard_name": "sea_surface_temperature", - "long_name": "Sea Surface Temperature", - "mipTable": "Odec", - "units": "degC" - }, - "tosga": { - "CMOR_varname": "tosga", - "standard_name": "sea_surface_temperature", - "long_name": "Global Average Sea Surface Temperature", - "mipTable": "Odec", - "units": "degC" - }, - "so": { - "CMOR_varname": "so", - "standard_name": "sea_water_salinity", - "long_name": "Sea Water Salinity", - "mipTable": "Odec", - "units": "0.001" - }, - "soga": { - "CMOR_varname": "soga", - "standard_name": "sea_water_salinity", - "long_name": "Global Mean Sea Water Salinity", - "mipTable": "Odec", - "units": "0.001" - }, - "sos": { - "CMOR_varname": "sos", - "standard_name": "sea_surface_salinity", - "long_name": "Sea Surface Salinity", - "mipTable": "Odec", - "units": "0.001" - }, - "sosga": { - "CMOR_varname": "sosga", - "standard_name": "sea_surface_salinity", - "long_name": "Global Average Sea Surface Salinity", - "mipTable": "Odec", - "units": "0.001" - }, - "agessc": { - "CMOR_varname": "agessc", - "standard_name": "sea_water_age_since_surface_contact", - "long_name": "Sea Water Age Since Surface Contact", - "mipTable": "Odec", - "units": "yr" - }, - "uo": { - "CMOR_varname": "uo", - "standard_name": "sea_water_x_velocity", - "long_name": "Sea Water X Velocity", - "mipTable": "Odec", - "units": "m s-1" - }, - "vo": { - "CMOR_varname": "vo", - "standard_name": "sea_water_y_velocity", - "long_name": "Sea Water Y Velocity", - "mipTable": "Odec", - "units": "m s-1" - }, - "wo": { - "CMOR_varname": "wo", - "standard_name": "upward_sea_water_velocity", - "long_name": "Sea Water Z Velocity", - "mipTable": "Odec", - "units": "m s-1" - }, - "msftmz": { - "CMOR_varname": "msftmz", - "standard_name": "ocean_meridional_overturning_mass_streamfunction", - "long_name": "Ocean Meridional Overturning Mass Streamfunction", - "mipTable": "Odec", - "units": "kg s-1" - }, - "hfbasin": { - "CMOR_varname": "hfbasin", - "standard_name": "northward_ocean_heat_transport", - "long_name": "Northward Ocean Heat Transport", - "mipTable": "Odec", - "units": "W" - }, - "wfo": { - "CMOR_varname": "wfo", - "standard_name": "water_flux_into_sea_water", - "long_name": "Water Flux into Sea Water", - "mipTable": "Odec", - "units": "kg m-2 s-1" - }, - "sfdsi": { - "CMOR_varname": "sfdsi", - "standard_name": "downward_sea_ice_basal_salt_flux", - "long_name": "Downward Sea Ice Basal Salt Flux", - "mipTable": "Odec", - "units": "kg m-2 s-1" - }, - "sfriver": { - "CMOR_varname": "sfriver", - "standard_name": "salt_flux_into_sea_water_from_rivers", - "long_name": "Salt Flux into Sea Water from Rivers", - "mipTable": "Odec", - "units": "kg m-2 s-1" - }, - "dmso": { - "CMOR_varname": "dmso", - "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", - "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "ugrid": { - "CMOR_varname": "ugrid", - "standard_name": "longitude", - "long_name": "UGRID Grid Information", - "mipTable": "Ofx", - "units": "" - }, - "o3": { - "CMOR_varname": "o3", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Mole Fraction of O3", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "o3Clim": { - "CMOR_varname": "o3Clim", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Mole Fraction of O3", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "hurs": { - "CMOR_varname": "hurs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "mipTable": "day", - "units": "%" - }, - "hursmin": { - "CMOR_varname": "hursmin", - "standard_name": "relative_humidity", - "long_name": "Surface Daily Minimum Relative Humidity", - "mipTable": "day", - "units": "%" - }, - "hursmax": { - "CMOR_varname": "hursmax", - "standard_name": "relative_humidity", - "long_name": "Surface Daily Maximum Relative Humidity", - "mipTable": "day", - "units": "%" - }, - "epc100": { - "CMOR_varname": "epc100", - "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", - "long_name": "Downward Flux of Particulate Organic Carbon", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "epfe100": { - "CMOR_varname": "epfe100", - "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", - "long_name": "Downward Flux of Particulate Iron", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "epsi100": { - "CMOR_varname": "epsi100", - "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", - "long_name": "Downward Flux of Particulate Silicon", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "epcalc100": { - "CMOR_varname": "epcalc100", - "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Downward Flux of Calcite", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "eparag100": { - "CMOR_varname": "eparag100", - "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Downward Flux of Aragonite", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "zfullo": { - "CMOR_varname": "zfullo", - "standard_name": "depth_below_geoid", - "long_name": "Depth Below Geoid of Ocean Layer", - "mipTable": "Omon", - "units": "m" - }, - "zhalfo": { - "CMOR_varname": "zhalfo", - "standard_name": "depth_below_geoid", - "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", - "mipTable": "Omon", - "units": "m" - }, - "tntmp": { - "CMOR_varname": "tntmp", - "standard_name": "tendency_of_air_temperature_due_to_model_physics", - "long_name": "Tendency of Air Temperature due to Model Physics", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "E3hrPt", - "units": "1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "loaddust": { - "CMOR_varname": "loaddust", - "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol_particles", - "long_name": "Load of Dust", - "mipTable": "Emon", - "units": "kg m-2" - }, - "concdust": { - "CMOR_varname": "concdust", - "standard_name": "mass_concentration_of_dust_dry_aerosol_particles_in_air", - "long_name": "Concentration of Dust", - "mipTable": "Emon", - "units": "kg m-3" - }, - "utendogw": { - "CMOR_varname": "utendogw", - "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", - "long_name": "u-tendency orographic gravity wave drag", - "mipTable": "Emon", - "units": "m s-2" - }, - "utendnogw": { - "CMOR_varname": "utendnogw", - "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "u-tendency nonorographic gravity wave drag", - "mipTable": "Emon", - "units": "m s-2" - }, - "diabdrag": { - "CMOR_varname": "diabdrag", - "standard_name": "tendency_of_eastward_wind_due_to_numerical_artefacts", - "long_name": "Tendency of Eastward Wind from Numerical Artefacts", - "mipTable": "Emon", - "units": "m s-2" - }, - "conccmcn": { - "CMOR_varname": "conccmcn", - "standard_name": "number_concentration_of_coarse_mode_ambient_aerosol_particles_in_air", - "long_name": "Number Concentration Coarse Mode Aerosol", - "mipTable": "Emon", - "units": "m-3" - }, - "concnmcn": { - "CMOR_varname": "concnmcn", - "standard_name": "number_concentration_of_nucleation_mode_ambient_aerosol_particles_in_air", - "long_name": "Number Concentration of Nucleation Mode Aerosol", - "mipTable": "Emon", - "units": "m-3" - }, - "conccn": { - "CMOR_varname": "conccn", - "standard_name": "number_concentration_of_ambient_aerosol_particles_in_air", - "long_name": "Aerosol Number Concentration", - "mipTable": "Emon", - "units": "m-3" - }, - "ec550aer": { - "CMOR_varname": "ec550aer", - "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", - "long_name": "Aerosol extinction coefficient", - "mipTable": "Emon", - "units": "m-1" - }, - "rsdsdiff": { - "CMOR_varname": "rsdsdiff", - "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", - "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "mipTable": "Emon", - "units": "W m-2" - }, - "cldnci": { - "CMOR_varname": "cldnci", - "standard_name": "number_concentration_of_ice_crystals_in_air_at_ice_cloud_top", - "long_name": "Ice Crystal Number Concentration of Cloud Tops", - "mipTable": "Emon", - "units": "m-3" - }, - "sconcso4": { - "CMOR_varname": "sconcso4", - "standard_name": "mass_concentration_of_sulfate_dry_aerosol_particles_in_air", - "long_name": "Surface Concentration of SO4", - "mipTable": "Emon", - "units": "kg m-3" - }, - "cldncl": { - "CMOR_varname": "cldncl", - "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", - "long_name": "Cloud Droplet Number Concentration of Cloud Tops", - "mipTable": "Emon", - "units": "m-3" - }, - "cldnvi": { - "CMOR_varname": "cldnvi", - "standard_name": "atmosphere_number_content_of_cloud_droplets", - "long_name": "Column Integrated Cloud Droplet Number", - "mipTable": "Emon", - "units": "m-2" - }, - "sconcss": { - "CMOR_varname": "sconcss", - "standard_name": "mass_concentration_of_sea_salt_dry_aerosol_particles_in_air", - "long_name": "Surface Concentration of Seasalt", - "mipTable": "Emon", - "units": "kg m-3" - }, - "sconcdust": { - "CMOR_varname": "sconcdust", - "standard_name": "mass_concentration_of_dust_dry_aerosol_particles_in_air", - "long_name": "Surface Concentration of Dust", - "mipTable": "Emon", - "units": "kg m-3" - }, - "loadso4": { - "CMOR_varname": "loadso4", - "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol_particles", - "long_name": "Load of SO4", - "mipTable": "Emon", - "units": "kg m-2" - }, - "loadss": { - "CMOR_varname": "loadss", - "standard_name": "atmosphere_mass_content_of_sea_salt_dry_aerosol_particles", - "long_name": "Load of Seasalt", - "mipTable": "Emon", - "units": "kg m-2" - }, - "pr18O": { - "CMOR_varname": "pr18O", - "standard_name": "precipitation_flux_containing_18O", - "long_name": "Precipitation Flux of Water containing Oxygen-18 (H2 18O)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "prsn18O": { - "CMOR_varname": "prsn18O", - "standard_name": "solid_precipitation_flux_containing_18O", - "long_name": "Precipitation Flux of Snow and Ice containing Oxygen-18 (H2 18O)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "pr2h": { - "CMOR_varname": "pr2h", - "standard_name": "precipitation_flux_containing_single_2H", - "long_name": "Precipitation Flux of Water containing Deuterium (1H 2H O)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "prsn2h": { - "CMOR_varname": "prsn2h", - "standard_name": "solid_precipitation_flux_containing_single_2H", - "long_name": "Precipitation Flux of Snow and Ice containing Deuterium (1H 2H O)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "pr17O": { - "CMOR_varname": "pr17O", - "standard_name": "precipitation_flux_containing_17O", - "long_name": "Precipitation Flux of Water containing Oxygen-17 (H2 17O)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "prsn17O": { - "CMOR_varname": "prsn17O", - "standard_name": "solid_precipitation_flux_containing_17O", - "long_name": "Precipitation Flux of Snow and Ice containing Oxygen-17 (H2 17O)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "O18wv": { - "CMOR_varname": "O18wv", - "standard_name": "isotope_ratio_of_18O_to_16O_in_sea_water_excluding_solutes_and_solids", - "long_name": "O18 in water vapor", - "mipTable": "Emon", - "units": "1" - }, - "prw17O": { - "CMOR_varname": "prw17O", - "standard_name": "mass_content_of_water_vapor_containing_17O_in_atmosphere_layer", - "long_name": "Mass of Water containing Oxygen-17 (H2 17O) in Layer", - "mipTable": "Emon", - "units": "kg m-2" - }, - "prw2H": { - "CMOR_varname": "prw2H", - "standard_name": "mass_content_of_water_vapor_containing_single_2H_in_atmosphere_layer", - "long_name": "Mass of Water containing Deuterium (1H 2H O) in Layer", - "mipTable": "Emon", - "units": "kg m-2" - }, - "evspsblpot": { - "CMOR_varname": "evspsblpot", - "standard_name": "water_potential_evaporation_flux", - "long_name": "Potential Evapotranspiration", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rss": { - "CMOR_varname": "rss", - "standard_name": "surface_net_downward_shortwave_flux", - "long_name": "Net Shortwave Surface Radiation", - "mipTable": "Emon", - "units": "W m-2" - }, - "tdps": { - "CMOR_varname": "tdps", - "standard_name": "dew_point_temperature", - "long_name": "2m dewpoint temperature", - "mipTable": "Emon", - "units": "K" - }, - "intuaw": { - "CMOR_varname": "intuaw", - "standard_name": "eastward_atmosphere_water_transport_across_unit_distance", - "long_name": "Vertically integrated Eastward moisture transport (Mass_weighted_vertical integral of the product of eastward wind by total water mass per unit mass)", - "mipTable": "Emon", - "units": "kg m-1 s-1" - }, - "intvaw": { - "CMOR_varname": "intvaw", - "standard_name": "northward_atmosphere_water_transport_across_unit_distance", - "long_name": "Vertically integrated Northward moisture transport (Mass_weighted_vertical integral of the product of northward wind by total water mass per unit mass)", - "mipTable": "Emon", - "units": "kg m-1 s-1" - }, - "intuadse": { - "CMOR_varname": "intuadse", - "standard_name": "eastward_atmosphere_dry_static_energy_transport_across_unit_distance", - "long_name": "Vertically integrated Eastward dry transport (cp.T +zg).u (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit)", - "mipTable": "Emon", - "units": "1.e6 J m-1 s-1" - }, - "intvadse": { - "CMOR_varname": "intvadse", - "standard_name": "northward_atmosphere_dry_static_energy_transport_across_unit_distance", - "long_name": "Vertically integrated Northward dry transport (cp.T +zg).v (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit)", - "mipTable": "Emon", - "units": "1.e6 J m-1 s-1" - }, - "flashrate": { - "CMOR_varname": "flashrate", - "standard_name": "frequency_of_lightning_flashes_per_unit_area", - "long_name": "Lightning Flash Rate", - "mipTable": "Emon", - "units": "km-2 s-1" - }, - "prw18O": { - "CMOR_varname": "prw18O", - "standard_name": "mass_content_of_water_vapor_containing_18O_in_atmosphere_layer", - "long_name": "Isotopic Ratio of Oxygen-18 in Sea Water", - "mipTable": "Emon", - "units": "kg m-2" - }, - "thetaot": { - "CMOR_varname": "thetaot", - "standard_name": "sea_water_potential_temperature", - "long_name": "Vertically Averaged Sea Water Potential Temperature", - "mipTable": "Emon", - "units": "degC" - }, - "mrsll": { - "CMOR_varname": "mrsll", - "standard_name": "liquid_water_content_of_soil_layer", - "long_name": "Liquid water content of soil layer", - "mipTable": "Emon", - "units": "kg m-2" - }, - "mrtws": { - "CMOR_varname": "mrtws", - "standard_name": "land_water_amount", - "long_name": "Total water storage in a grid cell", - "mipTable": "Emon", - "units": "kg m-2" - }, - "vegFrac": { - "CMOR_varname": "vegFrac", - "standard_name": "area_fraction", - "long_name": "Total vegetated percentage cover", - "mipTable": "Emon", - "units": "%" - }, - "treeFracNdlEvg": { - "CMOR_varname": "treeFracNdlEvg", - "standard_name": "area_fraction", - "long_name": "Needleleaf evergreen tree area percentage", - "mipTable": "Emon", - "units": "%" - }, - "treeFracNdlDcd": { - "CMOR_varname": "treeFracNdlDcd", - "standard_name": "area_fraction", - "long_name": "Needleleaf deciduous tree area percentage", - "mipTable": "Emon", - "units": "%" - }, - "treeFracBdlEvg": { - "CMOR_varname": "treeFracBdlEvg", - "standard_name": "area_fraction", - "long_name": "Broadleaf evergreen tree area percentage", - "mipTable": "Emon", - "units": "%" - }, - "treeFracBdlDcd": { - "CMOR_varname": "treeFracBdlDcd", - "standard_name": "area_fraction", - "long_name": "Broadleaf deciduous tree area percentage", - "mipTable": "Emon", - "units": "%" - }, - "cropFracC4": { - "CMOR_varname": "cropFracC4", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by C4 Crops", - "mipTable": "Emon", - "units": "%" - }, - "vegHeight": { - "CMOR_varname": "vegHeight", - "standard_name": "canopy_height", - "long_name": "canopy height", - "mipTable": "Emon", - "units": "m" - }, - "vegHeightTree": { - "CMOR_varname": "vegHeightTree", - "standard_name": "canopy_height", - "long_name": "Vegetation height averaged over the tree fraction of a grid cell.", - "mipTable": "Emon", - "units": "m" - }, - "wetlandFrac": { - "CMOR_varname": "wetlandFrac", - "standard_name": "area_fraction", - "long_name": "Wetland Percentage Cover", - "mipTable": "Emon", - "units": "%" - }, - "c14Veg": { - "CMOR_varname": "c14Veg", - "standard_name": "vegetation_mass_content_of_14C", - "long_name": "Mass of 14C in Vegetation", - "mipTable": "Emon", - "units": "kg m-2" - }, - "c13Soil": { - "CMOR_varname": "c13Soil", - "standard_name": "soil_mass_content_of_13C", - "long_name": "Mass of 13C in Soil Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nVeg": { - "CMOR_varname": "nVeg", - "standard_name": "vegetation_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Vegetation", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nLitter": { - "CMOR_varname": "nLitter", - "standard_name": "litter_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Litter Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nLand": { - "CMOR_varname": "nLand", - "standard_name": "mass_content_of_nitrogen_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", - "long_name": "Total nitrogen in all terrestrial nitrogen pools", - "mipTable": "Emon", - "units": "kg m-2" - }, - "wetlandCH4": { - "CMOR_varname": "wetlandCH4", - "standard_name": "surface_net_upward_mass_flux_of_methane_due_to_emission_from_wetland_biological_processes", - "long_name": "Grid averaged methane emissions from wetlands", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rac14": { - "CMOR_varname": "rac14", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_plant_respiration", - "long_name": "Mass Flux of 14C into Atmosphere due to Autotrophic (Plant) Respiration on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhc14": { - "CMOR_varname": "rhc14", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_heterotrophic_respiration", - "long_name": "Mass Flux of 14C into Atmosphere due to Heterotrophic Respiration on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rac13": { - "CMOR_varname": "rac13", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_plant_respiration", - "long_name": "Mass Flux of 13C into Atmosphere due to Autotrophic (Plant) Respiration on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "netAtmosLandC13Flux": { - "CMOR_varname": "netAtmosLandC13Flux", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_all_land_processes", - "long_name": "Net Mass Flux of 13C between atmosphere and land (positive into land) as a result of all processes.", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fN2O": { - "CMOR_varname": "fN2O", - "standard_name": "surface_upward_mass_flux_of_nitrous_oxide_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", - "long_name": "Total land N2O flux", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "od550aerso": { - "CMOR_varname": "od550aerso", - "standard_name": "stratosphere_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "Stratospheric Optical depth at 550 nm (all aerosols) 2D-field (here we limit the computation of OD to the stratosphere only)", - "mipTable": "Emon", - "units": "1" - }, - "od550so4so": { - "CMOR_varname": "od550so4so", - "standard_name": "stratosphere_optical_thickness_due_to_sulfate_ambient_aerosol_particles", - "long_name": "Stratospheric Optical depth at 550 nm (sulphate only) 2D-field (here we limit the computation of OD to the stratosphere only)", - "mipTable": "Emon", - "units": "1" - }, - "mmrno3": { - "CMOR_varname": "mmrno3", - "standard_name": "mass_fraction_of_nitrate_dry_aerosol_particles_in_air", - "long_name": "NO3 aerosol mass mixing ratio", - "mipTable": "Emon", - "units": "kg kg-1" - }, - "depdust": { - "CMOR_varname": "depdust", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_deposition", - "long_name": "Total Deposition Rate of Dust", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "sedustCI": { - "CMOR_varname": "sedustCI", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_insoluble_dust_dry_aerosol_particles_due_to_deposition", - "long_name": "Sedimentation Flux of dust mode coarse insoluble", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "md": { - "CMOR_varname": "md", - "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission", - "long_name": "Wet diameter mode coarse insoluble", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "od443dust": { - "CMOR_varname": "od443dust", - "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", - "long_name": "Optical thickness at 443 nm Dust", - "mipTable": "Emon", - "units": "1" - }, - "od865dust": { - "CMOR_varname": "od865dust", - "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", - "long_name": "Optical thickness at 865 nm Dust", - "mipTable": "Emon", - "units": "1" - }, - "lwtoacsdust": { - "CMOR_varname": "lwtoacsdust", - "standard_name": "toa_longwave_dust_ambient_aerosol_particles_direct_radiative_effect_assuming_clear_sky", - "long_name": "Clear-sky TOA Longwave radiative flux due to Dust", - "mipTable": "Emon", - "units": "W m-2" - }, - "swsrfcsdust": { - "CMOR_varname": "swsrfcsdust", - "standard_name": "surface_net_downward_shortwave_dust_ambient_aerosol_particles_direct_radiative_effect_assuming_clear_sky", - "long_name": "Clear-sky Surface Shortwave radiative flux due to Dust", - "mipTable": "Emon", - "units": "W m-2" - }, - "swsrfasdust": { - "CMOR_varname": "swsrfasdust", - "standard_name": "surface_net_downward_shortwave_dust_ambient_aerosol_particles_direct_radiative_effect", - "long_name": "All-sky Surface Shortwave radiative flux due to Dust", - "mipTable": "Emon", - "units": "W m-2" - }, - "lwsrfcsdust": { - "CMOR_varname": "lwsrfcsdust", - "standard_name": "surface_net_downward_longwave_dust_ambient_aerosol_particles_direct_radiative_effect_assuming_clear_sky", - "long_name": "Clear-sky Surface Longwave radiative flux due to Dust", - "mipTable": "Emon", - "units": "W m-2" - }, - "lwsrfasdust": { - "CMOR_varname": "lwsrfasdust", - "standard_name": "surface_net_downward_longwave_dust_ambient_aerosol_particles_direct_radiative_effect", - "long_name": "All-sky Surface Longwave radiative flux due to Dust", - "mipTable": "Emon", - "units": "W m-2" - }, - "zmla": { - "CMOR_varname": "zmla", - "standard_name": "atmosphere_boundary_layer_thickness", - "long_name": "Height of Boundary Layer", - "mipTable": "Eday", - "units": "m" - }, - "hus850": { - "CMOR_varname": "hus850", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "Eday", - "units": "1" - }, - "ta500": { - "CMOR_varname": "ta500", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "Eday", - "units": "K" - }, - "simassacrossline": { - "CMOR_varname": "simassacrossline", - "standard_name": "sea_ice_transport_across_line", - "long_name": "Sea mass area flux through straits", - "mipTable": "SImon", - "units": "kg s-1" - }, - "sipr": { - "CMOR_varname": "sipr", - "standard_name": "rainfall_flux", - "long_name": "Rainfall rate over sea ice", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siflswdbot": { - "CMOR_varname": "siflswdbot", - "standard_name": "downwelling_shortwave_flux_in_sea_water_at_sea_ice_base", - "long_name": "Downwelling shortwave flux under sea ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "sifllwdtop": { - "CMOR_varname": "sifllwdtop", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Downwelling longwave flux over sea ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "siflswutop": { - "CMOR_varname": "siflswutop", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Upwelling Shortwave Flux over Sea Ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "siflfwbot": { - "CMOR_varname": "siflfwbot", - "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", - "long_name": "Freshwater flux from sea ice", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siforcetilty": { - "CMOR_varname": "siforcetilty", - "standard_name": "sea_ice_y_force_per_unit_area_due_to_sea_surface_tilt", - "long_name": "Sea-surface tilt term in force balance (y-component)", - "mipTable": "SImon", - "units": "N m-2" - }, - "sitemptop": { - "CMOR_varname": "sitemptop", - "standard_name": "sea_ice_surface_temperature", - "long_name": "Surface temperature of sea ice", - "mipTable": "SImon", - "units": "K" - }, - "sndmassdyn": { - "CMOR_varname": "sndmassdyn", - "standard_name": "tendency_of_surface_snow_amount_due_to_sea_ice_dynamics", - "long_name": "Snow Mass Rate of Change through Avection by Sea-ice Dynamics", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siflfwdrain": { - "CMOR_varname": "siflfwdrain", - "standard_name": "water_flux_into_sea_water_due_to_surface_drainage", - "long_name": "Freshwater flux from sea-ice surface", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sisnconc": { - "CMOR_varname": "sisnconc", - "standard_name": "surface_snow_area_fraction", - "long_name": "Snow area fraction", - "mipTable": "SImon", - "units": "%" - }, - "siforceintstry": { - "CMOR_varname": "siforceintstry", - "standard_name": "sea_ice_y_internal_stress", - "long_name": "Internal stress term in force balance (y-component)", - "mipTable": "SImon", - "units": "N m-2" - }, - "sisali": { - "CMOR_varname": "sisali", - "standard_name": "sea_ice_salinity", - "long_name": "Sea ice salinity", - "mipTable": "SImon", - "units": "0.001" - }, - "sistrxdtop": { - "CMOR_varname": "sistrxdtop", - "standard_name": "surface_downward_x_stress", - "long_name": "X-component of atmospheric stress on sea ice", - "mipTable": "SImon", - "units": "N m-2" - }, - "siitdsnconc": { - "CMOR_varname": "siitdsnconc", - "standard_name": "surface_snow_area_fraction", - "long_name": "Snow area fractions in thickness categories", - "mipTable": "SImon", - "units": "%" - }, - "siflcondtop": { - "CMOR_varname": "siflcondtop", - "standard_name": "surface_downward_sensible_heat_flux", - "long_name": "Net conductive heat flux in ice at the surface", - "mipTable": "SImon", - "units": "W m-2" - }, - "sicompstren": { - "CMOR_varname": "sicompstren", - "standard_name": "compressive_strength_of_sea_ice", - "long_name": "Compressive sea ice strength", - "mipTable": "SImon", - "units": "N m-1" - }, - "hus7h": { - "CMOR_varname": "hus7h", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "simpmass": { - "CMOR_varname": "simpmass", - "standard_name": "sea_ice_melt_pond_thickness", - "long_name": "Meltpond Mass per Unit Area", - "mipTable": "SImon", - "units": "kg m-2" - }, - "sistrxubot": { - "CMOR_varname": "sistrxubot", - "standard_name": "upward_x_stress_at_sea_ice_base", - "long_name": "X-component of ocean stress on sea ice", - "mipTable": "SImon", - "units": "N m-2" - }, - "siconca": { - "CMOR_varname": "siconca", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea Ice Area Fraction (Atmospheric Grid)", - "mipTable": "SImon", - "units": "%" - }, - "sidmassgrowthbot": { - "CMOR_varname": "sidmassgrowthbot", - "standard_name": "tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation", - "long_name": "sea-ice mass change through basal growth", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sistresave": { - "CMOR_varname": "sistresave", - "standard_name": "sea_ice_average_normal_horizontal_stress", - "long_name": "Average normal stress in sea ice", - "mipTable": "SImon", - "units": "N m-1" - }, - "siitdconc": { - "CMOR_varname": "siitdconc", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea-ice area fractions in thickness categories", - "mipTable": "SImon", - "units": "%" - }, - "simprefrozen": { - "CMOR_varname": "simprefrozen", - "standard_name": "thickness_of_ice_on_sea_ice_melt_pond", - "long_name": "Thickness of Refrozen Ice on Melt Pond", - "mipTable": "SImon", - "units": "m" - }, - "wbptemp7h": { - "CMOR_varname": "wbptemp7h", - "standard_name": "wet_bulb_potential_temperature", - "long_name": "wet_bulb_potential_temperature", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "sidmassdyn": { - "CMOR_varname": "sidmassdyn", - "standard_name": "tendency_of_sea_ice_amount_due_to_sea_ice_dynamics", - "long_name": "sea-ice mass change from dynamics", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sidconcth": { - "CMOR_varname": "sidconcth", - "standard_name": "tendency_of_sea_ice_area_fraction_due_to_thermodynamics", - "long_name": "sea-ice area fraction change from thermodynamics", - "mipTable": "SImon", - "units": "s-1" - }, - "sitempsnic": { - "CMOR_varname": "sitempsnic", - "standard_name": "sea_ice_surface_temperature", - "long_name": "Temperature at snow-ice interface", - "mipTable": "SImon", - "units": "K" - }, - "sidragtop": { - "CMOR_varname": "sidragtop", - "standard_name": "surface_drag_coefficient_for_momentum_in_air", - "long_name": "Atmospheric drag coefficient", - "mipTable": "SImon", - "units": "1" - }, - "sivols": { - "CMOR_varname": "sivols", - "standard_name": "sea_ice_volume", - "long_name": "Sea ice volume South", - "mipTable": "SImon", - "units": "1e3 km3" - }, - "siflsensupbot": { - "CMOR_varname": "siflsensupbot", - "standard_name": "upward_sea_ice_basal_heat_flux", - "long_name": "Net upward sensible heat flux under sea ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "sndmasswindrif": { - "CMOR_varname": "sndmasswindrif", - "standard_name": "tendency_of_surface_snow_amount_due_to_drifting_into_sea", - "long_name": "Snow Mass Rate of Change through Wind Drift of Snow", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siforcetiltx": { - "CMOR_varname": "siforcetiltx", - "standard_name": "sea_ice_x_force_per_unit_area_due_to_sea_surface_tilt", - "long_name": "Sea-surface tilt term in force balance (x-component)", - "mipTable": "SImon", - "units": "N m-2" - }, - "siv": { - "CMOR_varname": "siv", - "standard_name": "sea_ice_y_velocity", - "long_name": "Y-component of sea ice velocity", - "mipTable": "SImon", - "units": "m s-1" - }, - "simpconc": { - "CMOR_varname": "simpconc", - "standard_name": "area_fraction", - "long_name": "Percentage Cover of Sea-Ice by Meltpond", - "mipTable": "SImon", - "units": "%" - }, - "siareaacrossline": { - "CMOR_varname": "siareaacrossline", - "standard_name": "sea_ice_area_transport_across_line", - "long_name": "Sea ice area flux through straits", - "mipTable": "SImon", - "units": "m2 s-1" - }, - "sidmassmelttop": { - "CMOR_varname": "sidmassmelttop", - "standard_name": "tendency_of_sea_ice_amount_due_to_surface_melting", - "long_name": "sea-ice mass change through surface melting", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sidmasslat": { - "CMOR_varname": "sidmasslat", - "standard_name": "tendency_of_sea_ice_amount_due_to_lateral_melting", - "long_name": "Lateral sea ice melt rate", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siareas": { - "CMOR_varname": "siareas", - "standard_name": "sea_ice_area", - "long_name": "Sea ice area South", - "mipTable": "SImon", - "units": "1e6 km2" - }, - "sidmassth": { - "CMOR_varname": "sidmassth", - "standard_name": "tendency_of_sea_ice_amount_due_to_sea_ice_thermodynamics", - "long_name": "sea-ice mass change from thermodynamics", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sifllatstop": { - "CMOR_varname": "sifllatstop", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Net latent heat flux over sea ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "sivol": { - "CMOR_varname": "sivol", - "standard_name": "sea_ice_thickness", - "long_name": "Sea-ice volume per area", - "mipTable": "SImon", - "units": "m" - }, - "sidmassmeltbot": { - "CMOR_varname": "sidmassmeltbot", - "standard_name": "tendency_of_sea_ice_amount_due_to_basal_melting", - "long_name": "sea-ice mass change through bottom melting", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siitdthick": { - "CMOR_varname": "siitdthick", - "standard_name": "sea_ice_thickness", - "long_name": "Sea-ice thickness in thickness categories", - "mipTable": "SImon", - "units": "m" - }, - "siforcecorioly": { - "CMOR_varname": "siforcecorioly", - "standard_name": "sea_ice_y_force_per_unit_area_due_to_coriolis_effect", - "long_name": "Coriolis force term in force balance (y-component)", - "mipTable": "SImon", - "units": "N m-2" - }, - "sivoln": { - "CMOR_varname": "sivoln", - "standard_name": "sea_ice_volume", - "long_name": "Sea ice volume North", - "mipTable": "SImon", - "units": "1e3 km3" - }, - "siflsenstop": { - "CMOR_varname": "siflsenstop", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Net upward sensible heat flux over sea ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "siage": { - "CMOR_varname": "siage", - "standard_name": "age_of_sea_ice", - "long_name": "Age of sea ice", - "mipTable": "SImon", - "units": "s" - }, - "snmassacrossline": { - "CMOR_varname": "snmassacrossline", - "standard_name": "snow_transport_across_line_due_to_sea_ice_dynamics", - "long_name": "Snow mass flux through straits", - "mipTable": "SImon", - "units": "kg s-1" - }, - "sndmasssubl": { - "CMOR_varname": "sndmasssubl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Snow Mass Rate of Change through Evaporation or Sublimation", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sidmassgrowthwat": { - "CMOR_varname": "sidmassgrowthwat", - "standard_name": "tendency_of_sea_ice_amount_due_to_frazil_ice_accumulation_in_leads", - "long_name": "sea-ice mass change through growth in supercooled open water (aka frazil)", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sistryubot": { - "CMOR_varname": "sistryubot", - "standard_name": "upward_y_stress_at_sea_ice_base", - "long_name": "Y-component of ocean stress on sea ice", - "mipTable": "SImon", - "units": "N m-2" - }, - "siarean": { - "CMOR_varname": "siarean", - "standard_name": "sea_ice_area", - "long_name": "Sea ice area North", - "mipTable": "SImon", - "units": "1e6 km2" - }, - "sirdgconc": { - "CMOR_varname": "sirdgconc", - "standard_name": "area_fraction", - "long_name": "Percentage Cover of Sea-Ice by Ridging", - "mipTable": "SImon", - "units": "1" - }, - "sishevel": { - "CMOR_varname": "sishevel", - "standard_name": "maximum_over_coordinate_rotation_of_sea_ice_horizontal_shear_strain_rate", - "long_name": "Maximum shear of sea-ice velocity field", - "mipTable": "SImon", - "units": "s-1" - }, - "sidmasstranx": { - "CMOR_varname": "sidmasstranx", - "standard_name": "sea_ice_x_transport", - "long_name": "X-component of sea-ice mass transport", - "mipTable": "SImon", - "units": "kg s-1" - }, - "ta7h": { - "CMOR_varname": "ta7h", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "siextentn": { - "CMOR_varname": "siextentn", - "standard_name": "sea_ice_extent", - "long_name": "Sea ice extent North", - "mipTable": "SImon", - "units": "1e6 km2" - }, - "sistrydtop": { - "CMOR_varname": "sistrydtop", - "standard_name": "surface_downward_y_stress", - "long_name": "Y-component of atmospheric stress on sea ice", - "mipTable": "SImon", - "units": "N m-2" - }, - "sidmassevapsubl": { - "CMOR_varname": "sidmassevapsubl", - "standard_name": "water_evapotranspiration_flux", - "long_name": "sea-ice mass change through evaporation and sublimation", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siflswdtop": { - "CMOR_varname": "siflswdtop", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Downwelling shortwave flux over sea ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "sisaltmass": { - "CMOR_varname": "sisaltmass", - "standard_name": "sea_ice_mass_content_of_salt", - "long_name": "Mass of salt in sea ice per area", - "mipTable": "SImon", - "units": "kg m-2" - }, - "sisnmass": { - "CMOR_varname": "sisnmass", - "standard_name": "liquid_water_content_of_surface_snow", - "long_name": "Snow mass per area", - "mipTable": "SImon", - "units": "kg m-2" - }, - "ua7h": { - "CMOR_varname": "ua7h", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "siitdsnthick": { - "CMOR_varname": "siitdsnthick", - "standard_name": "surface_snow_thickness", - "long_name": "Snow thickness in thickness categories", - "mipTable": "SImon", - "units": "m" - }, - "va7h": { - "CMOR_varname": "va7h", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "sndmasssnf": { - "CMOR_varname": "sndmasssnf", - "standard_name": "snowfall_flux", - "long_name": "snow mass change through snow fall", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "siflcondbot": { - "CMOR_varname": "siflcondbot", - "standard_name": "basal_downward_heat_flux_in_sea_ice", - "long_name": "Net conductive heat fluxes in ice at the bottom", - "mipTable": "SImon", - "units": "W m-2" - }, - "sndmassmelt": { - "CMOR_varname": "sndmassmelt", - "standard_name": "surface_snow_melt_flux", - "long_name": "Snow Mass Rate of Change through Melt", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sidragbot": { - "CMOR_varname": "sidragbot", - "standard_name": "sea_ice_basal_drag_coefficient_for_momentum_in_sea_water", - "long_name": "Ocean drag coefficient", - "mipTable": "SImon", - "units": "1" - }, - "sitimefrac": { - "CMOR_varname": "sitimefrac", - "standard_name": "fraction_of_time_with_sea_ice_area_fraction_above_threshold", - "long_name": "Fraction of time steps with sea ice", - "mipTable": "SImon", - "units": "1" - }, - "sfdsi": { - "CMOR_varname": "sfdsi", - "standard_name": "downward_sea_ice_basal_salt_flux", - "long_name": "Salt flux from sea ice", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sispeed": { - "CMOR_varname": "sispeed", - "standard_name": "sea_ice_speed", - "long_name": "Sea-ice speed", - "mipTable": "SImon", - "units": "m s-1" - }, - "sidivvel": { - "CMOR_varname": "sidivvel", - "standard_name": "divergence_of_sea_ice_velocity", - "long_name": "Divergence of the sea-ice velocity field", - "mipTable": "SImon", - "units": "s-1" - }, - "sifllwutop": { - "CMOR_varname": "sifllwutop", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Upwelling Longwave Flux over Sea Ice", - "mipTable": "SImon", - "units": "W m-2" - }, - "siextents": { - "CMOR_varname": "siextents", - "standard_name": "sea_ice_extent", - "long_name": "Sea ice extent South", - "mipTable": "SImon", - "units": "1e6 km2" - }, - "sifb": { - "CMOR_varname": "sifb", - "standard_name": "sea_ice_freeboard", - "long_name": "Sea-ice freeboard", - "mipTable": "SImon", - "units": "m" - }, - "siu": { - "CMOR_varname": "siu", - "standard_name": "sea_ice_x_velocity", - "long_name": "X-component of sea ice velocity", - "mipTable": "SImon", - "units": "m s-1" - }, - "siforceintstrx": { - "CMOR_varname": "siforceintstrx", - "standard_name": "sea_ice_x_internal_stress", - "long_name": "Internal stress term in force balance (x-component)", - "mipTable": "SImon", - "units": "N m-2" - }, - "sistremax": { - "CMOR_varname": "sistremax", - "standard_name": "maximum_over_coordinate_rotation_of_sea_ice_horizontal_shear_stress", - "long_name": "Maximum shear stress in sea ice", - "mipTable": "SImon", - "units": "N m-1" - }, - "sihc": { - "CMOR_varname": "sihc", - "standard_name": "sea_ice_temperature_expressed_as_heat_content", - "long_name": "Sea-ice heat content per unit area", - "mipTable": "SImon", - "units": "J m-2" - }, - "sidmasstrany": { - "CMOR_varname": "sidmasstrany", - "standard_name": "sea_ice_y_transport", - "long_name": "Y-component of sea-ice mass transport", - "mipTable": "SImon", - "units": "kg s-1" - }, - "siforcecoriolx": { - "CMOR_varname": "siforcecoriolx", - "standard_name": "sea_ice_x_force_per_unit_area_due_to_coriolis_effect", - "long_name": "Coriolis force term in force balance (x-component)", - "mipTable": "SImon", - "units": "N m-2" - }, - "simass": { - "CMOR_varname": "simass", - "standard_name": "sea_ice_amount", - "long_name": "Sea-ice mass per area", - "mipTable": "SImon", - "units": "kg m-2" - }, - "sitempbot": { - "CMOR_varname": "sitempbot", - "standard_name": "sea_ice_basal_temperature", - "long_name": "Temperature at ice-ocean interface", - "mipTable": "SImon", - "units": "K" - }, - "sirdgthick": { - "CMOR_varname": "sirdgthick", - "standard_name": "sea_ice_thickness", - "long_name": "Ridged ice thickness", - "mipTable": "SImon", - "units": "m" - }, - "sidconcdyn": { - "CMOR_varname": "sidconcdyn", - "standard_name": "tendency_of_sea_ice_area_fraction_due_to_dynamics", - "long_name": "sea-ice area fraction change from dynamics", - "mipTable": "SImon", - "units": "s-1" - }, - "sndmasssi": { - "CMOR_varname": "sndmasssi", - "standard_name": "tendency_of_surface_snow_amount_due_to_conversion_of_snow_to_sea_ice", - "long_name": "Snow Mass Rate of Change through Snow-to-Ice Conversion", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "sisnhc": { - "CMOR_varname": "sisnhc", - "standard_name": "thermal_energy_content_of_surface_snow", - "long_name": "Snow-heat content per unit area", - "mipTable": "SImon", - "units": "J m-2" - }, - "sisnthick": { - "CMOR_varname": "sisnthick", - "standard_name": "surface_snow_thickness", - "long_name": "Snow thickness", - "mipTable": "SImon", - "units": "m" - }, - "sidmasssi": { - "CMOR_varname": "sidmasssi", - "standard_name": "tendency_of_sea_ice_amount_due_to_conversion_of_snow_to_sea_ice", - "long_name": "sea-ice mass change through snow-to-ice conversion", - "mipTable": "SImon", - "units": "kg m-2 s-1" - }, - "rsdscsdiff": { - "CMOR_varname": "rsdscsdiff", - "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", - "mipTable": "Emon", - "units": "W m-2" - }, - "clwvic": { - "CMOR_varname": "clwvic", - "standard_name": "atmosphere_mass_content_of_convective_cloud_condensed_water", - "long_name": "Convective Condensed Water Path", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nudgincsm": { - "CMOR_varname": "nudgincsm", - "standard_name": "nudging_increment_in_mass_content_of_water_in_soil", - "long_name": "Nudging Increment of Water in Soil Mositure", - "mipTable": "Eday", - "units": "kg m-2" - }, - "nudgincswe": { - "CMOR_varname": "nudgincswe", - "standard_name": "nudging_increment_in_snow_and_ice_amount_on_land", - "long_name": "Nudging Increment of Water in Snow", - "mipTable": "Eday", - "units": "kg m-2" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Near-Surface Wind Speed", - "mipTable": "E3hr", - "units": "m s-1" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "mipTable": "E3hr", - "units": "m s-1" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "mipTable": "E3hr", - "units": "m s-1" - }, - "prra": { - "CMOR_varname": "prra", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "prrc": { - "CMOR_varname": "prrc", - "standard_name": "convective_rainfall_flux", - "long_name": "Convective Rainfall rate", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "prsnc": { - "CMOR_varname": "prsnc", - "standard_name": "convective_snowfall_flux", - "long_name": "Convective Snowfall Flux", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "albdiffbnd": { - "CMOR_varname": "albdiffbnd", - "standard_name": "surface_diffuse_shortwave_hemispherical_reflectance", - "long_name": "Diffuse surface albedo for each band", - "mipTable": "E3hrPt", - "units": "1" - }, - "albdirbnd": { - "CMOR_varname": "albdirbnd", - "standard_name": "surface_direct_shortwave_hemispherical_reflectance", - "long_name": "Direct surface albedo for each band", - "mipTable": "E3hrPt", - "units": "1" - }, - "solbnd": { - "CMOR_varname": "solbnd", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "Top-of-Atmosphere Solar Insolation for each band", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "aeroptbnd": { - "CMOR_varname": "aeroptbnd", - "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "Aerosol level extinction optical depth for each band", - "mipTable": "E3hrPt", - "units": "1" - }, - "aerssabnd": { - "CMOR_varname": "aerssabnd", - "standard_name": "single_scattering_albedo_in_air_due_to_ambient_aerosol_particles", - "long_name": "Aerosol level single-scattering albedo for each band", - "mipTable": "E3hrPt", - "units": "1" - }, - "aerasymbnd": { - "CMOR_varname": "aerasymbnd", - "standard_name": "asymmetry_factor_of_ambient_aerosol_particles", - "long_name": "Aerosol level asymmetry parameter for each band", - "mipTable": "E3hrPt", - "units": "1" - }, - "rsutcsbnd": { - "CMOR_varname": "rsutcsbnd", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation for each band", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsdscsbnd": { - "CMOR_varname": "rsdscsbnd", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation for each band", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsuscsbnd": { - "CMOR_varname": "rsuscsbnd", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation for each band", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsucsbnd": { - "CMOR_varname": "rsucsbnd", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Shortwave Radiation at each level for each band", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsdcsbnd": { - "CMOR_varname": "rsdcsbnd", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Shortwave Radiation at each level for each band", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "sza": { - "CMOR_varname": "sza", - "standard_name": "solar_zenith_angle", - "long_name": "Solar Zenith Angle", - "mipTable": "E3hrPt", - "units": "degree" - }, - "rsucs": { - "CMOR_varname": "rsucs", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsdcs": { - "CMOR_varname": "rsdcs", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "ch4": { - "CMOR_varname": "ch4", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "CH4 volume mixing ratio", - "mipTable": "E3hrPt", - "units": "mol mol-1" - }, - "co2": { - "CMOR_varname": "co2", - "standard_name": "mole_fraction_of_carbon_dioxide_in_air", - "long_name": "CO2 volume mixing ratio", - "mipTable": "E3hrPt", - "units": "mol mol-1" - }, - "n2o": { - "CMOR_varname": "n2o", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "N2O volume mixing ratio", - "mipTable": "E3hrPt", - "units": "mol mol-1" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "CF3hr", - "units": "K" - }, - "prra": { - "CMOR_varname": "prra", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux where Ice Free Ocean over Sea", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "rv850": { - "CMOR_varname": "rv850", - "standard_name": "atmosphere_relative_vorticity", - "long_name": "Relative Vorticity at 850 hPa", - "mipTable": "6hrPlevPt", - "units": "s-1" - }, - "zg500": { - "CMOR_varname": "zg500", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height at 500 hPa", - "mipTable": "6hrPlevPt", - "units": "m" - }, - "cldnci": { - "CMOR_varname": "cldnci", - "standard_name": "number_concentration_of_ice_crystals_in_air_at_ice_cloud_top", - "long_name": "Ice Crystal Number Concentration of Cloud Tops", - "mipTable": "Eday", - "units": "m-3" - }, - "rsdsdiff": { - "CMOR_varname": "rsdsdiff", - "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", - "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "mipTable": "Eday", - "units": "W m-2" - }, - "rsdscsdiff": { - "CMOR_varname": "rsdscsdiff", - "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", - "mipTable": "Eday", - "units": "W m-2" - }, - "cldnvi": { - "CMOR_varname": "cldnvi", - "standard_name": "atmosphere_number_content_of_cloud_droplets", - "long_name": "Column Integrated Cloud Droplet Number", - "mipTable": "Eday", - "units": "m-2" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "mipTable": "Emon", - "units": "m" - }, - "zg7h": { - "CMOR_varname": "zg7h", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "6hrPlevPt", - "units": "m" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "mipTable": "Emon", - "units": "Pa" - }, - "hfdsl": { - "CMOR_varname": "hfdsl", - "standard_name": "surface_downward_heat_flux_in_air", - "long_name": "Downward Heat Flux at Land Surface", - "mipTable": "Eday", - "units": "W m-2" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature", - "mipTable": "CFsubhr", - "units": "K" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "CFsubhr", - "units": "K" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "mipTable": "CFsubhr", - "units": "m s-1" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "mipTable": "CFsubhr", - "units": "m s-1" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Near-Surface Wind Speed", - "mipTable": "CFsubhr", - "units": "m s-1" - }, - "hurs": { - "CMOR_varname": "hurs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "mipTable": "CFsubhr", - "units": "%" - }, - "huss": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "mipTable": "CFsubhr", - "units": "1" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "evspsbl": { - "CMOR_varname": "evspsbl", - "standard_name": "water_evapotranspiration_flux", - "long_name": "Evaporation including Sublimation and Transpiration", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "tauu": { - "CMOR_varname": "tauu", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "tauv": { - "CMOR_varname": "tauv", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsdscs": { - "CMOR_varname": "rsdscs", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsuscs": { - "CMOR_varname": "rsuscs", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rldscs": { - "CMOR_varname": "rldscs", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rlutcs": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsutcs": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "prw": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_mass_content_of_water_vapor", - "long_name": "Water Vapor Path", - "mipTable": "CFsubhr", - "units": "kg m-2" - }, - "clt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "mipTable": "CFsubhr", - "units": "%" - }, - "clwvi": { - "CMOR_varname": "clwvi", - "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", - "long_name": "Condensed Water Path", - "mipTable": "CFsubhr", - "units": "kg m-2" - }, - "clivi": { - "CMOR_varname": "clivi", - "standard_name": "atmosphere_mass_content_of_cloud_ice", - "long_name": "Ice Water Path", - "mipTable": "CFsubhr", - "units": "kg m-2" - }, - "rtmt": { - "CMOR_varname": "rtmt", - "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", - "long_name": "Net Downward Flux at Top of Model", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "ccb": { - "CMOR_varname": "ccb", - "standard_name": "air_pressure_at_convective_cloud_base", - "long_name": "Air Pressure at Convective Cloud Base", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "cct": { - "CMOR_varname": "cct", - "standard_name": "air_pressure_at_convective_cloud_top", - "long_name": "Air Pressure at Convective Cloud Top", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "ci": { - "CMOR_varname": "ci", - "standard_name": "convection_time_fraction", - "long_name": "Fraction of Time Convection Occurs", - "mipTable": "CFsubhr", - "units": "1" - }, - "sci": { - "CMOR_varname": "sci", - "standard_name": "shallow_convection_time_fraction", - "long_name": "Fraction of Time Shallow Convection Occurs", - "mipTable": "CFsubhr", - "units": "1" - }, - "fco2antt": { - "CMOR_varname": "fco2antt", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", - "long_name": "Carbon Mass Flux into Atmosphere Due to All Anthropogenic Emissions of CO2", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "fco2fos": { - "CMOR_varname": "fco2fos", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", - "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "fco2nat": { - "CMOR_varname": "fco2nat", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources", - "long_name": "Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "dissicos": { - "CMOR_varname": "dissicos", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", - "long_name": "Surface Dissolved Inorganic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "fg13co2": { - "CMOR_varname": "fg13co2", - "standard_name": "surface_downward_mass_flux_of_13C_dioxide_abiotic_analogue_expressed_as_13C", - "long_name": "Surface Downward Flux of Abiotic 13CO2", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "msftmrho": { - "CMOR_varname": "msftmrho", - "standard_name": "ocean_meridional_overturning_mass_streamfunction", - "long_name": "Ocean Meridional Overturning Mass Streamfunction", - "mipTable": "Odec", - "units": "kg s-1" - }, - "tasIs": { - "CMOR_varname": "tasIs", - "standard_name": "air_temperature", - "long_name": "Ice Sheet Near-Surface Air Temperature", - "mipTable": "LImon", - "units": "K" - }, - "tsIs": { - "CMOR_varname": "tsIs", - "standard_name": "surface_temperature", - "long_name": "Ice Sheet Surface Temperature", - "mipTable": "LImon", - "units": "K" - }, - "litemptopIs": { - "CMOR_varname": "litemptopIs", - "standard_name": "temperature_at_top_of_ice_sheet_model", - "long_name": "Ice Sheet Temperature at top of ice sheet model", - "mipTable": "LImon", - "units": "K" - }, - "acabfIs": { - "CMOR_varname": "acabfIs", - "standard_name": "land_ice_surface_specific_mass_balance_flux", - "long_name": "Ice Sheet Surface Mass Balance flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "prsnIs": { - "CMOR_varname": "prsnIs", - "standard_name": "snowfall_flux", - "long_name": "Ice Sheet Snowfall Flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "prraIs": { - "CMOR_varname": "prraIs", - "standard_name": "rainfall_flux", - "long_name": "Ice Sheet Rainfall rate", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "snicemIs": { - "CMOR_varname": "snicemIs", - "standard_name": "surface_snow_and_ice_melt_flux", - "long_name": "Ice Sheet Surface Snow and Ice Melt Flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "icemIs": { - "CMOR_varname": "icemIs", - "standard_name": "land_ice_surface_melt_flux", - "long_name": "Ice Sheet Surface Ice Melt Flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "snicefreezIs": { - "CMOR_varname": "snicefreezIs", - "standard_name": "surface_snow_and_ice_refreezing_flux", - "long_name": "Ice Sheet Surface Snow and Ice Refreeze Flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "orogIs": { - "CMOR_varname": "orogIs", - "standard_name": "surface_altitude", - "long_name": "Ice Sheet Surface Altitude", - "mipTable": "LImon", - "units": "m" - }, - "hflsIs": { - "CMOR_varname": "hflsIs", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Ice Sheet Surface Upward Latent Heat Flux", - "mipTable": "LImon", - "units": "W m-2" - }, - "hfssIs": { - "CMOR_varname": "hfssIs", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Ice Sheet Surface Upward Sensible Heat Flux", - "mipTable": "LImon", - "units": "W m-2" - }, - "rsdsIs": { - "CMOR_varname": "rsdsIs", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Ice Sheet Surface Downwelling Shortwave Radiation", - "mipTable": "LImon", - "units": "W m-2" - }, - "rsusIs": { - "CMOR_varname": "rsusIs", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Ice Sheet Surface Upwelling Shortwave Radiation", - "mipTable": "LImon", - "units": "W m-2" - }, - "rldsIs": { - "CMOR_varname": "rldsIs", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Ice Sheet Surface Downwelling Longwave Radiation", - "mipTable": "LImon", - "units": "W m-2" - }, - "rlusIs": { - "CMOR_varname": "rlusIs", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Ice Sheet Surface Upwelling Longwave Radiation", - "mipTable": "LImon", - "units": "W m-2" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "6hrPlevPt", - "units": "Pa" - }, - "mlotst": { - "CMOR_varname": "mlotst", - "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", - "mipTable": "Eday", - "units": "m" - }, - "utendnogw": { - "CMOR_varname": "utendnogw", - "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "u-tendency nonorographic gravity wave drag", - "mipTable": "EmonZ", - "units": "m s-2" - }, - "vtendnogw": { - "CMOR_varname": "vtendnogw", - "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "v-tendency nonorographic gravity wave drag", - "mipTable": "EmonZ", - "units": "m s-2" - }, - "utendnogw27": { - "CMOR_varname": "utendnogw27", - "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "u-tendency nonorographic gravity wave drag", - "mipTable": "E1hr", - "units": "m s-2" - }, - "vtendnogw27": { - "CMOR_varname": "vtendnogw27", - "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "v-tendency nonorographic gravity wave drag", - "mipTable": "E1hr", - "units": "m s-2" - }, - "clayfrac": { - "CMOR_varname": "clayfrac", - "standard_name": "volume_fraction_of_clay_in_soil", - "long_name": "Clay Fraction", - "mipTable": "Efx", - "units": "1" - }, - "siltfrac": { - "CMOR_varname": "siltfrac", - "standard_name": "volume_fraction_of_silt_in_soil", - "long_name": "Silt Fraction", - "mipTable": "Efx", - "units": "1" - }, - "sandfrac": { - "CMOR_varname": "sandfrac", - "standard_name": "volume_fraction_of_sand_in_soil", - "long_name": "Sand Fraction", - "mipTable": "Efx", - "units": "1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "Emon", - "units": "1" - }, - "areacellr": { - "CMOR_varname": "areacellr", - "standard_name": "cell_area", - "long_name": "Grid-Cell Area for River Model Variables", - "mipTable": "fx", - "units": "m2" - }, - "siconc": { - "CMOR_varname": "siconc", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea Ice Area Fraction (Ocean Grid)", - "mipTable": "SIday", - "units": "%" - }, - "siconc": { - "CMOR_varname": "siconc", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea Ice Area Fraction (Ocean Grid)", - "mipTable": "SImon", - "units": "%" - }, - "masscello": { - "CMOR_varname": "masscello", - "standard_name": "sea_water_mass_per_unit_area", - "long_name": "Sea Water Mass Per Unit Area", - "mipTable": "Odec", - "units": "kg m-2" - }, - "cSoil": { - "CMOR_varname": "cSoil", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon Mass in Soil Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cLand": { - "CMOR_varname": "cLand", - "standard_name": "mass_content_of_carbon_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", - "long_name": "Total Carbon in All Terrestrial Carbon Pools", - "mipTable": "Emon", - "units": "kg m-2" - }, - "netAtmosLandCO2Flux": { - "CMOR_varname": "netAtmosLandCO2Flux", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", - "long_name": "Net flux of CO2 between atmosphere and land (positive into land) as a result of all processes.", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "c14Litter": { - "CMOR_varname": "c14Litter", - "standard_name": "litter_mass_content_of_14C", - "long_name": "Mass of 14C in Litter Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "c14Soil": { - "CMOR_varname": "c14Soil", - "standard_name": "soil_mass_content_of_14C", - "long_name": "Mass of 14C in Soil Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "c14Land": { - "CMOR_varname": "c14Land", - "standard_name": "mass_content_of_14C_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", - "long_name": "Mass of 14C in all terrestrial carbon pools", - "mipTable": "Emon", - "units": "kg m-2" - }, - "c13Veg": { - "CMOR_varname": "c13Veg", - "standard_name": "vegetation_mass_content_of_13C", - "long_name": "Mass of 13C in Vegetation", - "mipTable": "Emon", - "units": "kg m-2" - }, - "c13Litter": { - "CMOR_varname": "c13Litter", - "standard_name": "litter_mass_content_of_13C", - "long_name": "Mass of 13C in Litter Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "c13Land": { - "CMOR_varname": "c13Land", - "standard_name": "mass_content_of_13C_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", - "long_name": "Mass of 13C in all terrestrial carbon pools", - "mipTable": "Emon", - "units": "kg m-2" - }, - "gppc14": { - "CMOR_varname": "gppc14", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_14C", - "long_name": "Mass Flux of 14C out of Atmosphere due to Gross Primary Production on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "netAtmosLandC14Flux": { - "CMOR_varname": "netAtmosLandC14Flux", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_all_land_processes", - "long_name": "Net Mass Flux of 14C between atmosphere and land (positive into land) as a result of all processes.", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "gppc13": { - "CMOR_varname": "gppc13", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_13C", - "long_name": "Mass Flux of 13C out of Atmosphere due to Gross Primary Production on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhc13": { - "CMOR_varname": "rhc13", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_heterotrophic_respiration", - "long_name": "Mass Flux of 13C into Atmosphere due to Heterotrophic Respiration on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "dissi14c": { - "CMOR_varname": "dissi14c", - "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", - "long_name": "Concentration of DI14C", - "mipTable": "Emon", - "units": "mol m-3" - }, - "fg14co2": { - "CMOR_varname": "fg14co2", - "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Total air-sea flux of 14CO2", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "gpp": { - "CMOR_varname": "gpp", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "ra": { - "CMOR_varname": "ra", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", - "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "rh": { - "CMOR_varname": "rh", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", - "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "lai": { - "CMOR_varname": "lai", - "standard_name": "leaf_area_index", - "long_name": "Leaf Area Index", - "mipTable": "Eday", - "units": "1" - }, - "mrsol": { - "CMOR_varname": "mrsol", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Total water content of soil layer", - "mipTable": "Eday", - "units": "kg m-2" - }, - "mrsll": { - "CMOR_varname": "mrsll", - "standard_name": "liquid_water_content_of_soil_layer", - "long_name": "Liquid water content of soil layer", - "mipTable": "Eday", - "units": "kg m-2" - }, - "mrsfl": { - "CMOR_varname": "mrsfl", - "standard_name": "frozen_water_content_of_soil_layer", - "long_name": "Frozen water content of soil layer", - "mipTable": "Eday", - "units": "kg m-2" - }, - "mrlso": { - "CMOR_varname": "mrlso", - "standard_name": "liquid_water_content_of_soil_layer", - "long_name": "Soil Liquid Water Content", - "mipTable": "Emon", - "units": "kg m-2" - }, - "mrsol": { - "CMOR_varname": "mrsol", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Total water content of soil layer", - "mipTable": "Emon", - "units": "kg m-2" - }, - "mrsfl": { - "CMOR_varname": "mrsfl", - "standard_name": "frozen_water_content_of_soil_layer", - "long_name": "Frozen water content of soil layer", - "mipTable": "Emon", - "units": "kg m-2" - }, - "fCLandToOcean": { - "CMOR_varname": "fCLandToOcean", - "standard_name": "mass_flux_of_carbon_into_sea_water_from_rivers", - "long_name": "Lateral transfer of carbon out of gridcell that eventually goes into ocean", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fFireNat": { - "CMOR_varname": "fFireNat", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_fires", - "long_name": "Carbon Mass Flux into Atmosphere due to CO2 Emission from natural Fire", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fProductDecomp": { - "CMOR_varname": "fProductDecomp", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products", - "long_name": "decomposition out of product pools to CO2 in atmos", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fAnthDisturb": { - "CMOR_varname": "fAnthDisturb", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", - "long_name": "Carbon Mass Flux from Vegetation", - "mipTable": "Litter or Soil Pools into the Atmosphere due to Any Human Activity", - "units": "Emon" - }, - "fDeforestToProduct": { - "CMOR_varname": "fDeforestToProduct", - "standard_name": "carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", - "long_name": "Deforested biomass that goes into product pool as a result of anthropogenic land use change", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fHarvestToProduct": { - "CMOR_varname": "fHarvestToProduct", - "standard_name": "mass_flux_of_carbon_into_forestry_and_agricultural_products_due_to_crop_harvesting", - "long_name": "Harvested biomass that goes into product pool", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nSoil": { - "CMOR_varname": "nSoil", - "standard_name": "soil_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Soil Pool", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nProduct": { - "CMOR_varname": "nProduct", - "standard_name": "nitrogen_mass_content_of_forestry_and_agricultural_products", - "long_name": "Nitrogen Mass in Products of Land Use Change", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nMineral": { - "CMOR_varname": "nMineral", - "standard_name": "soil_mass_content_of_inorganic_nitrogen_expressed_as_nitrogen", - "long_name": "Mineral nitrogen in the soil", - "mipTable": "Emon", - "units": "kg m-2" - }, - "fNloss": { - "CMOR_varname": "fNloss", - "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", - "long_name": "Total N lost (including NHx", - "mipTable": "NOx", - "units": "N2O" - }, - "fNdep": { - "CMOR_varname": "fNdep", - "standard_name": "minus_tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_deposition", - "long_name": "Dry and Wet Deposition of Reactive Nitrogen onto Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fBNF": { - "CMOR_varname": "fBNF", - "standard_name": "tendency_of_soil_and_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation", - "long_name": "biological nitrogen fixation", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNup": { - "CMOR_varname": "fNup", - "standard_name": "tendency_of_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation", - "long_name": "total plant nitrogen uptake (sum of ammonium and nitrate)", - "mipTable": "irrespective of the source of nitrogen", - "units": "Emon" - }, - "fNnetmin": { - "CMOR_varname": "fNnetmin", - "standard_name": "mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_litter_and_soil_due_to_immobilisation_and_remineralization", - "long_name": "Net nitrogen release from soil and litter as the outcome of nitrogen immobilisation and gross mineralisation", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNVegLitter": { - "CMOR_varname": "fNVegLitter", - "standard_name": "nitrogen_mass_flux_into_litter_from_vegetation", - "long_name": "Total Nitrogen Mass Flux from Vegetation to Litter", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNLandToOcean": { - "CMOR_varname": "fNLandToOcean", - "standard_name": "mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_into_sea_from_rivers", - "long_name": "Lateral transfer of nitrogen out of gridcell that eventually goes into ocean", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNLitterSoil": { - "CMOR_varname": "fNLitterSoil", - "standard_name": "nitrogen_mass_flux_into_soil_from_litter", - "long_name": "Total Nitrogen Mass Flux from Litter to Soil", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNVegSoil": { - "CMOR_varname": "fNVegSoil", - "standard_name": "nitrogen_mass_flux_into_soil_from_vegetation_excluding_litter", - "long_name": "Total Nitrogen Mass Flux from Vegetation Directly to Soil", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNProduct": { - "CMOR_varname": "fNProduct", - "standard_name": "nitrogen_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", - "long_name": "Deforested or harvested biomass as a result of anthropogenic land use or change", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "grassFracC3": { - "CMOR_varname": "grassFracC3", - "standard_name": "area_fraction", - "long_name": "C3 Grass Area Percentage", - "mipTable": "Emon", - "units": "%" - }, - "grassFracC4": { - "CMOR_varname": "grassFracC4", - "standard_name": "area_fraction", - "long_name": "C4 Grass Area Percentage", - "mipTable": "Emon", - "units": "%" - }, - "cropFracC3": { - "CMOR_varname": "cropFracC3", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by C3 Crops", - "mipTable": "Emon", - "units": "%" - }, - "cStem": { - "CMOR_varname": "cStem", - "standard_name": "stem_mass_content_of_carbon", - "long_name": "Carbon Mass in Stem", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cOther": { - "CMOR_varname": "cOther", - "standard_name": "miscellaneous_living_matter_mass_content_of_carbon", - "long_name": "Carbon Mass in Vegetation Components other than Leaves", - "mipTable": "Stems and Roots", - "units": "Emon" - }, - "cLitterCwd": { - "CMOR_varname": "cLitterCwd", - "standard_name": "wood_debris_mass_content_of_carbon", - "long_name": "Carbon Mass in Coarse Woody Debris", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cLitterSurf": { - "CMOR_varname": "cLitterSurf", - "standard_name": "surface_litter_mass_content_of_carbon", - "long_name": "Carbon Mass in Above-Ground Litter", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cLitterSubSurf": { - "CMOR_varname": "cLitterSubSurf", - "standard_name": "subsurface_litter_mass_content_of_carbon", - "long_name": "Carbon Mass in Below-Ground Litter", - "mipTable": "Emon", - "units": "kg m-2" - }, - "fVegFire": { - "CMOR_varname": "fVegFire", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_vegetation_in_fires", - "long_name": "Carbon Mass Flux from Vegetation into Atmosphere due to CO2 Emission from all Fire", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fLitterFire": { - "CMOR_varname": "fLitterFire", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_litter_in_fires", - "long_name": "Carbon Mass Flux from Litter", - "mipTable": "CWD or any non-living pool into Atmosphere due to CO2 Emission from all Fire", - "units": "Emon" - }, - "fFireAll": { - "CMOR_varname": "fFireAll", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires", - "long_name": "Carbon Mass Flux into Atmosphere due to CO2 emissions from Fire resulting from all sources including natural", - "mipTable": "anthropogenic and land use change.", - "units": "Emon" - }, - "fVegLitterSenescence": { - "CMOR_varname": "fVegLitterSenescence", - "standard_name": "mass_flux_of_carbon_into_litter_from_vegetation_due_to_senescence", - "long_name": "Total Carbon Mass Flux from Vegetation to Litter as a Result of Leaf", - "mipTable": "Branch", - "units": "and Root Senescence" - }, - "fVegLitterMortality": { - "CMOR_varname": "fVegLitterMortality", - "standard_name": "mass_flux_of_carbon_into_litter_from_vegetation_due_to_mortality", - "long_name": "Total Carbon Mass Flux from Vegetation to Litter as a Result of Mortality", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raRoot": { - "CMOR_varname": "raRoot", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_roots", - "long_name": "Total Respiration from Roots", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raStem": { - "CMOR_varname": "raStem", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_stems", - "long_name": "Total Respiration from Stem", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raLeaf": { - "CMOR_varname": "raLeaf", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_leaves", - "long_name": "Total respiration from leaves", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhLitter": { - "CMOR_varname": "rhLitter", - "standard_name": "surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_litter", - "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration from Litter on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhSoil": { - "CMOR_varname": "rhSoil", - "standard_name": "surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_soil", - "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration from Soil on Land", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fHarvestToAtmos": { - "CMOR_varname": "fHarvestToAtmos", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting", - "long_name": "Harvested biomass that goes straight into atmosphere", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fDeforestToAtmos": { - "CMOR_varname": "fDeforestToAtmos", - "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", - "long_name": "Deforested biomass that goes into atmosphere as a result of anthropogenic land use change", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "vegHeightGrass": { - "CMOR_varname": "vegHeightGrass", - "standard_name": "canopy_height", - "long_name": "Vegetation height averaged over the grass fraction of a grid cell.", - "mipTable": "Emon", - "units": "m" - }, - "vegHeightShrub": { - "CMOR_varname": "vegHeightShrub", - "standard_name": "canopy_height", - "long_name": "Vegetation height averaged over the shrub fraction of a grid cell.", - "mipTable": "Emon", - "units": "m" - }, - "vegHeightCrop": { - "CMOR_varname": "vegHeightCrop", - "standard_name": "canopy_height", - "long_name": "Vegetation height averaged over the crop fraction of a grid cell.", - "mipTable": "Emon", - "units": "m" - }, - "wtd": { - "CMOR_varname": "wtd", - "standard_name": "water_table_depth", - "long_name": "Water table depth from surface.", - "mipTable": "Emon", - "units": "m" - }, - "nLeaf": { - "CMOR_varname": "nLeaf", - "standard_name": "leaf_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Leaves", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nStem": { - "CMOR_varname": "nStem", - "standard_name": "stem_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Stem", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nRoot": { - "CMOR_varname": "nRoot", - "standard_name": "root_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Roots", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nOther": { - "CMOR_varname": "nOther", - "standard_name": "miscellaneous_living_matter_mass_content_of_nitrogen", - "long_name": "Nitrogen mass in vegetation components other than leaves", - "mipTable": "stem and root", - "units": "Emon" - }, - "nLitterCwd": { - "CMOR_varname": "nLitterCwd", - "standard_name": "wood_debris_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in Coarse Woody Debris", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nMineralNH4": { - "CMOR_varname": "nMineralNH4", - "standard_name": "soil_mass_content_of_inorganic_ammonium_expressed_as_nitrogen", - "long_name": "Mineral ammonium in the soil", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nMineralNO3": { - "CMOR_varname": "nMineralNO3", - "standard_name": "soil_mass_content_of_inorganic_nitrate_expressed_as_nitrogen", - "long_name": "Mineral nitrate in the soil", - "mipTable": "Emon", - "units": "kg m-2" - }, - "wetlandCH4prod": { - "CMOR_varname": "wetlandCH4prod", - "standard_name": "surface_upward_mass_flux_of_methane_due_to_emission_from_wetland_biological_production", - "long_name": "Grid averaged methane production (methanogenesis) from wetlands", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "wetlandCH4cons": { - "CMOR_varname": "wetlandCH4cons", - "standard_name": "surface_downward_mass_flux_of_methane_due_to_wetland_biological_consumption", - "long_name": "Grid averaged methane consuption (methanotrophy) from wetlands", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNleach": { - "CMOR_varname": "fNleach", - "standard_name": "mass_flux_of_carbon_out_of_soil_due_to_leaching_and_runoff", - "long_name": "Total N loss to leaching or runoff (sum of ammonium", - "mipTable": "nitrite and nitrate)", - "units": "Emon" - }, - "fNgas": { - "CMOR_varname": "fNgas", - "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen", - "long_name": "Total Nitrogen lost to the atmosphere (sum of NHx", - "mipTable": "NOx", - "units": "N2O" - }, - "fNgasNonFire": { - "CMOR_varname": "fNgasNonFire", - "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_all_land_processes_excluding_fires", - "long_name": "Total N lost to the atmosphere (including NHx", - "mipTable": "NOx", - "units": "N2O" - }, - "fNgasFire": { - "CMOR_varname": "fNgasFire", - "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_emission_from_fires", - "long_name": "Total N lost to the atmosphere (including NHx", - "mipTable": "NOx", - "units": "N2O" - }, - "fNOx": { - "CMOR_varname": "fNOx", - "standard_name": "surface_upward_mass_flux_of_nox_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", - "long_name": "Total land NOx flux", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "tntrlcs": { - "CMOR_varname": "tntrlcs", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", - "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", - "mipTable": "Emon", - "units": "K s-1" - }, - "tntrscs": { - "CMOR_varname": "tntrscs", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", - "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", - "mipTable": "Emon", - "units": "K s-1" - }, - "tntd": { - "CMOR_varname": "tntd", - "standard_name": "tendency_of_air_temperature_due_to_diffusion", - "long_name": "Tendency of Air Temperature due to Numerical Diffusion", - "mipTable": "Emon", - "units": "K s-1" - }, - "tntpbl": { - "CMOR_varname": "tntpbl", - "standard_name": "tendency_of_air_temperature_due_to_boundary_layer_mixing", - "long_name": "Tendency of Air Temperature Due to Boundary Layer Mixing", - "mipTable": "Emon", - "units": "K s-1" - }, - "tntscp": { - "CMOR_varname": "tntscp", - "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation", - "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", - "mipTable": "Emon", - "units": "K s-1" - }, - "tnhuspbl": { - "CMOR_varname": "tnhuspbl", - "standard_name": "tendency_of_specific_humidity_due_to_boundary_layer_mixing", - "long_name": "Tendency of Specific Humidity Due to Boundary Layer Mixing", - "mipTable": "Emon", - "units": "s-1" - }, - "tnhusscp": { - "CMOR_varname": "tnhusscp", - "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation", - "long_name": "Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation", - "mipTable": "Emon", - "units": "s-1" - }, - "reffclws": { - "CMOR_varname": "reffclws", - "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", - "mipTable": "Emon", - "units": "m" - }, - "reffclis": { - "CMOR_varname": "reffclis", - "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", - "mipTable": "Emon", - "units": "m" - }, - "reffclwc": { - "CMOR_varname": "reffclwc", - "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", - "mipTable": "Emon", - "units": "m" - }, - "reffclic": { - "CMOR_varname": "reffclic", - "standard_name": "effective_radius_of_convective_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", - "mipTable": "Emon", - "units": "m" - }, - "tntrl": { - "CMOR_varname": "tntrl", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", - "long_name": "Longwave heating rate", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tntrs": { - "CMOR_varname": "tntrs", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", - "long_name": "Shortwave heating rate", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tntrlcs": { - "CMOR_varname": "tntrlcs", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", - "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tntrscs": { - "CMOR_varname": "tntrscs", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", - "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tntd": { - "CMOR_varname": "tntd", - "standard_name": "tendency_of_air_temperature_due_to_diffusion", - "long_name": "Tendency of Air Temperature due to Numerical Diffusion", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tntpbl": { - "CMOR_varname": "tntpbl", - "standard_name": "tendency_of_air_temperature_due_to_boundary_layer_mixing", - "long_name": "Tendency of Air Temperature Due to Boundary Layer Mixing", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tntscp": { - "CMOR_varname": "tntscp", - "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation", - "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tnhuspbl": { - "CMOR_varname": "tnhuspbl", - "standard_name": "tendency_of_specific_humidity_due_to_boundary_layer_mixing", - "long_name": "Tendency of Specific Humidity Due to Boundary Layer Mixing", - "mipTable": "Esubhr", - "units": "s-1" - }, - "tnhusscp": { - "CMOR_varname": "tnhusscp", - "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation", - "long_name": "Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation", - "mipTable": "Esubhr", - "units": "s-1" - }, - "reffclws": { - "CMOR_varname": "reffclws", - "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", - "mipTable": "Esubhr", - "units": "m" - }, - "reffclis": { - "CMOR_varname": "reffclis", - "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", - "mipTable": "Esubhr", - "units": "m" - }, - "reffclwc": { - "CMOR_varname": "reffclwc", - "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", - "mipTable": "Esubhr", - "units": "m" - }, - "reffclic": { - "CMOR_varname": "reffclic", - "standard_name": "effective_radius_of_convective_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", - "mipTable": "Esubhr", - "units": "m" - }, - "clwvic": { - "CMOR_varname": "clwvic", - "standard_name": "atmosphere_mass_content_of_convective_cloud_condensed_water", - "long_name": "Convective Condensed Water Path", - "mipTable": "Eday", - "units": "kg m-2" - }, - "clivic": { - "CMOR_varname": "clivic", - "standard_name": "atmosphere_mass_content_of_convective_cloud_ice", - "long_name": "Convective Ice Water Path", - "mipTable": "Eday", - "units": "kg m-2" - }, - "cfadDbze94": { - "CMOR_varname": "cfadDbze94", - "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", - "long_name": "CloudSat Radar Reflectivity", - "mipTable": "Emon", - "units": "1" - }, - "cfadLidarsr532": { - "CMOR_varname": "cfadLidarsr532", - "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", - "long_name": "CALIPSO Scattering Ratio", - "mipTable": "Emon", - "units": "1" - }, - "clmisr": { - "CMOR_varname": "clmisr", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", - "mipTable": "Emon", - "units": "%" - }, - "parasolRefl": { - "CMOR_varname": "parasolRefl", - "standard_name": "toa_bidirectional_reflectance", - "long_name": "PARASOL Reflectance", - "mipTable": "Emon", - "units": "1" - }, - "jpdftaureliqmodis": { - "CMOR_varname": "jpdftaureliqmodis", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "MODIS Optical Thickness-Particle Size joint distribution", - "mipTable": "liquid", - "units": "Emon" - }, - "jpdftaureicemodis": { - "CMOR_varname": "jpdftaureicemodis", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "MODIS Optical Thickness-Particle Size joint distribution", - "mipTable": "ice", - "units": "Emon" - }, - "clwmodis": { - "CMOR_varname": "clwmodis", - "standard_name": "liquid_water_cloud_area_fraction", - "long_name": "MODIS Liquid Cloud Fraction", - "mipTable": "Emon", - "units": "%" - }, - "climodis": { - "CMOR_varname": "climodis", - "standard_name": "ice_cloud_area_fraction", - "long_name": "MODIS Ice Cloud Area Percentage", - "mipTable": "Emon", - "units": "%" - }, - "cltmodis": { - "CMOR_varname": "cltmodis", - "standard_name": "cloud_area_fraction", - "long_name": "MODIS Total Cloud Cover Percentage", - "mipTable": "Emon", - "units": "%" - }, - "clcalipsoliq": { - "CMOR_varname": "clcalipsoliq", - "standard_name": "liquid_water_cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO liquid cloud Fraction", - "mipTable": "Emon", - "units": "%" - }, - "parasolRefl": { - "CMOR_varname": "parasolRefl", - "standard_name": "toa_bidirectional_reflectance", - "long_name": "PARASOL Reflectance", - "mipTable": "Eday", - "units": "1" - }, - "jpdftaureliqmodis": { - "CMOR_varname": "jpdftaureliqmodis", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "MODIS Optical Thickness-Particle Size joint distribution", - "mipTable": "liquid", - "units": "Eday" - }, - "jpdftaureicemodis": { - "CMOR_varname": "jpdftaureicemodis", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "MODIS Optical Thickness-Particle Size joint distribution", - "mipTable": "ice", - "units": "Eday" - }, - "clcalipso": { - "CMOR_varname": "clcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction", - "mipTable": "E3hrPt", - "units": "%" - }, - "cfadDbze94": { - "CMOR_varname": "cfadDbze94", - "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", - "long_name": "CloudSat Radar Reflectivity", - "mipTable": "E3hrPt", - "units": "1" - }, - "cfadLidarsr532": { - "CMOR_varname": "cfadLidarsr532", - "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", - "long_name": "CALIPSO Scattering Ratio", - "mipTable": "E3hrPt", - "units": "1" - }, - "parasolRefl": { - "CMOR_varname": "parasolRefl", - "standard_name": "toa_bidirectional_reflectance", - "long_name": "PARASOL Reflectance", - "mipTable": "E3hrPt", - "units": "1" - }, - "cltcalipso": { - "CMOR_varname": "cltcalipso", - "standard_name": "cloud_area_fraction", - "long_name": "CALIPSO Total Cloud Fraction", - "mipTable": "E3hrPt", - "units": "%" - }, - "cllcalipso": { - "CMOR_varname": "cllcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Percentage Low Level Cloud", - "mipTable": "E3hrPt", - "units": "%" - }, - "clmcalipso": { - "CMOR_varname": "clmcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Mid Level Cloud Fraction", - "mipTable": "E3hrPt", - "units": "%" - }, - "clhcalipso": { - "CMOR_varname": "clhcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO High Level Cloud Fraction", - "mipTable": "E3hrPt", - "units": "%" - }, - "loadoa": { - "CMOR_varname": "loadoa", - "standard_name": "atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles", - "long_name": "Load of Dry Aerosol Organic Matter", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadpoa": { - "CMOR_varname": "loadpoa", - "standard_name": "atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_particles", - "long_name": "Load of Dry Aerosol Primary Organic Matter", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadsoa": { - "CMOR_varname": "loadsoa", - "standard_name": "atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles", - "long_name": "Load of Dry Aerosol Secondary Organic Matter", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadbc": { - "CMOR_varname": "loadbc", - "standard_name": "atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles", - "long_name": "Load of Black Carbon Aerosol", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadso4": { - "CMOR_varname": "loadso4", - "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol_particles", - "long_name": "Load of SO4", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loaddust": { - "CMOR_varname": "loaddust", - "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol_particles", - "long_name": "Load of Dust", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadss": { - "CMOR_varname": "loadss", - "standard_name": "atmosphere_mass_content_of_sea_salt_dry_aerosol_particles", - "long_name": "Load of Seasalt", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadno3": { - "CMOR_varname": "loadno3", - "standard_name": "atmosphere_mass_content_of_nitrate_dry_aerosol_particles", - "long_name": "Load of NO3", - "mipTable": "Eday", - "units": "kg m-2" - }, - "loadnh4": { - "CMOR_varname": "loadnh4", - "standard_name": "atmosphere_mass_content_of_ammonium_dry_aerosol_particles", - "long_name": "Load of NH4", - "mipTable": "Eday", - "units": "kg m-2" - }, - "reffsclwtop": { - "CMOR_varname": "reffsclwtop", - "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle_at_stratiform_liquid_water_cloud_top", - "long_name": "Cloud-Top Effective Droplet Radius In Stratiform Cloud", - "mipTable": "Eday", - "units": "m" - }, - "reffcclwtop": { - "CMOR_varname": "reffcclwtop", - "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle_at_convective_liquid_water_cloud_top", - "long_name": "Cloud-Top Effective Droplet Radius In Convective Cloud", - "mipTable": "Eday", - "units": "m" - }, - "scldncl": { - "CMOR_varname": "scldncl", - "standard_name": "number_concentration_of_stratiform_cloud_liquid_water_particle_at_stratiform_liquid_water_cloud_top", - "long_name": "Cloud Droplet Number Concentration of Stratiform Cloud Tops", - "mipTable": "Eday", - "units": "m-3" - }, - "ccldncl": { - "CMOR_varname": "ccldncl", - "standard_name": "number_concentration_of_convective_cloud_liquid_water_particle_at_convective_liquid_water_cloud_top", - "long_name": "Cloud Droplet Number Concentration of Convective Cloud Tops", - "mipTable": "Eday", - "units": "m-3" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "E1hrClimMon", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", - "mipTable": "E1hrClimMon", - "units": "W m-2" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "E1hrClimMon", - "units": "W m-2" - }, - "rsutcs": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "mipTable": "E1hrClimMon", - "units": "W m-2" - }, - "rlutcs": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-sky Longwave Radiation", - "mipTable": "E1hrClimMon", - "units": "W m-2" - }, - "jo3": { - "CMOR_varname": "jo3", - "standard_name": "photolysis_rate_of_ozone", - "long_name": "photoloysis rate of O3", - "mipTable": "EmonZ", - "units": "s-1" - }, - "jo2": { - "CMOR_varname": "jo2", - "standard_name": "photolysis_rate_of_molecular_oxygen", - "long_name": "photoloysis rate of O2", - "mipTable": "EmonZ", - "units": "s-1" - }, - "oxprod": { - "CMOR_varname": "oxprod", - "standard_name": "tendency_of_mole_concentration_of_ox_in_air_due_to_chemical_and_photolytic_production", - "long_name": "total Ox production rate", - "mipTable": "EmonZ", - "units": "mol m-3 s-1" - }, - "oxloss": { - "CMOR_varname": "oxloss", - "standard_name": "tendency_of_mole_concentration_of_ox_in_air_due_to_chemical_destruction", - "long_name": "total Ox loss rate", - "mipTable": "EmonZ", - "units": "mol m-3 s-1" - }, - "vmrox": { - "CMOR_varname": "vmrox", - "standard_name": "mole_fraction_of_ox_in_air", - "long_name": "mole fraction of o and o3 and o1d", - "mipTable": "EmonZ", - "units": "mol mol-1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "EdayZ", - "units": "K" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "EdayZ", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "EdayZ", - "units": "m s-1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "EdayZ", - "units": "1" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "Eday", - "units": "m" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "Eday", - "units": "K" - }, - "prw": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_mass_content_of_water_vapor", - "long_name": "Water Vapor Path", - "mipTable": "Eday", - "units": "kg m-2" - }, - "ta850": { - "CMOR_varname": "ta850", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "Eday", - "units": "K" - }, - "prhmax": { - "CMOR_varname": "prhmax", - "standard_name": "precipitation_flux", - "long_name": "Maximum Hourly Precipitation Rate", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "zg1000": { - "CMOR_varname": "zg1000", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height at 1000 hPa", - "mipTable": "6hrPlev", - "units": "m" - }, - "rv850": { - "CMOR_varname": "rv850", - "standard_name": "atmosphere_relative_vorticity", - "long_name": "Relative Vorticity at 850 hPa", - "mipTable": "6hrPlev", - "units": "s-1" - }, - "rls": { - "CMOR_varname": "rls", - "standard_name": "surface_net_downward_longwave_flux", - "long_name": "Net Longwave Surface Radiation", - "mipTable": "Emon", - "units": "W m-2" - }, - "t20d": { - "CMOR_varname": "t20d", - "standard_name": "depth_of_isosurface_of_sea_water_potential_temperature", - "long_name": "20C isotherm depth", - "mipTable": "Emon", - "units": "m" - }, - "thetaot300": { - "CMOR_varname": "thetaot300", - "standard_name": "sea_water_potential_temperature", - "long_name": "Depth average potential temperature of upper 300m", - "mipTable": "Emon", - "units": "degC" - }, - "thetaot700": { - "CMOR_varname": "thetaot700", - "standard_name": "sea_water_potential_temperature", - "long_name": "Depth average potential temperature of upper 700m", - "mipTable": "Emon", - "units": "degC" - }, - "thetaot2000": { - "CMOR_varname": "thetaot2000", - "standard_name": "sea_water_potential_temperature", - "long_name": "Depth average potential temperature of upper 2000m", - "mipTable": "Emon", - "units": "degC" - }, - "co2s": { - "CMOR_varname": "co2s", - "standard_name": "mole_fraction_of_carbon_dioxide_in_air", - "long_name": "Atmosphere CO2", - "mipTable": "Emon", - "units": "1e-06" - }, - "tdps": { - "CMOR_varname": "tdps", - "standard_name": "dew_point_temperature", - "long_name": "2m dewpoint temperature", - "mipTable": "Eday", - "units": "K" - }, - "t20d": { - "CMOR_varname": "t20d", - "standard_name": "depth_of_isosurface_of_sea_water_potential_temperature", - "long_name": "20C isotherm depth", - "mipTable": "Eday", - "units": "m" - }, - "tntogw": { - "CMOR_varname": "tntogw", - "standard_name": "tendency_of_air_temperature_due_to_dissipation_of_orographic_gravity_waves", - "long_name": "temperature tendency orographic gravity wave dissipation", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "tntnogw": { - "CMOR_varname": "tntnogw", - "standard_name": "tendency_of_air_temperature_due_to_dissipation_of_nonorographic_gravity_waves", - "long_name": "temperature tendency nonorographic gravity wave dissipation", - "mipTable": "EmonZ", - "units": "K s-1" - }, - "epfz": { - "CMOR_varname": "epfz", - "standard_name": "upward_eliassen_palm_flux_in_air", - "long_name": "Upward Component of the Eliassen-Palm Flux", - "mipTable": "EmonZ", - "units": "m3 s-2" - }, - "vtendogw": { - "CMOR_varname": "vtendogw", - "standard_name": "tendency_of_northward_wind_due_to_orographic_gravity_wave_drag", - "long_name": "v-tendency orographic gravity wave drag", - "mipTable": "Emon", - "units": "m s-2" - }, - "vtendnogw": { - "CMOR_varname": "vtendnogw", - "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "v-tendency nonorographic gravity wave drag", - "mipTable": "Emon", - "units": "m s-2" - }, - "vtem": { - "CMOR_varname": "vtem", - "standard_name": "northward_transformed_eulerian_mean_air_velocity", - "long_name": "Transformed Eulerian Mean northward wind", - "mipTable": "EdayZ", - "units": "m s-1" - }, - "wtem": { - "CMOR_varname": "wtem", - "standard_name": "upward_transformed_eulerian_mean_air_velocity", - "long_name": "Transformed Eulerian Mean upward wind", - "mipTable": "EdayZ", - "units": "m s-1" - }, - "epfy": { - "CMOR_varname": "epfy", - "standard_name": "northward_eliassen_palm_flux_in_air", - "long_name": "Northward Component of the Eliassen-Palm Flux", - "mipTable": "EdayZ", - "units": "m3 s-2" - }, - "epfz": { - "CMOR_varname": "epfz", - "standard_name": "upward_eliassen_palm_flux_in_air", - "long_name": "Upward Component of the Eliassen-Palm Flux", - "mipTable": "EdayZ", - "units": "m3 s-2" - }, - "utendepfd": { - "CMOR_varname": "utendepfd", - "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", - "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", - "mipTable": "EdayZ", - "units": "m s-2" - }, - "utendogw": { - "CMOR_varname": "utendogw", - "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", - "long_name": "u-tendency orographic gravity wave drag", - "mipTable": "EdayZ", - "units": "m s-2" - }, - "utendnogw": { - "CMOR_varname": "utendnogw", - "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", - "long_name": "u-tendency nonorographic gravity wave drag", - "mipTable": "EdayZ", - "units": "m s-2" - }, - "psitem": { - "CMOR_varname": "psitem", - "standard_name": "atmosphere_transformed_eulerian_mean_meridional_overturning_mass_streamfunction", - "long_name": "Transformed Eulerian Mean mass stramfunction", - "mipTable": "EdayZ", - "units": "kg s-1" - }, - "utendvtem": { - "CMOR_varname": "utendvtem", - "standard_name": "tendency_of_eastward_wind_due_to_advection_by_northward_transformed_eulerian_mean_air_velocity", - "long_name": "Tendency of eastward wind due to TEM northward advection and Coriolis term", - "mipTable": "EdayZ", - "units": "m s-1 d-1" - }, - "utendwtem": { - "CMOR_varname": "utendwtem", - "standard_name": "tendency_of_eastward_wind_due_to_advection_by_upward_transformed_eulerian_mean_air_velocity", - "long_name": "Tendency of eastward wind due to TEM upward advection", - "mipTable": "EdayZ", - "units": "m s-1 d-1" - }, - "tauupbl": { - "CMOR_varname": "tauupbl", - "standard_name": "surface_downward_eastward_stress_due_to_boundary_layer_mixing", - "long_name": "eastward surface stress from planetary boundary layer scheme", - "mipTable": "Eday", - "units": "Pa" - }, - "tauvpbl": { - "CMOR_varname": "tauvpbl", - "standard_name": "surface_downward_northward_stress_due_to_boundary_layer_mixing", - "long_name": "northward surface stress from planetary boundary layer scheme", - "mipTable": "Eday", - "units": "Pa" - }, - "tauu": { - "CMOR_varname": "tauu", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "mipTable": "Eday", - "units": "Pa" - }, - "tauv": { - "CMOR_varname": "tauv", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "mipTable": "Eday", - "units": "Pa" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "Eday", - "units": "1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "Eday", - "units": "K" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "Eday", - "units": "Pa s-1" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "EdayZ", - "units": "m" - }, - "somint": { - "CMOR_varname": "somint", - "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_salinity", - "long_name": "integral wrt depth of product of sea water density and salinity", - "mipTable": "Emon", - "units": "1e-3 kg m-2" - }, - "opottempmint": { - "CMOR_varname": "opottempmint", - "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_potential_temperature", - "long_name": "integral wrt depth of product of sea water density and potential temperature", - "mipTable": "Emon", - "units": "degC kg m-2" - }, - "ocontempmint": { - "CMOR_varname": "ocontempmint", - "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_conservative_temperature", - "long_name": "integral wrt depth of product of sea water density and conservative temperature", - "mipTable": "Emon", - "units": "degC kg m-2" - }, - "pathetao": { - "CMOR_varname": "pathetao", - "standard_name": "sea_water_added_potential_temperature", - "long_name": "Sea Water Additional Potential Temperature", - "mipTable": "Emon", - "units": "degC" - }, - "prthetao": { - "CMOR_varname": "prthetao", - "standard_name": "sea_water_redistributed_potential_temperature", - "long_name": "Sea Water Resdistributed Potential Temperature", - "mipTable": "Emon", - "units": "degC" - }, - "pabigthetao": { - "CMOR_varname": "pabigthetao", - "standard_name": "sea_water_added_conservative_temperature", - "long_name": "Sea Water Added Conservative Temperature", - "mipTable": "Emon", - "units": "degC" - }, - "prbigthetao": { - "CMOR_varname": "prbigthetao", - "standard_name": "sea_water_redistributed_conservative_temperature", - "long_name": "Sea Water Redistributed Conservative Temperature", - "mipTable": "Emon", - "units": "degC" - }, - "opottemptend": { - "CMOR_varname": "opottemptend", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content", - "long_name": "tendency of sea water potential temperature expressed as heat content", - "mipTable": "Emon", - "units": "W m-2" - }, - "opottemprmadvect": { - "CMOR_varname": "opottemprmadvect", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_residual_mean_advection", - "long_name": "tendency of sea water potential temperature expressed as heat content due to residual mean advection", - "mipTable": "Emon", - "units": "W m-2" - }, - "opottemppadvect": { - "CMOR_varname": "opottemppadvect", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized eddy advection", - "mipTable": "Emon", - "units": "W m-2" - }, - "opottemppmdiff": { - "CMOR_varname": "opottemppmdiff", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized mesoscale diffusion", - "mipTable": "Emon", - "units": "W m-2" - }, - "opottemppsmadvect": { - "CMOR_varname": "opottemppsmadvect", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized submesoscale advection", - "mipTable": "Emon", - "units": "W m-2" - }, - "opottempdiff": { - "CMOR_varname": "opottempdiff", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized dianeutral mixing", - "mipTable": "Emon", - "units": "W m-2" - }, - "ocontemptend": { - "CMOR_varname": "ocontemptend", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content", - "long_name": "tendency of sea water conservative temperature expressed as heat content", - "mipTable": "Emon", - "units": "W m-2" - }, - "ocontemprmadvect": { - "CMOR_varname": "ocontemprmadvect", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_residual_mean_advection", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to residual mean (sum of Eulerian + parameterized) advection", - "mipTable": "Emon", - "units": "W m-2" - }, - "ocontemppadvect": { - "CMOR_varname": "ocontemppadvect", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized eddy advection", - "mipTable": "Emon", - "units": "W m-2" - }, - "ocontemppmdiff": { - "CMOR_varname": "ocontemppmdiff", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized mesoscale diffusion", - "mipTable": "Emon", - "units": "W m-2" - }, - "ocontemppsmadvect": { - "CMOR_varname": "ocontemppsmadvect", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized submesoscale advection", - "mipTable": "Emon", - "units": "W m-2" - }, - "ocontempdiff": { - "CMOR_varname": "ocontempdiff", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized dianeutral mixing", - "mipTable": "Emon", - "units": "W m-2" - }, - "osalttend": { - "CMOR_varname": "osalttend", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content", - "long_name": "tendency of sea water salinity expressed as salt content", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "osaltrmadvect": { - "CMOR_varname": "osaltrmadvect", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_residual_mean_advection", - "long_name": "tendency of sea water salinity expressed as salt content due to residual mean advection", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "osaltpadvect": { - "CMOR_varname": "osaltpadvect", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized eddy advection", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "osaltpmdiff": { - "CMOR_varname": "osaltpmdiff", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized mesoscale diffusion", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "osaltpsmadvect": { - "CMOR_varname": "osaltpsmadvect", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized submesoscale advection", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "osaltdiff": { - "CMOR_varname": "osaltdiff", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_dianeutral_mixing", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized dianeutral mixing", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rsdoabsorb": { - "CMOR_varname": "rsdoabsorb", - "standard_name": "net_rate_of_absorption_of_shortwave_energy_in_ocean_layer", - "long_name": "net rate of absorption of shortwave energy in ocean layer", - "mipTable": "Emon", - "units": "W m-2" - }, - "uqint": { - "CMOR_varname": "uqint", - "standard_name": "integral_wrt_height_of_product_of_eastward_wind_and_specific_humidity", - "long_name": "integrated_eastward_wind_times_humidity", - "mipTable": "Emon", - "units": "m2 s-1" - }, - "vqint": { - "CMOR_varname": "vqint", - "standard_name": "integral_wrt_height_of_product_of_northward_wind_and_specific_humidity", - "long_name": "integrated_northward_wind_times_humidity", - "mipTable": "Emon", - "units": "m2 s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "Eday", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "Eday", - "units": "m s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "wap4": { - "CMOR_varname": "wap4", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "6hrPlev", - "units": "Pa s-1" - }, - "hus4": { - "CMOR_varname": "hus4", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "6hrPlev", - "units": "1" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "CF3hr", - "units": "Pa" - }, - "prcsh": { - "CMOR_varname": "prcsh", - "standard_name": "shallow_convective_precipitation_flux", - "long_name": "Precipitation Flux from Shallow Convection", - "mipTable": "E3hr", - "units": "kg m-2 s-1" - }, - "wap7h": { - "CMOR_varname": "wap7h", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "E3hrPt", - "units": "Pa s-1" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "E1hr", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "E1hr", - "units": "kg m-2 s-1" - }, - "columnmassflux": { - "CMOR_varname": "columnmassflux", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Column Integrated Mass Flux", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "u2": { - "CMOR_varname": "u2", - "standard_name": "square_of_eastward_wind", - "long_name": "square_of_eastward_wind", - "mipTable": "Emon", - "units": "m2 s-2" - }, - "v2": { - "CMOR_varname": "v2", - "standard_name": "square_of_northward_wind", - "long_name": "square_of_northwardwind", - "mipTable": "Emon", - "units": "m2 s-2" - }, - "wap2": { - "CMOR_varname": "wap2", - "standard_name": "square_of_lagrangian_tendency_of_air_pressure", - "long_name": "square_of_omega", - "mipTable": "Emon", - "units": "Pa2 s-2" - }, - "t2": { - "CMOR_varname": "t2", - "standard_name": "square_of_air_temperature", - "long_name": "square_of_air_temperature", - "mipTable": "Emon", - "units": "K2" - }, - "uv": { - "CMOR_varname": "uv", - "standard_name": "product_of_eastward_wind_and_northward_wind", - "long_name": "eastward_wind_times_northward_wind", - "mipTable": "Emon", - "units": "m2 s-2" - }, - "uwap": { - "CMOR_varname": "uwap", - "standard_name": "product_of_eastward_wind_and_omega", - "long_name": "eastward_wind_times_omega", - "mipTable": "Emon", - "units": "Pa m s-2" - }, - "vwap": { - "CMOR_varname": "vwap", - "standard_name": "product_of_northward_wind_and_omega", - "long_name": "northward_wind_times_omega", - "mipTable": "Emon", - "units": "Pa m s-2" - }, - "ut": { - "CMOR_varname": "ut", - "standard_name": "product_of_eastward_wind_and_air_temperature", - "long_name": "air_temperature_times_eastward_wind", - "mipTable": "Emon", - "units": "K m s-1" - }, - "vt": { - "CMOR_varname": "vt", - "standard_name": "product_of_northward_wind_and_air_temperature", - "long_name": "air_temperature_times_northward_wind", - "mipTable": "Emon", - "units": "K m s-1" - }, - "twap": { - "CMOR_varname": "twap", - "standard_name": "product_of_omega_and_air_temperature", - "long_name": "air_temperature_times_omega", - "mipTable": "Emon", - "units": "K Pa s-1" - }, - "xgwdparam": { - "CMOR_varname": "xgwdparam", - "standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag", - "long_name": "x_gravity_wave_drag_param", - "mipTable": "Emon", - "units": "Pa" - }, - "ygwdparam": { - "CMOR_varname": "ygwdparam", - "standard_name": "atmosphere_northward_stress_due_to_gravity_wave_drag", - "long_name": "y_gravity_wave_drag_param", - "mipTable": "Emon", - "units": "Pa" - }, - "xgwdparam": { - "CMOR_varname": "xgwdparam", - "standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag", - "long_name": "x_gravity_wave_drag_param", - "mipTable": "EmonZ", - "units": "Pa" - }, - "ygwdparam": { - "CMOR_varname": "ygwdparam", - "standard_name": "atmosphere_northward_stress_due_to_gravity_wave_drag", - "long_name": "y_gravity_wave_drag_param", - "mipTable": "EmonZ", - "units": "Pa" - }, - "tntmp27": { - "CMOR_varname": "tntmp27", - "standard_name": "tendency_of_air_temperature_due_to_model_physics", - "long_name": "Tendency of Air Temperature due to Model Physics", - "mipTable": "Emon", - "units": "K s-1" - }, - "tntrl27": { - "CMOR_varname": "tntrl27", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", - "long_name": "Longwave heating rate", - "mipTable": "Emon", - "units": "K s-1" - }, - "tntrs27": { - "CMOR_varname": "tntrs27", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", - "long_name": "Shortwave heating rate", - "mipTable": "Emon", - "units": "K s-1" - }, - "ta27": { - "CMOR_varname": "ta27", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "Emon", - "units": "K" - }, - "ua27": { - "CMOR_varname": "ua27", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "Emon", - "units": "m s-1" - }, - "va27": { - "CMOR_varname": "va27", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "Emon", - "units": "m s-1" - }, - "zg27": { - "CMOR_varname": "zg27", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "Emon", - "units": "m" - }, - "hus27": { - "CMOR_varname": "hus27", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "Emon", - "units": "1" - }, - "cldicemxrat27": { - "CMOR_varname": "cldicemxrat27", - "standard_name": "cloud_ice_mixing_ratio", - "long_name": "Cloud Ice Mixing Ratio", - "mipTable": "Emon", - "units": "1" - }, - "cldwatmxrat27": { - "CMOR_varname": "cldwatmxrat27", - "standard_name": "cloud_liquid_water_mixing_ratio", - "long_name": "Cloud Water Mixing Ratio", - "mipTable": "Emon", - "units": "1" - }, - "rainmxrat27": { - "CMOR_varname": "rainmxrat27", - "standard_name": "mass_fraction_of_rain_in_air", - "long_name": "rain_mixing_ratio", - "mipTable": "Emon", - "units": "1" - }, - "snowmxrat27": { - "CMOR_varname": "snowmxrat27", - "standard_name": "mass_fraction_of_snow_in_air", - "long_name": "snow_mixing_ratio", - "mipTable": "Emon", - "units": "1" - }, - "grplmxrat27": { - "CMOR_varname": "grplmxrat27", - "standard_name": "mass_fraction_of_graupel_in_air", - "long_name": "Graupel Mixing Ratio", - "mipTable": "Emon", - "units": "1" - }, - "zg27": { - "CMOR_varname": "zg27", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "6hrPlevPt", - "units": "m" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "snw": { - "CMOR_varname": "snw", - "standard_name": "surface_snow_amount", - "long_name": "Surface Snow Amount", - "mipTable": "6hrPlevPt", - "units": "kg m-2" - }, - "dtaus": { - "CMOR_varname": "dtaus", - "standard_name": "atmosphere_optical_thickness_due_to_stratiform_cloud", - "long_name": "Stratiform Cloud Optical Depth", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "dtauc": { - "CMOR_varname": "dtauc", - "standard_name": "atmosphere_optical_thickness_due_to_convective_cloud", - "long_name": "Convective Cloud Optical Depth", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "E3hr", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", - "mipTable": "E3hr", - "units": "W m-2" - }, - "rlutcs": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-sky Longwave Radiation", - "mipTable": "E3hr", - "units": "W m-2" - }, - "rsutcs": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "mipTable": "E3hr", - "units": "W m-2" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "E3hr", - "units": "W m-2" - }, - "prw": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_mass_content_of_water_vapor", - "long_name": "Water Vapor Path", - "mipTable": "E3hr", - "units": "kg m-2" - }, - "clwvi": { - "CMOR_varname": "clwvi", - "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", - "long_name": "Condensed Water Path", - "mipTable": "E3hr", - "units": "kg m-2" - }, - "clivi": { - "CMOR_varname": "clivi", - "standard_name": "atmosphere_mass_content_of_cloud_ice", - "long_name": "Ice Water Path", - "mipTable": "E3hr", - "units": "kg m-2" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "E3hr", - "units": "Pa" - }, - "clisccp": { - "CMOR_varname": "clisccp", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "ISCCP Percentage Cloud Area", - "mipTable": "E3hrPt", - "units": "%" - }, - "ua27": { - "CMOR_varname": "ua27", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "E1hr", - "units": "m s-1" - }, - "va27": { - "CMOR_varname": "va27", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "E1hr", - "units": "m s-1" - }, - "wap27": { - "CMOR_varname": "wap27", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "E1hr", - "units": "Pa s-1" - }, - "ta27": { - "CMOR_varname": "ta27", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "E1hr", - "units": "K" - }, - "zg27": { - "CMOR_varname": "zg27", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "E1hr", - "units": "m" - }, - "tntr27": { - "CMOR_varname": "tntr27", - "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", - "long_name": "Tendency of Air Temperature due to Radiative Heating", - "mipTable": "E1hr", - "units": "K s-1" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "E1hr", - "units": "W m-2" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "E1hr", - "units": "Pa" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "E1hr", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "E1hr", - "units": "m s-1" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "E1hr", - "units": "Pa s-1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "E1hr", - "units": "K" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "Esubhr", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "Esubhr", - "units": "kg m-2 s-1" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Surface Air Temperature", - "mipTable": "Esubhr", - "units": "K" - }, - "huss": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "mipTable": "Esubhr", - "units": "1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "Esubhr", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "Esubhr", - "units": "m s-1" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "Esubhr", - "units": "W m-2" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "Esubhr", - "units": "W m-2" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "Esubhr", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", - "mipTable": "Esubhr", - "units": "W m-2" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "Esubhr", - "units": "W m-2" - }, - "prw": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_mass_content_of_water_vapor", - "long_name": "Water Vapor Path", - "mipTable": "Esubhr", - "units": "kg m-2" - }, - "bldep": { - "CMOR_varname": "bldep", - "standard_name": "atmosphere_boundary_layer_thickness", - "long_name": "Boundary Layer Depth", - "mipTable": "Esubhr", - "units": "m" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "Esubhr", - "units": "Pa s-1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "Esubhr", - "units": "K" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "Esubhr", - "units": "1" - }, - "mc": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "mipTable": "Esubhr", - "units": "kg m-2 s-1" - }, - "tnt": { - "CMOR_varname": "tnt", - "standard_name": "tendency_of_air_temperature", - "long_name": "Tendency of Air Temperature", - "mipTable": "Esubhr", - "units": "K s-1" - }, - "tnhus": { - "CMOR_varname": "tnhus", - "standard_name": "tendency_of_specific_humidity", - "long_name": "Tendency of Specific Humidity", - "mipTable": "Esubhr", - "units": "s-1" - }, - "tsn": { - "CMOR_varname": "tsn", - "standard_name": "temperature_in_surface_snow", - "long_name": "Snow Internal Temperature", - "mipTable": "LImon", - "units": "K" - }, - "sftgif": { - "CMOR_varname": "sftgif", - "standard_name": "land_ice_area_fraction", - "long_name": "Fraction of Grid Cell Covered with Glacier", - "mipTable": "LImon", - "units": "%" - }, - "sftgrf": { - "CMOR_varname": "sftgrf", - "standard_name": "grounded_ice_sheet_area_fraction", - "long_name": "Grounded Ice Sheet Area Fraction", - "mipTable": "LImon", - "units": "%" - }, - "sftflf": { - "CMOR_varname": "sftflf", - "standard_name": "floating_ice_shelf_area_fraction", - "long_name": "Floating Ice Shelf Area Fraction", - "mipTable": "LImon", - "units": "%" - }, - "rss": { - "CMOR_varname": "rss", - "standard_name": "surface_net_downward_shortwave_flux", - "long_name": "Net Shortwave Surface Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "rsutcsaf": { - "CMOR_varname": "rsutcsaf", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky_and_no_aerosol", - "long_name": "TOA Outgoing Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation", - "units": "AERmon" - }, - "rsutaf": { - "CMOR_varname": "rsutaf", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Aerosol-Free Shortwave Radiation", - "mipTable": "AERmon", - "units": "W m-2" - }, - "rlutaf": { - "CMOR_varname": "rlutaf", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Aerosol-Free Longwave Radiation", - "mipTable": "AERmon", - "units": "W m-2" - }, - "rlutcsaf": { - "CMOR_varname": "rlutcsaf", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky", - "mipTable": "Aerosol-Free Longwave Radiation", - "units": "AERmon" - }, - "ec550aer": { - "CMOR_varname": "ec550aer", - "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", - "long_name": "Aerosol extinction coefficient", - "mipTable": "6hrLev", - "units": "m-1" - }, - "bs550aer": { - "CMOR_varname": "bs550aer", - "standard_name": "volume_scattering_function_of_radiative_flux_in_air_due_to_ambient_aerosol_particles", - "long_name": "Aerosol backscatter coefficient", - "mipTable": "6hrLev", - "units": "m-1 sr-1" - }, - "zfullo": { - "CMOR_varname": "zfullo", - "standard_name": "depth_below_geoid", - "long_name": "Depth Below Geoid of Ocean Layer", - "mipTable": "Eyr", - "units": "m" - }, - "vegHeight": { - "CMOR_varname": "vegHeight", - "standard_name": "canopy_height", - "long_name": "canopy height", - "mipTable": "Efx", - "units": "m" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Surface Air Temperature", - "mipTable": "6hrPlev", - "units": "K" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Near-Surface Wind Speed", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "6hrPlev", - "units": "Pa" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "6hrPlev", - "units": "kg m-2 s-1" - }, - "prhmax": { - "CMOR_varname": "prhmax", - "standard_name": "precipitation_flux", - "long_name": "Maximum Hourly Precipitation Rate", - "mipTable": "6hrPlev", - "units": "kg m-2 s-1" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "vortmean": { - "CMOR_varname": "vortmean", - "standard_name": "atmosphere_relative_vorticity", - "long_name": "atmosphere_relative_vorticity", - "mipTable": "6hrPlevPt", - "units": "s-1" - }, - "huss": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Surface Air Temperature", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Near-Surface Wind Speed", - "mipTable": "6hrPlevPt", - "units": "m s-1" - }, - "mrsos": { - "CMOR_varname": "mrsos", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column", - "mipTable": "6hrPlevPt", - "units": "kg m-2" - }, - "tsl": { - "CMOR_varname": "tsl", - "standard_name": "soil_temperature", - "long_name": "Temperature of Near-Surface Soil Layer", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "mrsol": { - "CMOR_varname": "mrsol", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Water Content of Soil Layer", - "mipTable": "6hrPlevPt", - "units": "kg m-2" - }, - "fracLut": { - "CMOR_varname": "fracLut", - "standard_name": "area_fraction", - "long_name": "Percentage of grid cell for each land use tile", - "mipTable": "Emon", - "units": "%" - }, - "sltnortha": { - "CMOR_varname": "sltnortha", - "standard_name": "northward_ocean_salt_transport", - "long_name": "Atlantic Northward Ocean Salt Transport", - "mipTable": "EmonZ", - "units": "kg s-1" - }, - "rsutcsaf": { - "CMOR_varname": "rsutcsaf", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky_and_no_aerosol", - "long_name": "TOA Outgoing Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation", - "units": "E3hrPt" - }, - "rsdscsaf": { - "CMOR_varname": "rsdscsaf", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Surface Downwelling Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation", - "units": "E3hrPt" - }, - "rsuscsaf": { - "CMOR_varname": "rsuscsaf", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Surface Upwelling Clean Clear-Sky Shortwave Radiation", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsutcsafbnd": { - "CMOR_varname": "rsutcsafbnd", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky_and_no_aerosol", - "long_name": "TOA Outgoing Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation in Bands", - "units": "E3hrPt" - }, - "rsdscsafbnd": { - "CMOR_varname": "rsdscsafbnd", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Surface Downwelling Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation in Bands", - "units": "E3hrPt" - }, - "rsuscsafbnd": { - "CMOR_varname": "rsuscsafbnd", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Surface Upwelling Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation in Bands", - "units": "E3hrPt" - }, - "rsucsaf": { - "CMOR_varname": "rsucsaf", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Upwelling Clean-Clear-Sky Shortwave Radiation at each level", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsdcsaf": { - "CMOR_varname": "rsdcsaf", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Downwelling Clean-Clear-Sky Shortwave Radiation at each level", - "mipTable": "E3hrPt", - "units": "W m-2" - }, - "rsucsafbnd": { - "CMOR_varname": "rsucsafbnd", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Upwelling Clear-Sky", - "mipTable": "Aerosol-Free Shortwave Radiation in Bands", - "units": "E3hrPt" - }, - "rsdcsafbnd": { - "CMOR_varname": "rsdcsafbnd", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", - "long_name": "Downwelling Clear-Sky", - "mipTable": "Aerosol-Free", - "units": "Shortwave Radiation in Bands" - }, - "rsuscs": { - "CMOR_varname": "rsuscs", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "ua100m": { - "CMOR_varname": "ua100m", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind at 100m", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "va100m": { - "CMOR_varname": "va100m", - "standard_name": "northward_wind", - "long_name": "Northward Wind at 100m", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "wsgmax100m": { - "CMOR_varname": "wsgmax100m", - "standard_name": "wind_speed_of_gust", - "long_name": "Maximum Wind Speed of Gust at 100m", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "hurs": { - "CMOR_varname": "hurs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "mipTable": "6hrPlev", - "units": "%" - }, - "bldep": { - "CMOR_varname": "bldep", - "standard_name": "atmosphere_boundary_layer_thickness", - "long_name": "Boundary Layer Depth", - "mipTable": "6hrPlev", - "units": "m" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "Esubhr", - "units": "Pa" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "E6hrZ", - "units": "Pa" - }, - "diftrblo2d": { - "CMOR_varname": "diftrblo2d", - "standard_name": "ocean_tracer_laplacian_diffusivity_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "diftrbbo2d": { - "CMOR_varname": "diftrbbo2d", - "standard_name": "ocean_tracer_biharmonic_diffusivity_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "Ocean Tracer Bolus Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "diftrelo2d": { - "CMOR_varname": "diftrelo2d", - "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", - "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "diftrebo2d": { - "CMOR_varname": "diftrebo2d", - "standard_name": "ocean_tracer_epineutral_biharmonic_diffusivity", - "long_name": "Ocean Tracer Epineutral Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "diftrxylo2d": { - "CMOR_varname": "diftrxylo2d", - "standard_name": "ocean_tracer_xy_laplacian_diffusivity", - "long_name": "Ocean Tracer XY Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "diftrxybo2d": { - "CMOR_varname": "diftrxybo2d", - "standard_name": "ocean_tracer_xy_biharmonic_diffusivity", - "long_name": "Ocean Tracer XY Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "tnkebto2d": { - "CMOR_varname": "tnkebto2d", - "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_parameterized_eddy_advection", - "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", - "mipTable": "Oclim", - "units": "W m-2" - }, - "difmxylo2d": { - "CMOR_varname": "difmxylo2d", - "standard_name": "ocean_momentum_xy_laplacian_diffusivity", - "long_name": "Ocean Momentum XY Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difmxybo2d": { - "CMOR_varname": "difmxybo2d", - "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", - "long_name": "Ocean Momentum XY Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "dispkexyfo2d": { - "CMOR_varname": "dispkexyfo2d", - "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", - "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", - "mipTable": "Oclim", - "units": "W m-2" - }, - "co2Clim": { - "CMOR_varname": "co2Clim", - "standard_name": "mole_fraction_of_carbon_dioxide_in_air", - "long_name": "Mole Fraction of CO2", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "co2massClim": { - "CMOR_varname": "co2massClim", - "standard_name": "atmosphere_mass_of_carbon_dioxide", - "long_name": "Total Atmospheric Mass of CO2", - "mipTable": "Amon", - "units": "kg" - }, - "ch4Clim": { - "CMOR_varname": "ch4Clim", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "Mole Fraction of CH4", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "ch4globalClim": { - "CMOR_varname": "ch4globalClim", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "Global Mean Mole Fraction of CH4", - "mipTable": "Amon", - "units": "1e-09" - }, - "n2oClim": { - "CMOR_varname": "n2oClim", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "Mole Fraction of N2O", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "n2oglobalClim": { - "CMOR_varname": "n2oglobalClim", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "Global Mean Mole Fraction of N2O", - "mipTable": "Amon", - "units": "1e-09" - }, - "evu": { - "CMOR_varname": "evu", - "standard_name": "atmosphere_momentum_diffusivity", - "long_name": "Eddy Viscosity Coefficients for Momentum", - "mipTable": "CFmon", - "units": "m2 s-1" - }, - "edt": { - "CMOR_varname": "edt", - "standard_name": "atmosphere_heat_diffusivity", - "long_name": "Eddy Diffusivity Coefficients for Temperature", - "mipTable": "CFmon", - "units": "m2 s-1" - }, - "cl": { - "CMOR_varname": "cl", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Cloud Area Fraction", - "mipTable": "CFsubhr", - "units": "%" - }, - "clw": { - "CMOR_varname": "clw", - "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Cloud Liquid Water", - "mipTable": "CFsubhr", - "units": "kg kg-1" - }, - "cli": { - "CMOR_varname": "cli", - "standard_name": "mass_fraction_of_cloud_ice_in_air", - "long_name": "Mass Fraction of Cloud Ice", - "mipTable": "CFsubhr", - "units": "kg kg-1" - }, - "mc": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "mipTable": "CFsubhr", - "units": "kg m-2 s-1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "CFsubhr", - "units": "K" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "CFsubhr", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "CFsubhr", - "units": "m s-1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "CFsubhr", - "units": "1" - }, - "hur": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "mipTable": "CFsubhr", - "units": "%" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "CFsubhr", - "units": "Pa s-1" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "CFsubhr", - "units": "m" - }, - "rlu": { - "CMOR_varname": "rlu", - "standard_name": "upwelling_longwave_flux_in_air", - "long_name": "Upwelling Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsu": { - "CMOR_varname": "rsu", - "standard_name": "upwelling_shortwave_flux_in_air", - "long_name": "Upwelling Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rld": { - "CMOR_varname": "rld", - "standard_name": "downwelling_longwave_flux_in_air", - "long_name": "Downwelling Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsd": { - "CMOR_varname": "rsd", - "standard_name": "downwelling_shortwave_flux_in_air", - "long_name": "Downwelling Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rlucs": { - "CMOR_varname": "rlucs", - "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsucs": { - "CMOR_varname": "rsucs", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rldcs": { - "CMOR_varname": "rldcs", - "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Longwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "rsdcs": { - "CMOR_varname": "rsdcs", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFsubhr", - "units": "W m-2" - }, - "tnt": { - "CMOR_varname": "tnt", - "standard_name": "tendency_of_air_temperature", - "long_name": "Tendency of Air Temperature", - "mipTable": "CFsubhr", - "units": "K s-1" - }, - "tnta": { - "CMOR_varname": "tnta", - "standard_name": "tendency_of_air_temperature_due_to_advection", - "long_name": "Tendency of Air Temperature due to Advection", - "mipTable": "CFsubhr", - "units": "K s-1" - }, - "tntmp": { - "CMOR_varname": "tntmp", - "standard_name": "tendency_of_air_temperature_due_to_model_physics", - "long_name": "Tendency of Air Temperature due to Model Physics", - "mipTable": "CFsubhr", - "units": "K s-1" - }, - "tntscpbl": { - "CMOR_varname": "tntscpbl", - "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", - "long_name": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", - "mipTable": "CFsubhr", - "units": "K s-1" - }, - "tntr": { - "CMOR_varname": "tntr", - "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", - "long_name": "Tendency of Air Temperature due to Radiative Heating", - "mipTable": "CFsubhr", - "units": "K s-1" - }, - "tntc": { - "CMOR_varname": "tntc", - "standard_name": "tendency_of_air_temperature_due_to_convection", - "long_name": "Tendency of Air Temperature due to Convection", - "mipTable": "CFsubhr", - "units": "K s-1" - }, - "tnhus": { - "CMOR_varname": "tnhus", - "standard_name": "tendency_of_specific_humidity", - "long_name": "Tendency of Specific Humidity", - "mipTable": "CFsubhr", - "units": "s-1" - }, - "tnhusa": { - "CMOR_varname": "tnhusa", - "standard_name": "tendency_of_specific_humidity_due_to_advection", - "long_name": "Tendency of Specific Humidity due to Advection", - "mipTable": "CFsubhr", - "units": "s-1" - }, - "tnhusc": { - "CMOR_varname": "tnhusc", - "standard_name": "tendency_of_specific_humidity_due_to_convection", - "long_name": "Tendency of Specific Humidity due to Convection", - "mipTable": "CFsubhr", - "units": "s-1" - }, - "tnhusd": { - "CMOR_varname": "tnhusd", - "standard_name": "tendency_of_specific_humidity_due_to_diffusion", - "long_name": "Tendency of Specific Humidity due to Numerical Diffusion", - "mipTable": "CFsubhr", - "units": "s-1" - }, - "tnhusscpbl": { - "CMOR_varname": "tnhusscpbl", - "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", - "long_name": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", - "mipTable": "CFsubhr", - "units": "s-1" - }, - "tnhusmp": { - "CMOR_varname": "tnhusmp", - "standard_name": "tendency_of_specific_humidity_due_to_model_physics", - "long_name": "Tendency of Specific Humidity due to Model Physics", - "mipTable": "CFsubhr", - "units": "s-1" - }, - "evu": { - "CMOR_varname": "evu", - "standard_name": "atmosphere_momentum_diffusivity", - "long_name": "Eddy Viscosity Coefficient for Momentum Variables", - "mipTable": "CFsubhr", - "units": "m2 s-1" - }, - "edt": { - "CMOR_varname": "edt", - "standard_name": "atmosphere_heat_diffusivity", - "long_name": "Eddy Diffusivity Coefficient for Temperature Variable", - "mipTable": "CFsubhr", - "units": "m2 s-1" - }, - "pfull": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Levels", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "phalf": { - "CMOR_varname": "phalf", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Half-Levels", - "mipTable": "CFsubhr", - "units": "Pa" - }, - "longitude": { - "CMOR_varname": "longitude", - "standard_name": "longitude", - "long_name": "Longitude", - "mipTable": "CFsubhr", - "units": "degrees_east" - }, - "latitude": { - "CMOR_varname": "latitude", - "standard_name": "latitude", - "long_name": "Latitude", - "mipTable": "CFsubhr", - "units": "degrees_north" - }, - "o2sat": { - "CMOR_varname": "o2sat", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", - "long_name": "Dissolved Oxygen Concentration at Saturation", - "mipTable": "Omon", - "units": "mol m-3" - }, - "msftyrho": { - "CMOR_varname": "msftyrho", - "standard_name": "ocean_y_overturning_mass_streamfunction", - "long_name": "Ocean Y Overturning Mass Streamfunction", - "mipTable": "Odec", - "units": "kg s-1" - }, - "hfds": { - "CMOR_varname": "hfds", - "standard_name": "surface_downward_heat_flux_in_sea_water", - "long_name": "Downward Heat Flux at Sea Water Surface", - "mipTable": "Odec", - "units": "W m-2" - }, - "tauuo": { - "CMOR_varname": "tauuo", - "standard_name": "surface_downward_x_stress", - "long_name": "Surface Downward X Stress", - "mipTable": "Odec", - "units": "N m-2" - }, - "tauvo": { - "CMOR_varname": "tauvo", - "standard_name": "surface_downward_y_stress", - "long_name": "Surface Downward Y Stress", - "mipTable": "Odec", - "units": "N m-2" - }, - "hflso": { - "CMOR_varname": "hflso", - "standard_name": "surface_downward_latent_heat_flux", - "long_name": "Surface Downward Latent Heat Flux", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfsso": { - "CMOR_varname": "hfsso", - "standard_name": "surface_downward_sensible_heat_flux", - "long_name": "Surface Downward Sensible Heat Flux", - "mipTable": "Omon", - "units": "W m-2" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "Efx", - "units": "Pa" - }, - "clcalipsoice": { - "CMOR_varname": "clcalipsoice", - "standard_name": "ice_cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO ice cloud Fraction", - "mipTable": "Emon", - "units": "%" - }, - "clcalipso2": { - "CMOR_varname": "clcalipso2", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", - "mipTable": "E3hrPt", - "units": "%" - }, - "snd": { - "CMOR_varname": "snd", - "standard_name": "surface_snow_thickness", - "long_name": "Snow Depth", - "mipTable": "Eday", - "units": "m" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "Emon", - "units": "Pa s-1" - }, - "sftgrf": { - "CMOR_varname": "sftgrf", - "standard_name": "grounded_ice_sheet_area_fraction", - "long_name": "Grounded Ice Sheet Area Fraction", - "mipTable": "Efx", - "units": "%" - }, - "sftflf": { - "CMOR_varname": "sftflf", - "standard_name": "floating_ice_shelf_area_fraction", - "long_name": "Floating Ice Shelf Area Fraction", - "mipTable": "Efx", - "units": "%" - }, - "siu": { - "CMOR_varname": "siu", - "standard_name": "sea_ice_x_velocity", - "long_name": "X-component of sea ice velocity", - "mipTable": "SIday", - "units": "m s-1" - }, - "siv": { - "CMOR_varname": "siv", - "standard_name": "sea_ice_y_velocity", - "long_name": "Y-component of sea ice velocity", - "mipTable": "SIday", - "units": "m s-1" - }, - "sf6": { - "CMOR_varname": "sf6", - "standard_name": "mole_concentration_of_sulfur_hexafluoride_in_sea_water", - "long_name": "Mole Concentration of SF6 in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "cfc11": { - "CMOR_varname": "cfc11", - "standard_name": "mole_concentration_of_cfc11_in_sea_water", - "long_name": "Mole Concentration of CFC-11 in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "cfc12": { - "CMOR_varname": "cfc12", - "standard_name": "mole_concentration_of_cfc12_in_sea_water", - "long_name": "Mole Concentration of CFC-12 in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "cfc11": { - "CMOR_varname": "cfc11", - "standard_name": "mole_concentration_of_cfc11_in_sea_water", - "long_name": "Mole Concentration of CFC-11 in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "cfc12": { - "CMOR_varname": "cfc12", - "standard_name": "mole_concentration_of_cfc12_in_sea_water", - "long_name": "Mole Concentration of CFC-12 in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "sf6": { - "CMOR_varname": "sf6", - "standard_name": "mole_concentration_of_sulfur_hexafluoride_in_sea_water", - "long_name": "Mole Concentration of SF6 in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "fgcfc11": { - "CMOR_varname": "fgcfc11", - "standard_name": "surface_downward_mole_flux_of_cfc11", - "long_name": "Surface Downward CFC11 flux", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fgcfc12": { - "CMOR_varname": "fgcfc12", - "standard_name": "surface_downward_mole_flux_of_cfc12", - "long_name": "Surface Downward CFC12 flux", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fgsf6": { - "CMOR_varname": "fgsf6", - "standard_name": "surface_downward_mole_flux_of_sulfur_hexafluoride", - "long_name": "Surface Downward SF6 flux", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "dissic": { - "CMOR_varname": "dissic", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", - "long_name": "Dissolved Inorganic Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "dissicnat": { - "CMOR_varname": "dissicnat", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", - "long_name": "Natural Dissolved Inorganic Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "dissicabio": { - "CMOR_varname": "dissicabio", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", - "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "dissi14cabio": { - "CMOR_varname": "dissi14cabio", - "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", - "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "dissoc": { - "CMOR_varname": "dissoc", - "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", - "long_name": "Dissolved Organic Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phyc": { - "CMOR_varname": "phyc", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Phytoplankton Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "zooc": { - "CMOR_varname": "zooc", - "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Zooplankton Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "bacc": { - "CMOR_varname": "bacc", - "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", - "long_name": "Bacterial Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "detoc": { - "CMOR_varname": "detoc", - "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", - "long_name": "Detrital Organic Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "calc": { - "CMOR_varname": "calc", - "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Calcite Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "arag": { - "CMOR_varname": "arag", - "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Aragonite Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phydiat": { - "CMOR_varname": "phydiat", - "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diatoms expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phydiaz": { - "CMOR_varname": "phydiaz", - "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diazotrophs expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phycalc": { - "CMOR_varname": "phycalc", - "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phypico": { - "CMOR_varname": "phypico", - "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phymisc": { - "CMOR_varname": "phymisc", - "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "talk": { - "CMOR_varname": "talk", - "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Total Alkalinity", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "talknat": { - "CMOR_varname": "talknat", - "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", - "long_name": "Natural Total Alkalinity", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "ph": { - "CMOR_varname": "ph", - "standard_name": "sea_water_ph_reported_on_total_scale", - "long_name": "pH", - "mipTable": "Oyr", - "units": "1" - }, - "o2": { - "CMOR_varname": "o2", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", - "long_name": "Dissolved Oxygen Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "o2sat": { - "CMOR_varname": "o2sat", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", - "long_name": "Dissolved Oxygen Concentration at Saturation", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "no3": { - "CMOR_varname": "no3", - "standard_name": "mole_concentration_of_nitrate_in_sea_water", - "long_name": "Dissolved Nitrate Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "nh4": { - "CMOR_varname": "nh4", - "standard_name": "mole_concentration_of_ammonium_in_sea_water", - "long_name": "Dissolved Ammonium Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "po4": { - "CMOR_varname": "po4", - "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", - "long_name": "Total Dissolved Inorganic Phosphorus Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "dfe": { - "CMOR_varname": "dfe", - "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", - "long_name": "Dissolved Iron Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "si": { - "CMOR_varname": "si", - "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", - "long_name": "Total Dissolved Inorganic Silicon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "chl": { - "CMOR_varname": "chl", - "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Oyr", - "units": "kg m-3" - }, - "chldiat": { - "CMOR_varname": "chldiat", - "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Diatoms expressed as Chlorophyll in sea water", - "mipTable": "Oyr", - "units": "kg m-3" - }, - "chldiaz": { - "CMOR_varname": "chldiaz", - "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", - "mipTable": "Oyr", - "units": "kg m-3" - }, - "chlcalc": { - "CMOR_varname": "chlcalc", - "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Oyr", - "units": "kg m-3" - }, - "chlpico": { - "CMOR_varname": "chlpico", - "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Oyr", - "units": "kg m-3" - }, - "chlmisc": { - "CMOR_varname": "chlmisc", - "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Oyr", - "units": "kg m-3" - }, - "pon": { - "CMOR_varname": "pon", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "pop": { - "CMOR_varname": "pop", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "bfe": { - "CMOR_varname": "bfe", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "bsi": { - "CMOR_varname": "bsi", - "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phyn": { - "CMOR_varname": "phyn", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Nitrogen in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phyp": { - "CMOR_varname": "phyp", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phyfe": { - "CMOR_varname": "phyfe", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Iron in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "physi": { - "CMOR_varname": "physi", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "dmso": { - "CMOR_varname": "dmso", - "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", - "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "co3": { - "CMOR_varname": "co3", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", - "long_name": "Carbonate Ion Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "co3satcalc": { - "CMOR_varname": "co3satcalc", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", - "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "co3satarag": { - "CMOR_varname": "co3satarag", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", - "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "pp": { - "CMOR_varname": "pp", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", - "long_name": "Primary Carbon Production by Total Phytoplankton", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "pnitrate": { - "CMOR_varname": "pnitrate", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_nitrate_utilization", - "long_name": "Primary Carbon Production by Phytoplankton due to Nitrate Uptake Alone", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "pbfe": { - "CMOR_varname": "pbfe", - "standard_name": "tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production", - "long_name": "Biogenic Iron Production", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "pbsi": { - "CMOR_varname": "pbsi", - "standard_name": "tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production", - "long_name": "Biogenic Silicon Production", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "pcalc": { - "CMOR_varname": "pcalc", - "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_biological_production", - "long_name": "Calcite Production", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "parag": { - "CMOR_varname": "parag", - "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_biological_production", - "long_name": "Aragonite Production", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "expc": { - "CMOR_varname": "expc", - "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Particulate Organic Carbon Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "expn": { - "CMOR_varname": "expn", - "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", - "long_name": "Sinking Particulate Organic Nitrogen Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "expp": { - "CMOR_varname": "expp", - "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", - "long_name": "Sinking Particulate Organic Phosphorus Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "expfe": { - "CMOR_varname": "expfe", - "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", - "long_name": "Sinking Particulate Iron Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "expsi": { - "CMOR_varname": "expsi", - "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", - "long_name": "Sinking Particulate Silicon Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "expcalc": { - "CMOR_varname": "expcalc", - "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Calcite Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "exparag": { - "CMOR_varname": "exparag", - "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Aragonite Flux", - "mipTable": "Oyr", - "units": "mol m-2 s-1" - }, - "remoc": { - "CMOR_varname": "remoc", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_remineralization", - "long_name": "Remineralization of Organic Carbon", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "dcalc": { - "CMOR_varname": "dcalc", - "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_dissolution", - "long_name": "Calcite Dissolution", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "darag": { - "CMOR_varname": "darag", - "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_dissolution", - "long_name": "Aragonite Dissolution", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "ppdiat": { - "CMOR_varname": "ppdiat", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", - "long_name": "Net Primary Organic Carbon Production by Diatoms", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "ppdiaz": { - "CMOR_varname": "ppdiaz", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", - "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "ppcalc": { - "CMOR_varname": "ppcalc", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "pppico": { - "CMOR_varname": "pppico", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "ppmisc": { - "CMOR_varname": "ppmisc", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", - "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "bddtdic": { - "CMOR_varname": "bddtdic", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "bddtdin": { - "CMOR_varname": "bddtdin", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_nitrogen_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Nitrogen Nutrient due to Biological Activity", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "bddtdip": { - "CMOR_varname": "bddtdip", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Phosphorus due to Biological Activity", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "bddtdife": { - "CMOR_varname": "bddtdife", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_iron_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "bddtdisi": { - "CMOR_varname": "bddtdisi", - "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicon_in_sea_water_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "bddtalk": { - "CMOR_varname": "bddtalk", - "standard_name": "tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", - "long_name": "Rate of Change of Alkalinity due to Biological Activity", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "fescav": { - "CMOR_varname": "fescav", - "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_scavenging_by_inorganic_particles", - "long_name": "Nonbiogenic Iron Scavenging", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "fediss": { - "CMOR_varname": "fediss", - "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_dissolution_from_inorganic_particles", - "long_name": "Particle Source of Dissolved Iron", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "graz": { - "CMOR_varname": "graz", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", - "long_name": "Total Grazing of Phytoplankton by Zooplankton", - "mipTable": "Oyr", - "units": "mol m-3 s-1" - }, - "dissic": { - "CMOR_varname": "dissic", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", - "long_name": "Dissolved Inorganic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissicnat": { - "CMOR_varname": "dissicnat", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", - "long_name": "Natural Dissolved Inorganic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissicabio": { - "CMOR_varname": "dissicabio", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", - "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissi14cabio": { - "CMOR_varname": "dissi14cabio", - "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", - "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissoc": { - "CMOR_varname": "dissoc", - "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", - "long_name": "Dissolved Organic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phyc": { - "CMOR_varname": "phyc", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Phytoplankton Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zooc": { - "CMOR_varname": "zooc", - "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Zooplankton Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "bacc": { - "CMOR_varname": "bacc", - "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", - "long_name": "Bacterial Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "detoc": { - "CMOR_varname": "detoc", - "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", - "long_name": "Detrital Organic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "calc": { - "CMOR_varname": "calc", - "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Calcite Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "arag": { - "CMOR_varname": "arag", - "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Aragonite Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phydiat": { - "CMOR_varname": "phydiat", - "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diatoms expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phydiaz": { - "CMOR_varname": "phydiaz", - "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Diazotrophs expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phycalc": { - "CMOR_varname": "phycalc", - "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phypico": { - "CMOR_varname": "phypico", - "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phymisc": { - "CMOR_varname": "phymisc", - "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "talk": { - "CMOR_varname": "talk", - "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Total Alkalinity", - "mipTable": "Omon", - "units": "mol m-3" - }, - "talknat": { - "CMOR_varname": "talknat", - "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", - "long_name": "Natural Total Alkalinity", - "mipTable": "Omon", - "units": "mol m-3" - }, - "ph": { - "CMOR_varname": "ph", - "standard_name": "sea_water_ph_reported_on_total_scale", - "long_name": "pH", - "mipTable": "Omon", - "units": "1" - }, - "o2": { - "CMOR_varname": "o2", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", - "long_name": "Dissolved Oxygen Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "no3": { - "CMOR_varname": "no3", - "standard_name": "mole_concentration_of_nitrate_in_sea_water", - "long_name": "Dissolved Nitrate Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "nh4": { - "CMOR_varname": "nh4", - "standard_name": "mole_concentration_of_ammonium_in_sea_water", - "long_name": "Dissolved Ammonium Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "po4": { - "CMOR_varname": "po4", - "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", - "long_name": "Total Dissolved Inorganic Phosphorus Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dfe": { - "CMOR_varname": "dfe", - "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", - "long_name": "Dissolved Iron Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "si": { - "CMOR_varname": "si", - "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", - "long_name": "Total Dissolved Inorganic Silicon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "chl": { - "CMOR_varname": "chl", - "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chldiat": { - "CMOR_varname": "chldiat", - "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Diatoms expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chldiaz": { - "CMOR_varname": "chldiaz", - "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chlcalc": { - "CMOR_varname": "chlcalc", - "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chlpico": { - "CMOR_varname": "chlpico", - "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chlmisc": { - "CMOR_varname": "chlmisc", - "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "pon": { - "CMOR_varname": "pon", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "pop": { - "CMOR_varname": "pop", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "bfe": { - "CMOR_varname": "bfe", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "bsi": { - "CMOR_varname": "bsi", - "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", - "long_name": "Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phyn": { - "CMOR_varname": "phyn", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Nitrogen in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phyp": { - "CMOR_varname": "phyp", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phyfe": { - "CMOR_varname": "phyfe", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Iron in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "physi": { - "CMOR_varname": "physi", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", - "long_name": "Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3": { - "CMOR_varname": "co3", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", - "long_name": "Carbonate Ion Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3satcalc": { - "CMOR_varname": "co3satcalc", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", - "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3satarag": { - "CMOR_varname": "co3satarag", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", - "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "ppos": { - "CMOR_varname": "ppos", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", - "long_name": "Primary Carbon Production by Total Phytoplankton", - "mipTable": "Omon", - "units": "mol m-3 s-1" - }, - "graz": { - "CMOR_varname": "graz", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", - "long_name": "Total Grazing of Phytoplankton by Zooplankton", - "mipTable": "Omon", - "units": "mol m-3 s-1" - }, - "expc": { - "CMOR_varname": "expc", - "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Particulate Organic Carbon Flux", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "limndiat": { - "CMOR_varname": "limndiat", - "standard_name": "nitrogen_growth_limitation_of_diatoms", - "long_name": "Nitrogen Limitation of Diatoms", - "mipTable": "Omon", - "units": "1" - }, - "limndiaz": { - "CMOR_varname": "limndiaz", - "standard_name": "nitrogen_growth_limitation_of_diazotrophs", - "long_name": "Nitrogen Limitation of Diazotrophs", - "mipTable": "Omon", - "units": "1" - }, - "limncalc": { - "CMOR_varname": "limncalc", - "standard_name": "nitrogen_growth_limitation_of_calcareous_phytoplankton", - "long_name": "Nitrogen Limitation of Calcareous Phytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limnpico": { - "CMOR_varname": "limnpico", - "standard_name": "nitrogen_growth_limitation_of_picophytoplankton", - "long_name": "Nitrogen Limitation of Picophytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limnmisc": { - "CMOR_varname": "limnmisc", - "standard_name": "nitrogen_growth_limitation_of_miscellaneous_phytoplankton", - "long_name": "Nitrogen Limitation of Other Phytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limirrdiat": { - "CMOR_varname": "limirrdiat", - "standard_name": "growth_limitation_of_diatoms_due_to_solar_irradiance", - "long_name": "Irradiance Limitation of Diatoms", - "mipTable": "Omon", - "units": "1" - }, - "limirrdiaz": { - "CMOR_varname": "limirrdiaz", - "standard_name": "growth_limitation_of_diazotrophs_due_to_solar_irradiance", - "long_name": "Irradiance Limitation of Diazotrophs", - "mipTable": "Omon", - "units": "1" - }, - "limirrcalc": { - "CMOR_varname": "limirrcalc", - "standard_name": "growth_limitation_of_calcareous_phytoplankton_due_to_solar_irradiance", - "long_name": "Irradiance Limitation of Calcareous Phytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limirrpico": { - "CMOR_varname": "limirrpico", - "standard_name": "growth_limitation_of_picophytoplankton_due_to_solar_irradiance", - "long_name": "Irradiance Limitation of Picophytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limirrmisc": { - "CMOR_varname": "limirrmisc", - "standard_name": "growth_limitation_of_miscellaneous_phytoplankton_due_to_solar_irradiance", - "long_name": "Irradiance Limitation of Other Phytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limfediat": { - "CMOR_varname": "limfediat", - "standard_name": "iron_growth_limitation_of_diatoms", - "long_name": "Iron Limitation of Diatoms", - "mipTable": "Omon", - "units": "1" - }, - "limfediaz": { - "CMOR_varname": "limfediaz", - "standard_name": "iron_growth_limitation_of_diazotrophs", - "long_name": "Iron Limitation of Diazotrophs", - "mipTable": "Omon", - "units": "1" - }, - "limfecalc": { - "CMOR_varname": "limfecalc", - "standard_name": "iron_growth_limitation_of_calcareous_phytoplankton", - "long_name": "Iron Limitation of Calcareous Phytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limfepico": { - "CMOR_varname": "limfepico", - "standard_name": "iron_growth_limitation_of_picophytoplankton", - "long_name": "Iron Limitation of Picophytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "limfemisc": { - "CMOR_varname": "limfemisc", - "standard_name": "iron_growth_limitation_of_miscellaneous_phytoplankton", - "long_name": "Iron Limitation of Other Phytoplankton", - "mipTable": "Omon", - "units": "1" - }, - "intpp": { - "CMOR_varname": "intpp", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_phytoplankton", - "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intppdiat": { - "CMOR_varname": "intppdiat", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diatoms", - "long_name": "Net Primary Organic Carbon Production by Diatoms", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intppdiaz": { - "CMOR_varname": "intppdiaz", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diazotrophs", - "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intppcalc": { - "CMOR_varname": "intppcalc", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_calcareous_phytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpppico": { - "CMOR_varname": "intpppico", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_picophytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intppmisc": { - "CMOR_varname": "intppmisc", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_miscellaneous_phytoplankton", - "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpbn": { - "CMOR_varname": "intpbn", - "standard_name": "tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production", - "long_name": "Nitrogen Production", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpbp": { - "CMOR_varname": "intpbp", - "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", - "long_name": "Phosphorus Production", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpbfe": { - "CMOR_varname": "intpbfe", - "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", - "long_name": "Iron Production", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpbsi": { - "CMOR_varname": "intpbsi", - "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", - "long_name": "Silicon Production", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpcalcite": { - "CMOR_varname": "intpcalcite", - "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", - "long_name": "Calcite Production", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intparag": { - "CMOR_varname": "intparag", - "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", - "long_name": "Aragonite Production", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpoc": { - "CMOR_varname": "intpoc", - "standard_name": "ocean_mass_content_of_particulate_organic_matter_expressed_as_carbon", - "long_name": "Particulate Organic Carbon Content", - "mipTable": "Omon", - "units": "kg m-2" - }, - "spco2": { - "CMOR_varname": "spco2", - "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water", - "long_name": "Surface Aqueous Partial Pressure of CO2", - "mipTable": "Omon", - "units": "Pa" - }, - "dpco2": { - "CMOR_varname": "dpco2", - "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Delta PCO2", - "mipTable": "Omon", - "units": "Pa" - }, - "dpo2": { - "CMOR_varname": "dpo2", - "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Delta PO2", - "mipTable": "Omon", - "units": "Pa" - }, - "fgco2": { - "CMOR_varname": "fgco2", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", - "long_name": "Surface Downward Flux of Total CO2", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "fgco2nat": { - "CMOR_varname": "fgco2nat", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Natural CO2", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "fgco2abio": { - "CMOR_varname": "fgco2abio", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Abiotic CO2", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "fg14co2abio": { - "CMOR_varname": "fg14co2abio", - "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Abiotic 14CO2", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "fgo2": { - "CMOR_varname": "fgo2", - "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", - "long_name": "Surface Downward Flux of O2", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fgdms": { - "CMOR_varname": "fgdms", - "standard_name": "surface_upward_mole_flux_of_dimethyl_sulfide", - "long_name": "Surface Upward Flux of DMS", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "icfriver": { - "CMOR_varname": "icfriver", - "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution", - "long_name": "Flux of Inorganic Carbon Into Ocean Surface by Runoff", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fric": { - "CMOR_varname": "fric", - "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation", - "long_name": "Downward Inorganic Carbon Flux at Ocean Bottom", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "ocfriver": { - "CMOR_varname": "ocfriver", - "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution", - "long_name": "Flux of Organic Carbon Into Ocean Surface by Runoff", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "froc": { - "CMOR_varname": "froc", - "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation", - "long_name": "Downward Organic Carbon Flux at Ocean Bottom", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intpn2": { - "CMOR_varname": "intpn2", - "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", - "long_name": "Nitrogen Fixation Rate in Ocean", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fsn": { - "CMOR_varname": "fsn", - "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", - "long_name": "Surface Downward Net Flux of Nitrogen", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "frn": { - "CMOR_varname": "frn", - "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", - "long_name": "Nitrogen Loss to Sediments and through Denitrification", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fsfe": { - "CMOR_varname": "fsfe", - "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", - "long_name": "Surface Downward Net Flux of Iron", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "frfe": { - "CMOR_varname": "frfe", - "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_sedimentation", - "long_name": "Iron Loss to Sediments", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "o2min": { - "CMOR_varname": "o2min", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", - "long_name": "Oxygen Minimum Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zo2min": { - "CMOR_varname": "zo2min", - "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", - "long_name": "Depth of Oxygen Minimum Concentration", - "mipTable": "Omon", - "units": "m" - }, - "zsatcalc": { - "CMOR_varname": "zsatcalc", - "standard_name": "minimum_depth_of_calcite_undersaturation_in_sea_water", - "long_name": "Calcite Saturation Depth", - "mipTable": "Omon", - "units": "m" - }, - "zsatarag": { - "CMOR_varname": "zsatarag", - "standard_name": "minimum_depth_of_aragonite_undersaturation_in_sea_water", - "long_name": "Aragonite Saturation Depth", - "mipTable": "Omon", - "units": "m" - }, - "fddtdic": { - "CMOR_varname": "fddtdic", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", - "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fddtdin": { - "CMOR_varname": "fddtdin", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", - "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fddtdip": { - "CMOR_varname": "fddtdip", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", - "long_name": "Rate of Change of Net Dissolved Inorganic Phosphorus", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fddtdife": { - "CMOR_varname": "fddtdife", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", - "long_name": "Rate of Change of Net Dissolved Inorganic Iron", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fddtdisi": { - "CMOR_varname": "fddtdisi", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", - "long_name": "Rate of Change of Net Dissolved Inorganic Silicon", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fddtalk": { - "CMOR_varname": "fddtalk", - "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Rate of Change of Total Alkalinity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fbddtdic": { - "CMOR_varname": "fbddtdic", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fbddtdin": { - "CMOR_varname": "fbddtdin", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fbddtdip": { - "CMOR_varname": "fbddtdip", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Phosphorus due to Biological Activity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fbddtdife": { - "CMOR_varname": "fbddtdife", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fbddtdisi": { - "CMOR_varname": "fbddtdisi", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", - "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "fbddtalk": { - "CMOR_varname": "fbddtalk", - "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", - "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "chlos": { - "CMOR_varname": "chlos", - "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Oday", - "units": "kg m-3" - }, - "phycos": { - "CMOR_varname": "phycos", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Phytoplankton Carbon Concentration", - "mipTable": "Oday", - "units": "mol m-3" - }, - "deptho": { - "CMOR_varname": "deptho", - "standard_name": "sea_floor_depth_below_geoid", - "long_name": "Sea Floor Depth Below Geoid", - "mipTable": "Ofx", - "units": "m" - }, - "masscello": { - "CMOR_varname": "masscello", - "standard_name": "sea_water_mass_per_unit_area", - "long_name": "Ocean Grid-Cell Mass per area", - "mipTable": "Ofx", - "units": "kg m-2" - }, - "areacello": { - "CMOR_varname": "areacello", - "standard_name": "cell_area", - "long_name": "Grid-Cell Area", - "mipTable": "Ofx", - "units": "m2" - }, - "sftof": { - "CMOR_varname": "sftof", - "standard_name": "sea_area_fraction", - "long_name": "Sea Area Fraction", - "mipTable": "Ofx", - "units": "%" - }, - "basin": { - "CMOR_varname": "basin", - "standard_name": "region", - "long_name": "Region Selection Index", - "mipTable": "Ofx", - "units": "1" - }, - "hfgeou": { - "CMOR_varname": "hfgeou", - "standard_name": "upward_geothermal_heat_flux_at_sea_floor", - "long_name": "Upward Geothermal Heat Flux at Sea Floor", - "mipTable": "Ofx", - "units": "W m-2" - }, - "opottemptend": { - "CMOR_varname": "opottemptend", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content", - "long_name": "tendency of sea water potential temperature expressed as heat content", - "mipTable": "Oyr", - "units": "W m-2" - }, - "opottemppadvect": { - "CMOR_varname": "opottemppadvect", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized eddy advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "opottemppmdiff": { - "CMOR_varname": "opottemppmdiff", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized mesoscale diffusion", - "mipTable": "Oyr", - "units": "W m-2" - }, - "opottemppsmadvect": { - "CMOR_varname": "opottemppsmadvect", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized submesoscale advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "opottempdiff": { - "CMOR_varname": "opottempdiff", - "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", - "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized dianeutral mixing", - "mipTable": "Oyr", - "units": "W m-2" - }, - "ocontemptend": { - "CMOR_varname": "ocontemptend", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content", - "long_name": "tendency of sea water conservative temperature expressed as heat content", - "mipTable": "Oyr", - "units": "W m-2" - }, - "ocontemppadvect": { - "CMOR_varname": "ocontemppadvect", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized eddy advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "ocontemppmdiff": { - "CMOR_varname": "ocontemppmdiff", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized mesoscale diffusion", - "mipTable": "Oyr", - "units": "W m-2" - }, - "ocontemppsmadvect": { - "CMOR_varname": "ocontemppsmadvect", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized submesoscale advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "ocontempdiff": { - "CMOR_varname": "ocontempdiff", - "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", - "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized dianeutral mixing", - "mipTable": "Oyr", - "units": "W m-2" - }, - "osalttend": { - "CMOR_varname": "osalttend", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content", - "long_name": "tendency of sea water salinity expressed as salt content", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "osaltpadvect": { - "CMOR_varname": "osaltpadvect", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized eddy advection", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "osaltpmdiff": { - "CMOR_varname": "osaltpmdiff", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized mesoscale diffusion", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "osaltpsmadvect": { - "CMOR_varname": "osaltpsmadvect", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized submesoscale advection", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "osaltdiff": { - "CMOR_varname": "osaltdiff", - "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_dianeutral_mixing", - "long_name": "tendency of sea water salinity expressed as salt content due to parameterized dianeutral mixing", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "difvho": { - "CMOR_varname": "difvho", - "standard_name": "ocean_vertical_heat_diffusivity", - "long_name": "ocean vertical heat diffusivity", - "mipTable": "Oyr", - "units": "m2 s-1" - }, - "difvso": { - "CMOR_varname": "difvso", - "standard_name": "ocean_vertical_salt_diffusivity", - "long_name": "ocean vertical salt diffusivity", - "mipTable": "Oyr", - "units": "m2 s-1" - }, - "tnpeo": { - "CMOR_varname": "tnpeo", - "standard_name": "tendency_of_ocean_potential_energy_content", - "long_name": "tendency of ocean potential energy content", - "mipTable": "Oyr", - "units": "W m-2" - }, - "diftrblo": { - "CMOR_varname": "diftrblo", - "standard_name": "ocean_tracer_laplacian_diffusivity_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "ocean tracer diffusivity due to parameterized mesoscale advection", - "mipTable": "Oyr", - "units": "m2 s-1" - }, - "diftrelo": { - "CMOR_varname": "diftrelo", - "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", - "long_name": "ocean tracer epineutral laplacian diffusivity", - "mipTable": "Oyr", - "units": "m2 s-1" - }, - "tnkebto": { - "CMOR_varname": "tnkebto", - "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_parameterized_eddy_advection", - "long_name": "tendency of ocean eddy kinetic energy content due to parameterized eddy advection", - "mipTable": "Oyr", - "units": "W m-2" - }, - "difmxylo": { - "CMOR_varname": "difmxylo", - "standard_name": "ocean_momentum_xy_laplacian_diffusivity", - "long_name": "ocean momentum xy laplacian diffusivity", - "mipTable": "Oyr", - "units": "m2 s-1" - }, - "difmxybo": { - "CMOR_varname": "difmxybo", - "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", - "long_name": "ocean momentum xy biharmonic diffusivity", - "mipTable": "Oyr", - "units": "m4 s-1" - }, - "dispkexyfo": { - "CMOR_varname": "dispkexyfo", - "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", - "long_name": "ocean kinetic energy dissipation per unit area due to xy friction", - "mipTable": "Oyr", - "units": "W m-2" - }, - "masso": { - "CMOR_varname": "masso", - "standard_name": "sea_water_mass", - "long_name": "Sea Water Mass", - "mipTable": "Omon", - "units": "kg" - }, - "pbo": { - "CMOR_varname": "pbo", - "standard_name": "sea_water_pressure_at_sea_floor", - "long_name": "Sea Water Pressure at Sea floor", - "mipTable": "Omon", - "units": "Pa" - }, - "pso": { - "CMOR_varname": "pso", - "standard_name": "sea_water_pressure_at_sea_water_surface", - "long_name": "Sea Water Pressure at Sea Water Surface", - "mipTable": "Omon", - "units": "Pa" - }, - "volo": { - "CMOR_varname": "volo", - "standard_name": "sea_water_volume", - "long_name": "Sea Water Volume", - "mipTable": "Omon", - "units": "m3" - }, - "zos": { - "CMOR_varname": "zos", - "standard_name": "sea_surface_height_above_geoid", - "long_name": "Sea Surface Height Above Geoid", - "mipTable": "Omon", - "units": "m" - }, - "zossq": { - "CMOR_varname": "zossq", - "standard_name": "square_of_sea_surface_height_above_geoid", - "long_name": "Square of Sea Surface Height Above Geoid", - "mipTable": "Omon", - "units": "m2" - }, - "zostoga": { - "CMOR_varname": "zostoga", - "standard_name": "global_average_thermosteric_sea_level_change", - "long_name": "Global Average Thermosteric Sea Level Change", - "mipTable": "Omon", - "units": "m" - }, - "masscello": { - "CMOR_varname": "masscello", - "standard_name": "sea_water_mass_per_unit_area", - "long_name": "Sea Water Mass Per Unit Area", - "mipTable": "Omon", - "units": "kg m-2" - }, - "thkcello": { - "CMOR_varname": "thkcello", - "standard_name": "cell_thickness", - "long_name": "Ocean Model Cell Thickness", - "mipTable": "Omon", - "units": "m" - }, - "thetao": { - "CMOR_varname": "thetao", - "standard_name": "sea_water_potential_temperature", - "long_name": "Sea Water Potential Temperature", - "mipTable": "Omon", - "units": "degC" - }, - "thetaoga": { - "CMOR_varname": "thetaoga", - "standard_name": "sea_water_potential_temperature", - "long_name": "Global Average Sea Water Potential Temperature", - "mipTable": "Omon", - "units": "degC" - }, - "bigthetao": { - "CMOR_varname": "bigthetao", - "standard_name": "sea_water_conservative_temperature", - "long_name": "Sea Water Convervative Temperature", - "mipTable": "Omon", - "units": "degC" - }, - "bigthetaoga": { - "CMOR_varname": "bigthetaoga", - "standard_name": "sea_water_conservative_temperature", - "long_name": "Global Average Sea Water Conservative Temperature", - "mipTable": "Omon", - "units": "degC" - }, - "tos": { - "CMOR_varname": "tos", - "standard_name": "sea_surface_temperature", - "long_name": "Sea Surface Temperature", - "mipTable": "Omon", - "units": "degC" - }, - "tob": { - "CMOR_varname": "tob", - "standard_name": "sea_water_potential_temperature_at_sea_floor", - "long_name": "Sea Water Potential Temperature at Sea Floor", - "mipTable": "Omon", - "units": "degC" - }, - "tosga": { - "CMOR_varname": "tosga", - "standard_name": "sea_surface_temperature", - "long_name": "Global Average Sea Surface Temperature", - "mipTable": "Omon", - "units": "degC" - }, - "tossq": { - "CMOR_varname": "tossq", - "standard_name": "square_of_sea_surface_temperature", - "long_name": "Square of Sea Surface Temperature", - "mipTable": "Omon", - "units": "degC2" - }, - "so": { - "CMOR_varname": "so", - "standard_name": "sea_water_salinity", - "long_name": "Sea Water Salinity", - "mipTable": "Omon", - "units": "0.001" - }, - "soga": { - "CMOR_varname": "soga", - "standard_name": "sea_water_salinity", - "long_name": "Global Mean Sea Water Salinity", - "mipTable": "Omon", - "units": "0.001" - }, - "sos": { - "CMOR_varname": "sos", - "standard_name": "sea_surface_salinity", - "long_name": "Sea Surface Salinity", - "mipTable": "Omon", - "units": "0.001" - }, - "sob": { - "CMOR_varname": "sob", - "standard_name": "sea_water_salinity_at_sea_floor", - "long_name": "sea water salinity at sea floor", - "mipTable": "Omon", - "units": "0.001" - }, - "agessc": { - "CMOR_varname": "agessc", - "standard_name": "sea_water_age_since_surface_contact", - "long_name": "Sea Water Age Since Surface Contact", - "mipTable": "Omon", - "units": "yr" - }, - "msftbarot": { - "CMOR_varname": "msftbarot", - "standard_name": "ocean_barotropic_mass_streamfunction", - "long_name": "Ocean Barotropic Mass Streamfunction", - "mipTable": "Omon", - "units": "kg s-1" - }, - "mlotst": { - "CMOR_varname": "mlotst", - "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", - "mipTable": "Omon", - "units": "m" - }, - "mlotstsq": { - "CMOR_varname": "mlotstsq", - "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", - "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", - "mipTable": "Omon", - "units": "m2" - }, - "uo": { - "CMOR_varname": "uo", - "standard_name": "sea_water_x_velocity", - "long_name": "Sea Water X Velocity", - "mipTable": "Omon", - "units": "m s-1" - }, - "vo": { - "CMOR_varname": "vo", - "standard_name": "sea_water_y_velocity", - "long_name": "Sea Water Y Velocity", - "mipTable": "Omon", - "units": "m s-1" - }, - "wmo": { - "CMOR_varname": "wmo", - "standard_name": "upward_ocean_mass_transport", - "long_name": "Upward Ocean Mass Transport", - "mipTable": "Omon", - "units": "kg s-1" - }, - "umo": { - "CMOR_varname": "umo", - "standard_name": "ocean_mass_x_transport", - "long_name": "Ocean Mass X Transport", - "mipTable": "Omon", - "units": "kg s-1" - }, - "vmo": { - "CMOR_varname": "vmo", - "standard_name": "ocean_mass_y_transport", - "long_name": "Ocean Mass Y Transport", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftmz": { - "CMOR_varname": "msftmz", - "standard_name": "ocean_meridional_overturning_mass_streamfunction", - "long_name": "Ocean Meridional Overturning Mass Streamfunction", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftmrho": { - "CMOR_varname": "msftmrho", - "standard_name": "ocean_meridional_overturning_mass_streamfunction", - "long_name": "Ocean Meridional Overturning Mass Streamfunction", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftyz": { - "CMOR_varname": "msftyz", - "standard_name": "ocean_y_overturning_mass_streamfunction", - "long_name": "Ocean Y Overturning Mass Streamfunction", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftyrho": { - "CMOR_varname": "msftyrho", - "standard_name": "ocean_y_overturning_mass_streamfunction", - "long_name": "Ocean Y Overturning Mass Streamfunction", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftmzmpa": { - "CMOR_varname": "msftmzmpa", - "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftmrhompa": { - "CMOR_varname": "msftmrhompa", - "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftyzmpa": { - "CMOR_varname": "msftyzmpa", - "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftyrhompa": { - "CMOR_varname": "msftyrhompa", - "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftmzsmpa": { - "CMOR_varname": "msftmzsmpa", - "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "ocean meridional overturning mass streamfunction due to parameterized submesoscale advection", - "mipTable": "Omon", - "units": "kg s-1" - }, - "msftyzsmpa": { - "CMOR_varname": "msftyzsmpa", - "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "ocean Y overturning mass streamfunction due to parameterized submesoscale advection", - "mipTable": "Omon", - "units": "kg s-1" - }, - "hfbasin": { - "CMOR_varname": "hfbasin", - "standard_name": "northward_ocean_heat_transport", - "long_name": "Northward Ocean Heat Transport", - "mipTable": "Omon", - "units": "W" - }, - "hfbasinpmadv": { - "CMOR_varname": "hfbasinpmadv", - "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "northward ocean heat transport due to parameterized mesoscale advection", - "mipTable": "Omon", - "units": "W" - }, - "hfbasinpmdiff": { - "CMOR_varname": "hfbasinpmdiff", - "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_eddy_diffusion", - "long_name": "northward ocean heat transport due to parameterized mesoscale diffusion", - "mipTable": "Omon", - "units": "W" - }, - "hfbasinpsmadv": { - "CMOR_varname": "hfbasinpsmadv", - "standard_name": "northward_ocean_heat_transport_due_to_parameterized_submesoscale_eddy_advection", - "long_name": "northward ocean heat transport due to parameterized submesoscale advection", - "mipTable": "Omon", - "units": "W" - }, - "hfbasinpadv": { - "CMOR_varname": "hfbasinpadv", - "standard_name": "northward_ocean_heat_transport_due_to_parameterized_eddy_advection", - "long_name": "northward ocean heat transport due to parameterized eddy advection", - "mipTable": "Omon", - "units": "W" - }, - "hfx": { - "CMOR_varname": "hfx", - "standard_name": "ocean_heat_x_transport", - "long_name": "Ocean Heat X Transport", - "mipTable": "Omon", - "units": "W" - }, - "hfy": { - "CMOR_varname": "hfy", - "standard_name": "ocean_heat_y_transport", - "long_name": "Ocean Heat Y Transport", - "mipTable": "Omon", - "units": "W" - }, - "htovgyre": { - "CMOR_varname": "htovgyre", - "standard_name": "northward_ocean_heat_transport_due_to_gyre", - "long_name": "Northward Ocean Heat Transport due to Gyre", - "mipTable": "Omon", - "units": "W" - }, - "htovovrt": { - "CMOR_varname": "htovovrt", - "standard_name": "northward_ocean_heat_transport_due_to_overturning", - "long_name": "Northward Ocean Heat Transport due to Overturning", - "mipTable": "Omon", - "units": "W" - }, - "sltovgyre": { - "CMOR_varname": "sltovgyre", - "standard_name": "northward_ocean_salt_transport_due_to_gyre", - "long_name": "Northward Ocean Salt Transport due to Gyre", - "mipTable": "Omon", - "units": "kg s-1" - }, - "sltovovrt": { - "CMOR_varname": "sltovovrt", - "standard_name": "northward_ocean_salt_transport_due_to_overturning", - "long_name": "Northward Ocean Salt Transport due to Overturning", - "mipTable": "Omon", - "units": "kg s-1" - }, - "mfo": { - "CMOR_varname": "mfo", - "standard_name": "sea_water_transport_across_line", - "long_name": "Sea Water Transport", - "mipTable": "Omon", - "units": "kg s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux where Ice Free Ocean over Sea", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "evs": { - "CMOR_varname": "evs", - "standard_name": "water_evapotranspiration_flux", - "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "friver": { - "CMOR_varname": "friver", - "standard_name": "water_flux_into_sea_water_from_rivers", - "long_name": "Water Flux into Sea Water From Rivers", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "ficeberg": { - "CMOR_varname": "ficeberg", - "standard_name": "water_flux_into_sea_water_from_icebergs", - "long_name": "Water Flux into Sea Water From Icebergs", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "ficeberg2d": { - "CMOR_varname": "ficeberg2d", - "standard_name": "water_flux_into_sea_water_from_icebergs", - "long_name": "Water Flux into Sea Water From Icebergs", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "fsitherm": { - "CMOR_varname": "fsitherm", - "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", - "long_name": "Water Flux into Sea Water due to Sea Ice Thermodynamics", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "wfo": { - "CMOR_varname": "wfo", - "standard_name": "water_flux_into_sea_water", - "long_name": "Water Flux into Sea Water", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "wfonocorr": { - "CMOR_varname": "wfonocorr", - "standard_name": "water_flux_into_sea_water_without_flux_correction", - "long_name": "Water Flux into Sea Water Without Flux Correction", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "wfcorr": { - "CMOR_varname": "wfcorr", - "standard_name": "water_flux_correction", - "long_name": "Water Flux Correction", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "vsfpr": { - "CMOR_varname": "vsfpr", - "standard_name": "virtual_salt_flux_into_sea_water_due_to_rainfall", - "long_name": "Virtual Salt Flux into Sea Water due to Rainfall", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "vsfevap": { - "CMOR_varname": "vsfevap", - "standard_name": "virtual_salt_flux_into_sea_water_due_to_evaporation", - "long_name": "Virtual Salt Flux into Sea Water due to Evaporation", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "vsfriver": { - "CMOR_varname": "vsfriver", - "standard_name": "virtual_salt_flux_into_sea_water_from_rivers", - "long_name": "Virtual Salt Flux into Sea Water From Rivers", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "vsfsit": { - "CMOR_varname": "vsfsit", - "standard_name": "virtual_salt_flux_into_sea_water_due_to_sea_ice_thermodynamics", - "long_name": "Virtual Salt Flux into Sea Water due to Sea Ice Thermodynamics", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "vsf": { - "CMOR_varname": "vsf", - "standard_name": "virtual_salt_flux_into_sea_water", - "long_name": "Virtual Salt Flux into Sea Water", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "vsfcorr": { - "CMOR_varname": "vsfcorr", - "standard_name": "virtual_salt_flux_correction", - "long_name": "Virtual Salt Flux Correction", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "sfdsi": { - "CMOR_varname": "sfdsi", - "standard_name": "downward_sea_ice_basal_salt_flux", - "long_name": "Downward Sea Ice Basal Salt Flux", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "sfriver": { - "CMOR_varname": "sfriver", - "standard_name": "salt_flux_into_sea_water_from_rivers", - "long_name": "Salt Flux into Sea Water from Rivers", - "mipTable": "Omon", - "units": "kg m-2 s-1" - }, - "hfgeou": { - "CMOR_varname": "hfgeou", - "standard_name": "upward_geothermal_heat_flux_at_sea_floor", - "long_name": "Upward Geothermal Heat Flux at Sea Floor", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfrainds": { - "CMOR_varname": "hfrainds", - "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", - "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfevapds": { - "CMOR_varname": "hfevapds", - "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", - "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfrunoffds": { - "CMOR_varname": "hfrunoffds", - "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", - "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfrunoffds2d": { - "CMOR_varname": "hfrunoffds2d", - "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", - "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfsnthermds": { - "CMOR_varname": "hfsnthermds", - "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfsnthermds2d": { - "CMOR_varname": "hfsnthermds2d", - "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfsifrazil": { - "CMOR_varname": "hfsifrazil", - "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", - "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfsifrazil2d": { - "CMOR_varname": "hfsifrazil2d", - "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", - "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfibthermds": { - "CMOR_varname": "hfibthermds", - "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfibthermds2d": { - "CMOR_varname": "hfibthermds2d", - "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", - "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", - "mipTable": "Omon", - "units": "W m-2" - }, - "rsntds": { - "CMOR_varname": "rsntds", - "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", - "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", - "mipTable": "Omon", - "units": "W m-2" - }, - "rsdo": { - "CMOR_varname": "rsdo", - "standard_name": "downwelling_shortwave_flux_in_sea_water", - "long_name": "Downwelling Shortwave Radiation in Sea Water", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfcorr": { - "CMOR_varname": "hfcorr", - "standard_name": "heat_flux_correction", - "long_name": "Heat Flux Correction", - "mipTable": "Omon", - "units": "W m-2" - }, - "hfds": { - "CMOR_varname": "hfds", - "standard_name": "surface_downward_heat_flux_in_sea_water", - "long_name": "Downward Heat Flux at Sea Water Surface", - "mipTable": "Omon", - "units": "W m-2" - }, - "tauuo": { - "CMOR_varname": "tauuo", - "standard_name": "surface_downward_x_stress", - "long_name": "Surface Downward X Stress", - "mipTable": "Omon", - "units": "N m-2" - }, - "tauvo": { - "CMOR_varname": "tauvo", - "standard_name": "surface_downward_y_stress", - "long_name": "Surface Downward Y Stress", - "mipTable": "Omon", - "units": "N m-2" - }, - "tauucorr": { - "CMOR_varname": "tauucorr", - "standard_name": "surface_downward_x_stress_correction", - "long_name": "Surface Downward X Stress Correction", - "mipTable": "Omon", - "units": "N m-2" - }, - "tauvcorr": { - "CMOR_varname": "tauvcorr", - "standard_name": "surface_downward_y_stress_correction", - "long_name": "Surface Downward Y Stress Correction", - "mipTable": "Omon", - "units": "N m-2" - }, - "tossq": { - "CMOR_varname": "tossq", - "standard_name": "square_of_sea_surface_temperature", - "long_name": "Square of Sea Surface Temperature", - "mipTable": "Oday", - "units": "degC2" - }, - "tos": { - "CMOR_varname": "tos", - "standard_name": "sea_surface_temperature", - "long_name": "Sea Surface Temperature", - "mipTable": "Oday", - "units": "degC" - }, - "sos": { - "CMOR_varname": "sos", - "standard_name": "sea_surface_salinity", - "long_name": "Sea Surface Salinity", - "mipTable": "Oday", - "units": "0.001" - }, - "agesno": { - "CMOR_varname": "agesno", - "standard_name": "age_of_surface_snow", - "long_name": "Snow Age", - "mipTable": "LImon", - "units": "day" - }, - "albisccp": { - "CMOR_varname": "albisccp", - "standard_name": "cloud_albedo", - "long_name": "ISCCP Mean Cloud Albedo", - "mipTable": "CFday", - "units": "1" - }, - "albisccp": { - "CMOR_varname": "albisccp", - "standard_name": "cloud_albedo", - "long_name": "ISCCP Mean Cloud Albedo", - "mipTable": "CFmon", - "units": "1" - }, - "areacella": { - "CMOR_varname": "areacella", - "standard_name": "cell_area", - "long_name": "Grid-Cell Area for Atmospheric Variables", - "mipTable": "fx", - "units": "m2" - }, - "baresoilFrac": { - "CMOR_varname": "baresoilFrac", - "standard_name": "area_fraction", - "long_name": "Bare Soil Percentage", - "mipTable": "Lmon", - "units": "%" - }, - "burntFractionAll": { - "CMOR_varname": "burntFractionAll", - "standard_name": "area_fraction", - "long_name": "Percentage of Entire Grid cell that is Covered by Burnt Vegetation (All Classes)", - "mipTable": "Lmon", - "units": "%" - }, - "c3PftFrac": { - "CMOR_varname": "c3PftFrac", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by C3 Plant Functional Type", - "mipTable": "Lmon", - "units": "%" - }, - "c4PftFrac": { - "CMOR_varname": "c4PftFrac", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by C4 Plant Functional Type", - "mipTable": "Lmon", - "units": "%" - }, - "cCwd": { - "CMOR_varname": "cCwd", - "standard_name": "wood_debris_mass_content_of_carbon", - "long_name": "Carbon Mass in Coarse Woody Debris", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cLeaf": { - "CMOR_varname": "cLeaf", - "standard_name": "leaf_mass_content_of_carbon", - "long_name": "Carbon Mass in Leaves", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cLitter": { - "CMOR_varname": "cLitter", - "standard_name": "litter_mass_content_of_carbon", - "long_name": "Carbon Mass in Litter Pool", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cLitterAbove": { - "CMOR_varname": "cLitterAbove", - "standard_name": "surface_litter_mass_content_of_carbon", - "long_name": "Carbon Mass in Above-Ground Litter", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cLitterBelow": { - "CMOR_varname": "cLitterBelow", - "standard_name": "subsurface_litter_mass_content_of_carbon", - "long_name": "Carbon Mass in Below-Ground Litter", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cProduct": { - "CMOR_varname": "cProduct", - "standard_name": "carbon_mass_content_of_forestry_and_agricultural_products", - "long_name": "Carbon Mass in Products of Land Use Change", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cRoot": { - "CMOR_varname": "cRoot", - "standard_name": "root_mass_content_of_carbon", - "long_name": "Carbon Mass in Roots", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cSoilFast": { - "CMOR_varname": "cSoilFast", - "standard_name": "fast_soil_pool_mass_content_of_carbon", - "long_name": "Carbon Mass in Fast Soil Pool", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cSoilMedium": { - "CMOR_varname": "cSoilMedium", - "standard_name": "medium_soil_pool_mass_content_of_carbon", - "long_name": "Carbon Mass in Medium Soil Pool", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cSoilSlow": { - "CMOR_varname": "cSoilSlow", - "standard_name": "slow_soil_pool_mass_content_of_carbon", - "long_name": "Carbon Mass in Slow Soil Pool", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "cVeg": { - "CMOR_varname": "cVeg", - "standard_name": "vegetation_carbon_content", - "long_name": "Carbon Mass in Vegetation", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "ccb": { - "CMOR_varname": "ccb", - "standard_name": "air_pressure_at_convective_cloud_base", - "long_name": "Air Pressure at Convective Cloud Base", - "mipTable": "Amon", - "units": "Pa" - }, - "ccb": { - "CMOR_varname": "ccb", - "standard_name": "air_pressure_at_convective_cloud_base", - "long_name": "Air Pressure at Convective Cloud Base", - "mipTable": "CFday", - "units": "Pa" - }, - "cct": { - "CMOR_varname": "cct", - "standard_name": "air_pressure_at_convective_cloud_top", - "long_name": "Air Pressure at Convective Cloud Top", - "mipTable": "Amon", - "units": "Pa" - }, - "cct": { - "CMOR_varname": "cct", - "standard_name": "air_pressure_at_convective_cloud_top", - "long_name": "Air Pressure at Convective Cloud Top", - "mipTable": "CFday", - "units": "Pa" - }, - "cfc113global": { - "CMOR_varname": "cfc113global", - "standard_name": "mole_fraction_of_cfc113_in_air", - "long_name": "Global Mean Mole Fraction of CFC113", - "mipTable": "Amon", - "units": "1e-12" - }, - "cfc11global": { - "CMOR_varname": "cfc11global", - "standard_name": "mole_fraction_of_cfc11_in_air", - "long_name": "Global Mean Mole Fraction of CFC11", - "mipTable": "Amon", - "units": "1e-12" - }, - "cfc12global": { - "CMOR_varname": "cfc12global", - "standard_name": "mole_fraction_of_cfc12_in_air", - "long_name": "Global Mean Mole Fraction of CFC12", - "mipTable": "Amon", - "units": "1e-12" - }, - "ch4": { - "CMOR_varname": "ch4", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "Mole Fraction of CH4", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "ch4global": { - "CMOR_varname": "ch4global", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "Global Mean Mole Fraction of CH4", - "mipTable": "Amon", - "units": "1e-09" - }, - "ci": { - "CMOR_varname": "ci", - "standard_name": "convection_time_fraction", - "long_name": "Fraction of Time Convection Occurs", - "mipTable": "Amon", - "units": "1" - }, - "cl": { - "CMOR_varname": "cl", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Cloud Area Fraction", - "mipTable": "Amon", - "units": "%" - }, - "cl": { - "CMOR_varname": "cl", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Cloud Area Fraction in Atmosphere Layer", - "mipTable": "CFday", - "units": "%" - }, - "clc": { - "CMOR_varname": "clc", - "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", - "long_name": "Convective Cloud Area Fraction", - "mipTable": "CF3hr", - "units": "%" - }, - "clc": { - "CMOR_varname": "clc", - "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", - "long_name": "Convective Cloud Area Fraction", - "mipTable": "CFmon", - "units": "%" - }, - "clcalipso": { - "CMOR_varname": "clcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Cloud Fraction", - "mipTable": "CFday", - "units": "%" - }, - "clcalipso": { - "CMOR_varname": "clcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Percentage Cloud Cover", - "mipTable": "CFmon", - "units": "%" - }, - "clhcalipso": { - "CMOR_varname": "clhcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO High Level Cloud Fraction", - "mipTable": "CFday", - "units": "%" - }, - "clhcalipso": { - "CMOR_varname": "clhcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Percentage High Level Cloud", - "mipTable": "CFmon", - "units": "%" - }, - "cli": { - "CMOR_varname": "cli", - "standard_name": "mass_fraction_of_cloud_ice_in_air", - "long_name": "Mass Fraction of Cloud Ice", - "mipTable": "CFday", - "units": "kg kg-1" - }, - "cli": { - "CMOR_varname": "cli", - "standard_name": "mass_fraction_of_cloud_ice_in_air", - "long_name": "Mass Fraction of Cloud Ice", - "mipTable": "Amon", - "units": "kg kg-1" - }, - "clic": { - "CMOR_varname": "clic", - "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", - "long_name": "Mass Fraction of Convective Cloud Ice", - "mipTable": "CF3hr", - "units": "1" - }, - "clic": { - "CMOR_varname": "clic", - "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", - "long_name": "Mass Fraction of Convective Cloud Ice", - "mipTable": "CFmon", - "units": "1" - }, - "clis": { - "CMOR_varname": "clis", - "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Ice", - "mipTable": "CFmon", - "units": "1" - }, - "clis": { - "CMOR_varname": "clis", - "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Ice", - "mipTable": "CF3hr", - "units": "1" - }, - "clivi": { - "CMOR_varname": "clivi", - "standard_name": "atmosphere_mass_content_of_cloud_ice", - "long_name": "Ice Water Path", - "mipTable": "Amon", - "units": "kg m-2" - }, - "clivi": { - "CMOR_varname": "clivi", - "standard_name": "atmosphere_mass_content_of_cloud_ice", - "long_name": "Ice Water Path", - "mipTable": "CFday", - "units": "kg m-2" - }, - "cllcalipso": { - "CMOR_varname": "cllcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Low Level Cloud Fraction", - "mipTable": "CFday", - "units": "%" - }, - "cllcalipso": { - "CMOR_varname": "cllcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Percentage Low Level Cloud", - "mipTable": "CFmon", - "units": "%" - }, - "clmcalipso": { - "CMOR_varname": "clmcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Mid Level Cloud Fraction", - "mipTable": "CFday", - "units": "%" - }, - "clmcalipso": { - "CMOR_varname": "clmcalipso", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "CALIPSO Percentage Mid Level Cloud", - "mipTable": "CFmon", - "units": "%" - }, - "cls": { - "CMOR_varname": "cls", - "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", - "long_name": "Stratiform Cloud Area Fraction", - "mipTable": "CF3hr", - "units": "%" - }, - "cls": { - "CMOR_varname": "cls", - "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", - "long_name": "Stratiform Cloud Area Fraction", - "mipTable": "CFmon", - "units": "%" - }, - "clt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "mipTable": "day", - "units": "%" - }, - "clt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "mipTable": "3hr", - "units": "%" - }, - "clt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "mipTable": "Amon", - "units": "%" - }, - "cltc": { - "CMOR_varname": "cltc", - "standard_name": "convective_cloud_area_fraction", - "long_name": "Convective Cloud Fraction", - "mipTable": "CF3hr", - "units": "%" - }, - "cltcalipso": { - "CMOR_varname": "cltcalipso", - "standard_name": "cloud_area_fraction", - "long_name": "CALIPSO Total Cloud Fraction", - "mipTable": "CFday", - "units": "%" - }, - "cltcalipso": { - "CMOR_varname": "cltcalipso", - "standard_name": "cloud_area_fraction", - "long_name": "CALIPSO Percentage Total Cloud", - "mipTable": "CFmon", - "units": "%" - }, - "cltisccp": { - "CMOR_varname": "cltisccp", - "standard_name": "cloud_area_fraction", - "long_name": "ISCCP Total Total Cloud Fraction", - "mipTable": "CFday", - "units": "%" - }, - "cltisccp": { - "CMOR_varname": "cltisccp", - "standard_name": "cloud_area_fraction", - "long_name": "ISCCP Total Cloud Fraction", - "mipTable": "CFmon", - "units": "%" - }, - "clw": { - "CMOR_varname": "clw", - "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Cloud Liquid Water", - "mipTable": "CFday", - "units": "kg kg-1" - }, - "clw": { - "CMOR_varname": "clw", - "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Cloud Liquid Water", - "mipTable": "Amon", - "units": "kg kg-1" - }, - "clwc": { - "CMOR_varname": "clwc", - "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Convective Cloud Liquid Water", - "mipTable": "CF3hr", - "units": "1" - }, - "clwc": { - "CMOR_varname": "clwc", - "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Convective Cloud Liquid Water", - "mipTable": "CFmon", - "units": "1" - }, - "clws": { - "CMOR_varname": "clws", - "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", - "mipTable": "CF3hr", - "units": "1" - }, - "clws": { - "CMOR_varname": "clws", - "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", - "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", - "mipTable": "CFmon", - "units": "1" - }, - "clwvi": { - "CMOR_varname": "clwvi", - "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", - "long_name": "Condensed Water Path", - "mipTable": "CFday", - "units": "kg m-2" - }, - "clwvi": { - "CMOR_varname": "clwvi", - "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", - "long_name": "Condensed Water Path", - "mipTable": "Amon", - "units": "kg m-2" - }, - "co2": { - "CMOR_varname": "co2", - "standard_name": "mole_fraction_of_carbon_dioxide_in_air", - "long_name": "Mole Fraction of CO2", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "co2mass": { - "CMOR_varname": "co2mass", - "standard_name": "atmosphere_mass_of_carbon_dioxide", - "long_name": "Total Atmospheric Mass of CO2", - "mipTable": "Amon", - "units": "kg" - }, - "cropFrac": { - "CMOR_varname": "cropFrac", - "standard_name": "area_fraction", - "long_name": "Percentage Crop Cover", - "mipTable": "Lmon", - "units": "%" - }, - "demc": { - "CMOR_varname": "demc", - "standard_name": "convective_cloud_longwave_emissivity", - "long_name": "Convective Cloud Emissivity", - "mipTable": "CF3hr", - "units": "1" - }, - "dems": { - "CMOR_varname": "dems", - "standard_name": "stratiform_cloud_longwave_emissivity", - "long_name": "Stratiform Cloud Emissivity", - "mipTable": "CF3hr", - "units": "1" - }, - "difmxybo": { - "CMOR_varname": "difmxybo", - "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", - "long_name": "Ocean Momentum XY Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "difmxylo": { - "CMOR_varname": "difmxylo", - "standard_name": "ocean_momentum_xy_laplacian_diffusivity", - "long_name": "Ocean Momentum XY Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "diftrbbo": { - "CMOR_varname": "diftrbbo", - "standard_name": "ocean_tracer_biharmonic_diffusivity_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "Ocean Tracer Bolus Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "diftrblo": { - "CMOR_varname": "diftrblo", - "standard_name": "ocean_tracer_laplacian_diffusivity_due_to_parameterized_mesoscale_eddy_advection", - "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "diftrebo": { - "CMOR_varname": "diftrebo", - "standard_name": "ocean_tracer_epineutral_biharmonic_diffusivity", - "long_name": "Ocean Tracer Epineutral Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "diftrelo": { - "CMOR_varname": "diftrelo", - "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", - "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "diftrxybo": { - "CMOR_varname": "diftrxybo", - "standard_name": "ocean_tracer_xy_biharmonic_diffusivity", - "long_name": "Ocean Tracer XY Biharmonic Diffusivity", - "mipTable": "Oclim", - "units": "m4 s-1" - }, - "diftrxylo": { - "CMOR_varname": "diftrxylo", - "standard_name": "ocean_tracer_xy_laplacian_diffusivity", - "long_name": "Ocean Tracer XY Laplacian Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvho": { - "CMOR_varname": "difvho", - "standard_name": "ocean_vertical_heat_diffusivity", - "long_name": "Ocean Vertical Heat Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvmbo": { - "CMOR_varname": "difvmbo", - "standard_name": "ocean_vertical_momentum_diffusivity_due_to_background", - "long_name": "Ocean Vertical Momentum Diffusivity due to Background", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvmfdo": { - "CMOR_varname": "difvmfdo", - "standard_name": "ocean_vertical_momentum_diffusivity_due_to_form_drag", - "long_name": "Ocean Vertical Momentum Diffusivity due to Form Drag", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvmo": { - "CMOR_varname": "difvmo", - "standard_name": "ocean_vertical_momentum_diffusivity", - "long_name": "Ocean Vertical Momentum Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvmto": { - "CMOR_varname": "difvmto", - "standard_name": "ocean_vertical_momentum_diffusivity_due_to_tides", - "long_name": "Ocean Vertical Momentum Diffusivity due to Tides", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvso": { - "CMOR_varname": "difvso", - "standard_name": "ocean_vertical_salt_diffusivity", - "long_name": "Ocean Vertical Salt Diffusivity", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvtrbo": { - "CMOR_varname": "difvtrbo", - "standard_name": "ocean_vertical_tracer_diffusivity_due_to_background", - "long_name": "Ocean Vertical Tracer Diffusivity due to Background", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "difvtrto": { - "CMOR_varname": "difvtrto", - "standard_name": "ocean_vertical_tracer_diffusivity_due_to_tides", - "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", - "mipTable": "Oclim", - "units": "m2 s-1" - }, - "dispkevfo": { - "CMOR_varname": "dispkevfo", - "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_vertical_friction", - "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to Vertical Friction", - "mipTable": "Oclim", - "units": "W m-2" - }, - "dispkexyfo": { - "CMOR_varname": "dispkexyfo", - "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", - "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", - "mipTable": "Oclim", - "units": "W m-2" - }, - "dmc": { - "CMOR_varname": "dmc", - "standard_name": "atmosphere_net_upward_deep_convective_mass_flux", - "long_name": "Deep Convective Mass Flux", - "mipTable": "CFmon", - "units": "kg m-2 s-1" - }, - "dtauc": { - "CMOR_varname": "dtauc", - "standard_name": "atmosphere_optical_thickness_due_to_convective_cloud", - "long_name": "Convective Cloud Optical Depth", - "mipTable": "CF3hr", - "units": "1" - }, - "dtaus": { - "CMOR_varname": "dtaus", - "standard_name": "atmosphere_optical_thickness_due_to_stratiform_cloud", - "long_name": "Stratiform Cloud Optical Depth", - "mipTable": "CF3hr", - "units": "1" - }, - "evspsbl": { - "CMOR_varname": "evspsbl", - "standard_name": "water_evapotranspiration_flux", - "long_name": "Evaporation including Sublimation and Transpiration", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "evspsblsoi": { - "CMOR_varname": "evspsblsoi", - "standard_name": "water_evaporation_flux_from_soil", - "long_name": "Water Evaporation from Soil", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "evspsblveg": { - "CMOR_varname": "evspsblveg", - "standard_name": "water_evaporation_flux_from_canopy", - "long_name": "Evaporation from Canopy", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fFire": { - "CMOR_varname": "fFire", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires_excluding_anthropogenic_land_use_change", - "long_name": "Carbon Mass Flux into Atmosphere due to CO2 Emission from Fire", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fGrazing": { - "CMOR_varname": "fGrazing", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_grazing", - "long_name": "Carbon Mass Flux into Atmosphere due to Grazing on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fHarvest": { - "CMOR_varname": "fHarvest", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting", - "long_name": "Carbon Mass Flux into Atmosphere due to Crop Harvesting", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fLitterSoil": { - "CMOR_varname": "fLitterSoil", - "standard_name": "carbon_mass_flux_into_soil_from_litter", - "long_name": "Total Carbon Mass Flux from Litter to Soil", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fVegLitter": { - "CMOR_varname": "fVegLitter", - "standard_name": "mass_flux_of_carbon_into_litter_from_vegetation", - "long_name": "Total Carbon Mass Flux from Vegetation to Litter", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fVegSoil": { - "CMOR_varname": "fVegSoil", - "standard_name": "carbon_mass_flux_into_soil_from_vegetation_excluding_litter", - "long_name": "Total Carbon Mass Flux from Vegetation Directly to Soil", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "fco2antt": { - "CMOR_varname": "fco2antt", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", - "long_name": "Carbon Mass Flux into Atmosphere Due to All Anthropogenic Emissions of CO2", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "fco2fos": { - "CMOR_varname": "fco2fos", - "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", - "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "fco2nat": { - "CMOR_varname": "fco2nat", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources", - "long_name": "Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "gpp": { - "CMOR_varname": "gpp", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "grassFrac": { - "CMOR_varname": "grassFrac", - "standard_name": "area_fraction", - "long_name": "Natural Grass Area Percentage", - "mipTable": "Lmon", - "units": "%" - }, - "grpllsprof": { - "CMOR_varname": "grpllsprof", - "standard_name": "stratiform_graupel_flux", - "long_name": "Stratiform Graupel Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "h2o": { - "CMOR_varname": "h2o", - "standard_name": "mass_fraction_of_water_in_air", - "long_name": "Mass Fraction of Water", - "mipTable": "CF3hr", - "units": "1" - }, - "hcfc22global": { - "CMOR_varname": "hcfc22global", - "standard_name": "mole_fraction_of_hcfc22_in_air", - "long_name": "Global Mean Mole Fraction of HCFC22", - "mipTable": "Amon", - "units": "1e-12" - }, - "hfdsn": { - "CMOR_varname": "hfdsn", - "standard_name": "surface_downward_heat_flux_in_snow", - "long_name": "Downward Heat Flux into Snow Where Land over Land", - "mipTable": "LImon", - "units": "W m-2" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "3hr", - "units": "W m-2" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "Amon", - "units": "W m-2" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "day", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "3hr", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "Amon", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "day", - "units": "W m-2" - }, - "hur": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "mipTable": "Amon", - "units": "%" - }, - "hur": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "mipTable": "CFday", - "units": "%" - }, - "hur": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "mipTable": "CFmon", - "units": "%" - }, - "hur": { - "CMOR_varname": "hur", - "standard_name": "relative_humidity", - "long_name": "Relative Humidity", - "mipTable": "day", - "units": "%" - }, - "hurs": { - "CMOR_varname": "hurs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "mipTable": "Amon", - "units": "%" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "6hrLev", - "units": "1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "Amon", - "units": "1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "CFday", - "units": "1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "CFmon", - "units": "1" - }, - "hus": { - "CMOR_varname": "hus", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "day", - "units": "1" - }, - "huss": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "mipTable": "Amon", - "units": "1" - }, - "huss": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "mipTable": "day", - "units": "1" - }, - "huss": { - "CMOR_varname": "huss", - "standard_name": "specific_humidity", - "long_name": "Near-Surface Specific Humidity", - "mipTable": "3hr", - "units": "1" - }, - "lai": { - "CMOR_varname": "lai", - "standard_name": "leaf_area_index", - "long_name": "Leaf Area Index", - "mipTable": "Lmon", - "units": "1" - }, - "landCoverFrac": { - "CMOR_varname": "landCoverFrac", - "standard_name": "area_fraction", - "long_name": "Percentage of Area by Vegetation/Land Cover Category", - "mipTable": "Lmon", - "units": "%" - }, - "lwsnl": { - "CMOR_varname": "lwsnl", - "standard_name": "liquid_water_content_of_surface_snow", - "long_name": "Liquid Water Content of Snow Layer", - "mipTable": "LImon", - "units": "kg m-2" - }, - "mc": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "mc": { - "CMOR_varname": "mc", - "standard_name": "atmosphere_net_upward_convective_mass_flux", - "long_name": "Convective Mass Flux", - "mipTable": "CFday", - "units": "kg m-2 s-1" - }, - "mcd": { - "CMOR_varname": "mcd", - "standard_name": "atmosphere_downdraft_convective_mass_flux", - "long_name": "Downdraft Convective Mass Flux", - "mipTable": "CFmon", - "units": "kg m-2 s-1" - }, - "mcu": { - "CMOR_varname": "mcu", - "standard_name": "atmosphere_updraft_convective_mass_flux", - "long_name": "Updraft Convective Mass Flux", - "mipTable": "CFmon", - "units": "kg m-2 s-1" - }, - "mrfso": { - "CMOR_varname": "mrfso", - "standard_name": "soil_frozen_water_content", - "long_name": "Soil Frozen Water Content", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "mrro": { - "CMOR_varname": "mrro", - "standard_name": "runoff_flux", - "long_name": "Total Runoff", - "mipTable": "3hr", - "units": "kg m-2 s-1" - }, - "mrro": { - "CMOR_varname": "mrro", - "standard_name": "runoff_flux", - "long_name": "Total Runoff", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "mrro": { - "CMOR_varname": "mrro", - "standard_name": "runoff_flux", - "long_name": "Total Runoff", - "mipTable": "day", - "units": "kg m-2 s-1" - }, - "mrros": { - "CMOR_varname": "mrros", - "standard_name": "surface_runoff_flux", - "long_name": "Surface Runoff", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "mrso": { - "CMOR_varname": "mrso", - "standard_name": "mass_content_of_water_in_soil", - "long_name": "Total Soil Moisture Content", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "mrsofc": { - "CMOR_varname": "mrsofc", - "standard_name": "soil_moisture_content_at_field_capacity", - "long_name": "Capacity of Soil to Store Water", - "mipTable": "fx", - "units": "kg m-2" - }, - "mrsos": { - "CMOR_varname": "mrsos", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column", - "mipTable": "3hr", - "units": "kg m-2" - }, - "mrsos": { - "CMOR_varname": "mrsos", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column", - "mipTable": "Lmon", - "units": "kg m-2" - }, - "mrsos": { - "CMOR_varname": "mrsos", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column", - "mipTable": "day", - "units": "kg m-2" - }, - "n2o": { - "CMOR_varname": "n2o", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "Mole Fraction of N2O", - "mipTable": "Amon", - "units": "mol mol-1" - }, - "n2oglobal": { - "CMOR_varname": "n2oglobal", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "Global Mean Mole Fraction of N2O", - "mipTable": "Amon", - "units": "1e-09" - }, - "nbp": { - "CMOR_varname": "nbp", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", - "long_name": "Carbon Mass Flux out of Atmosphere due to Net Biospheric Production on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "npp": { - "CMOR_varname": "npp", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "nppLeaf": { - "CMOR_varname": "nppLeaf", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_leaves", - "long_name": "Carbon Mass Flux due to NPP Allocation to Leaf", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "nppRoot": { - "CMOR_varname": "nppRoot", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_roots", - "long_name": "Carbon Mass Flux due to NPP Allocation to Roots", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "nppWood": { - "CMOR_varname": "nppWood", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_wood", - "long_name": "Carbon Mass Flux due to NPP Allocation to Wood", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "omldamax": { - "CMOR_varname": "omldamax", - "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", - "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "mipTable": "Oday", - "units": "m" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "mipTable": "fx", - "units": "m" - }, - "pastureFrac": { - "CMOR_varname": "pastureFrac", - "standard_name": "area_fraction", - "long_name": "Percentage of Land which is Anthropogenic Pasture", - "mipTable": "Lmon", - "units": "%" - }, - "pctisccp": { - "CMOR_varname": "pctisccp", - "standard_name": "air_pressure_at_cloud_top", - "long_name": "ISCCP Mean Cloud Top Pressure", - "mipTable": "CFday", - "units": "Pa" - }, - "pctisccp": { - "CMOR_varname": "pctisccp", - "standard_name": "air_pressure_at_cloud_top", - "long_name": "ISCCP Mean Cloud Top Pressure", - "mipTable": "CFmon", - "units": "Pa" - }, - "pflw": { - "CMOR_varname": "pflw", - "standard_name": "liquid_water_content_of_permafrost_layer", - "long_name": "Liquid Water Content of Permafrost Layer", - "mipTable": "LImon", - "units": "kg m-2" - }, - "pfull": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Pressure at Model Full-Levels", - "mipTable": "CF3hr", - "units": "Pa" - }, - "pfull": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Levels", - "mipTable": "Amon", - "units": "Pa" - }, - "pfull": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Levels", - "mipTable": "CFday", - "units": "Pa" - }, - "phalf": { - "CMOR_varname": "phalf", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Half-Levels", - "mipTable": "Amon", - "units": "Pa" - }, - "phalf": { - "CMOR_varname": "phalf", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Half-Levels", - "mipTable": "CFday", - "units": "Pa" - }, - "phalf": { - "CMOR_varname": "phalf", - "standard_name": "air_pressure", - "long_name": "Pressure on Model Half-Levels", - "mipTable": "CF3hr", - "units": "Pa" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "3hr", - "units": "kg m-2 s-1" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "day", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "day", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "3hr", - "units": "kg m-2 s-1" - }, - "prcprof": { - "CMOR_varname": "prcprof", - "standard_name": "convective_rainfall_flux", - "long_name": "Convective Rainfall Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prlsns": { - "CMOR_varname": "prlsns", - "standard_name": "stratiform_snowfall_flux", - "long_name": "Stratiform Snowfall Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prlsprof": { - "CMOR_varname": "prlsprof", - "standard_name": "stratiform_rainfall_flux", - "long_name": "Stratiform Rainfall Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "3hr", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "day", - "units": "kg m-2 s-1" - }, - "prsnc": { - "CMOR_varname": "prsnc", - "standard_name": "convective_snowfall_flux", - "long_name": "Convective Snowfall Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prveg": { - "CMOR_varname": "prveg", - "standard_name": "precipitation_flux_onto_canopy", - "long_name": "Precipitation onto Canopy", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "prw": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_mass_content_of_water_vapor", - "long_name": "Water Vapor Path", - "mipTable": "Amon", - "units": "kg m-2" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "mipTable": "6hrLev", - "units": "Pa" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "mipTable": "CFday", - "units": "Pa" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "mipTable": "3hr", - "units": "Pa" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Air Pressure", - "mipTable": "Amon", - "units": "Pa" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "Amon", - "units": "Pa" - }, - "psl": { - "CMOR_varname": "psl", - "standard_name": "air_pressure_at_mean_sea_level", - "long_name": "Sea Level Pressure", - "mipTable": "day", - "units": "Pa" - }, - "rGrowth": { - "CMOR_varname": "rGrowth", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_for_biomass_growth", - "long_name": "Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "rMaint": { - "CMOR_varname": "rMaint", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_for_biomass_maintenance", - "long_name": "Carbon Mass Flux into Atmosphere due to Maintenance Autotrophic Respiration on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "ra": { - "CMOR_varname": "ra", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", - "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "reffclic": { - "CMOR_varname": "reffclic", - "standard_name": "effective_radius_of_convective_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", - "mipTable": "CF3hr", - "units": "m" - }, - "reffclis": { - "CMOR_varname": "reffclis", - "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", - "mipTable": "CF3hr", - "units": "m" - }, - "reffclwc": { - "CMOR_varname": "reffclwc", - "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", - "mipTable": "CF3hr", - "units": "m" - }, - "reffclws": { - "CMOR_varname": "reffclws", - "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", - "mipTable": "CF3hr", - "units": "m" - }, - "reffgrpls": { - "CMOR_varname": "reffgrpls", - "standard_name": "effective_radius_of_stratiform_cloud_graupel_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Graupel", - "mipTable": "CF3hr", - "units": "m" - }, - "reffrainc": { - "CMOR_varname": "reffrainc", - "standard_name": "effective_radius_of_convective_cloud_rain_particle", - "long_name": "Hydrometeor Effective Radius of Convective Rainfall", - "mipTable": "CF3hr", - "units": "m" - }, - "reffrains": { - "CMOR_varname": "reffrains", - "standard_name": "effective_radius_of_stratiform_cloud_rain_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Rainfall", - "mipTable": "CF3hr", - "units": "m" - }, - "reffsnowc": { - "CMOR_varname": "reffsnowc", - "standard_name": "effective_radius_of_convective_cloud_snow_particle", - "long_name": "Hydrometeor Effective Radius of Convective Snowfall", - "mipTable": "CF3hr", - "units": "m" - }, - "reffsnows": { - "CMOR_varname": "reffsnows", - "standard_name": "effective_radius_of_stratiform_cloud_snow_particle", - "long_name": "Hydrometeor Effective Radius of Stratiform Snowfall", - "mipTable": "CF3hr", - "units": "m" - }, - "residualFrac": { - "CMOR_varname": "residualFrac", - "standard_name": "area_fraction", - "long_name": "Percentage of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", - "mipTable": "Lmon", - "units": "%" - }, - "rh": { - "CMOR_varname": "rh", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", - "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "rld4co2": { - "CMOR_varname": "rld4co2", - "standard_name": "downwelling_longwave_flux_in_air", - "long_name": "Downwelling Longwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rld": { - "CMOR_varname": "rld", - "standard_name": "downwelling_longwave_flux_in_air", - "long_name": "Downwelling Longwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rldcs4co2": { - "CMOR_varname": "rldcs4co2", - "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rldcs": { - "CMOR_varname": "rldcs", - "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Longwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "rldscs": { - "CMOR_varname": "rldscs", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rldscs": { - "CMOR_varname": "rldscs", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rldscs": { - "CMOR_varname": "rldscs", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rlu4co2": { - "CMOR_varname": "rlu4co2", - "standard_name": "upwelling_longwave_flux_in_air", - "long_name": "Upwelling Longwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlu": { - "CMOR_varname": "rlu", - "standard_name": "upwelling_longwave_flux_in_air", - "long_name": "Upwelling Longwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlucs4co2": { - "CMOR_varname": "rlucs4co2", - "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlucs": { - "CMOR_varname": "rlucs", - "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Longwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rlut4co2": { - "CMOR_varname": "rlut4co2", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rlutcs4co2": { - "CMOR_varname": "rlutcs4co2", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rlutcs": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rlutcs": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rootd": { - "CMOR_varname": "rootd", - "standard_name": "root_depth", - "long_name": "Maximum Root Depth", - "mipTable": "fx", - "units": "m" - }, - "rsd4co2": { - "CMOR_varname": "rsd4co2", - "standard_name": "downwelling_shortwave_flux_in_air", - "long_name": "Downwelling Shortwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsd": { - "CMOR_varname": "rsd", - "standard_name": "downwelling_shortwave_flux_in_air", - "long_name": "Downwelling Shortwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsdcs4co2": { - "CMOR_varname": "rsdcs4co2", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsdcs": { - "CMOR_varname": "rsdcs", - "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "rsdscs": { - "CMOR_varname": "rsdscs", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsdscs": { - "CMOR_varname": "rsdscs", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rsdscs": { - "CMOR_varname": "rsdscs", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rsdsdiff": { - "CMOR_varname": "rsdsdiff", - "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", - "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rsu4co2": { - "CMOR_varname": "rsu4co2", - "standard_name": "upwelling_shortwave_flux_in_air", - "long_name": "Upwelling Shortwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsu": { - "CMOR_varname": "rsu", - "standard_name": "upwelling_shortwave_flux_in_air", - "long_name": "Upwelling Shortwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsucs4co2": { - "CMOR_varname": "rsucs4co2", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsucs": { - "CMOR_varname": "rsucs", - "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "rsuscs": { - "CMOR_varname": "rsuscs", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "3hr", - "units": "W m-2" - }, - "rsuscs": { - "CMOR_varname": "rsuscs", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsuscs": { - "CMOR_varname": "rsuscs", - "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rsut4co2": { - "CMOR_varname": "rsut4co2", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsutcs4co2": { - "CMOR_varname": "rsutcs4co2", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", - "mipTable": "CFmon", - "units": "W m-2" - }, - "rsutcs": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "mipTable": "Amon", - "units": "W m-2" - }, - "rsutcs": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "mipTable": "CFday", - "units": "W m-2" - }, - "rtmt": { - "CMOR_varname": "rtmt", - "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", - "long_name": "Net Downward Flux at Top of Model", - "mipTable": "Amon", - "units": "W m-2" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "Amon", - "units": "kg m-2 s-1" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "sci": { - "CMOR_varname": "sci", - "standard_name": "shallow_convection_time_fraction", - "long_name": "Fraction of Time Shallow Convection Occurs", - "mipTable": "Amon", - "units": "1" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Near-Surface Wind Speed", - "mipTable": "Amon", - "units": "m s-1" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Daily-Mean Near-Surface Wind Speed", - "mipTable": "day", - "units": "m s-1" - }, - "sfcWindmax": { - "CMOR_varname": "sfcWindmax", - "standard_name": "wind_speed", - "long_name": "Daily Maximum Near-Surface Wind Speed", - "mipTable": "day", - "units": "m s-1" - }, - "sftgif": { - "CMOR_varname": "sftgif", - "standard_name": "land_ice_area_fraction", - "long_name": "Fraction of Grid Cell Covered with Glacier", - "mipTable": "fx", - "units": "%" - }, - "sftlf": { - "CMOR_varname": "sftlf", - "standard_name": "land_area_fraction", - "long_name": "Land Area Fraction", - "mipTable": "fx", - "units": "%" - }, - "shrubFrac": { - "CMOR_varname": "shrubFrac", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by Shrub", - "mipTable": "Lmon", - "units": "%" - }, - "smc": { - "CMOR_varname": "smc", - "standard_name": "atmosphere_net_upward_shallow_convective_mass_flux", - "long_name": "Shallow Convective Mass Flux", - "mipTable": "CFmon", - "units": "kg m-2 s-1" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "Snow Area Fraction", - "mipTable": "LImon", - "units": "%" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "Snow Area Fraction", - "mipTable": "day", - "units": "%" - }, - "snd": { - "CMOR_varname": "snd", - "standard_name": "surface_snow_thickness", - "long_name": "Snow Depth", - "mipTable": "LImon", - "units": "m" - }, - "snm": { - "CMOR_varname": "snm", - "standard_name": "surface_snow_melt_flux", - "long_name": "Surface Snow Melt", - "mipTable": "LImon", - "units": "kg m-2 s-1" - }, - "snw": { - "CMOR_varname": "snw", - "standard_name": "surface_snow_amount", - "long_name": "Surface Snow Amount", - "mipTable": "LImon", - "units": "kg m-2" - }, - "snw": { - "CMOR_varname": "snw", - "standard_name": "surface_snow_amount", - "long_name": "Surface Snow Amount", - "mipTable": "day", - "units": "kg m-2" - }, - "sootsn": { - "CMOR_varname": "sootsn", - "standard_name": "soot_content_of_surface_snow", - "long_name": "Snow Soot Content", - "mipTable": "LImon", - "units": "kg m-2" - }, - "ta700": { - "CMOR_varname": "ta700", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "CFday", - "units": "K" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "6hrLev", - "units": "K" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "Amon", - "units": "K" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "CF3hr", - "units": "K" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "CFday", - "units": "K" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "CFmon", - "units": "K" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "day", - "units": "K" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature", - "mipTable": "3hr", - "units": "K" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature", - "mipTable": "Amon", - "units": "K" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Near-Surface Air Temperature", - "mipTable": "day", - "units": "K" - }, - "tasmax": { - "CMOR_varname": "tasmax", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature", - "mipTable": "Amon", - "units": "K" - }, - "tasmax": { - "CMOR_varname": "tasmax", - "standard_name": "air_temperature", - "long_name": "Daily Maximum Near-Surface Air Temperature", - "mipTable": "day", - "units": "K" - }, - "tasmin": { - "CMOR_varname": "tasmin", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature", - "mipTable": "Amon", - "units": "K" - }, - "tasmin": { - "CMOR_varname": "tasmin", - "standard_name": "air_temperature", - "long_name": "Daily Minimum Near-Surface Air Temperature", - "mipTable": "day", - "units": "K" - }, - "tauu": { - "CMOR_varname": "tauu", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "mipTable": "Amon", - "units": "Pa" - }, - "tauv": { - "CMOR_varname": "tauv", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "mipTable": "Amon", - "units": "Pa" - }, - "thkcello": { - "CMOR_varname": "thkcello", - "standard_name": "cell_thickness", - "long_name": "Ocean Model Cell Thickness", - "mipTable": "Ofx", - "units": "m" - }, - "tnhus": { - "CMOR_varname": "tnhus", - "standard_name": "tendency_of_specific_humidity", - "long_name": "Tendency of Specific Humidity", - "mipTable": "CFmon", - "units": "s-1" - }, - "tnhusa": { - "CMOR_varname": "tnhusa", - "standard_name": "tendency_of_specific_humidity_due_to_advection", - "long_name": "Tendency of Specific Humidity due to Advection", - "mipTable": "CFmon", - "units": "s-1" - }, - "tnhusc": { - "CMOR_varname": "tnhusc", - "standard_name": "tendency_of_specific_humidity_due_to_convection", - "long_name": "Tendency of Specific Humidity due to Convection", - "mipTable": "CFmon", - "units": "s-1" - }, - "tnhusd": { - "CMOR_varname": "tnhusd", - "standard_name": "tendency_of_specific_humidity_due_to_diffusion", - "long_name": "Tendency of Specific Humidity due to Numerical Diffusion", - "mipTable": "CFmon", - "units": "s-1" - }, - "tnhusmp": { - "CMOR_varname": "tnhusmp", - "standard_name": "tendency_of_specific_humidity_due_to_model_physics", - "long_name": "Tendency of Specific Humidity due to Model Physics", - "mipTable": "CFmon", - "units": "s-1" - }, - "tnhusscpbl": { - "CMOR_varname": "tnhusscpbl", - "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", - "long_name": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", - "mipTable": "CFmon", - "units": "s-1" - }, - "tnkebto": { - "CMOR_varname": "tnkebto", - "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_parameterized_eddy_advection", - "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", - "mipTable": "Oclim", - "units": "W m-2" - }, - "tnpeo": { - "CMOR_varname": "tnpeo", - "standard_name": "tendency_of_ocean_potential_energy_content", - "long_name": "Tendency of Ocean Potential Energy Content", - "mipTable": "Oclim", - "units": "W m-2" - }, - "tnpeot": { - "CMOR_varname": "tnpeot", - "standard_name": "tendency_of_ocean_potential_energy_content_due_to_tides", - "long_name": "Tendency of Ocean Potential Energy Content due to Tides", - "mipTable": "Oclim", - "units": "W m-2" - }, - "tnpeotb": { - "CMOR_varname": "tnpeotb", - "standard_name": "tendency_of_ocean_potential_energy_content_due_to_background", - "long_name": "Tendency of Ocean Potential Energy Content due to Background", - "mipTable": "Oclim", - "units": "W m-2" - }, - "tnt": { - "CMOR_varname": "tnt", - "standard_name": "tendency_of_air_temperature", - "long_name": "Tendency of Air Temperature", - "mipTable": "CFmon", - "units": "K s-1" - }, - "tnta": { - "CMOR_varname": "tnta", - "standard_name": "tendency_of_air_temperature_due_to_advection", - "long_name": "Tendency of Air Temperature due to Advection", - "mipTable": "CFmon", - "units": "K s-1" - }, - "tntc": { - "CMOR_varname": "tntc", - "standard_name": "tendency_of_air_temperature_due_to_convection", - "long_name": "Tendency of Air Temperature due to Convection", - "mipTable": "CFmon", - "units": "K s-1" - }, - "tntmp": { - "CMOR_varname": "tntmp", - "standard_name": "tendency_of_air_temperature_due_to_model_physics", - "long_name": "Tendency of Air Temperature due to Model Physics", - "mipTable": "CFmon", - "units": "K s-1" - }, - "tntr": { - "CMOR_varname": "tntr", - "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", - "long_name": "Tendency of Air Temperature due to Radiative Heating", - "mipTable": "CFmon", - "units": "K s-1" - }, - "tntscpbl": { - "CMOR_varname": "tntscpbl", - "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", - "long_name": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", - "mipTable": "CFmon", - "units": "K s-1" - }, - "tpf": { - "CMOR_varname": "tpf", - "standard_name": "permafrost_layer_thickness", - "long_name": "Permafrost Layer Thickness", - "mipTable": "LImon", - "units": "m" - }, - "tran": { - "CMOR_varname": "tran", - "standard_name": "transpiration_flux", - "long_name": "Transpiration", - "mipTable": "Lmon", - "units": "kg m-2 s-1" - }, - "treeFrac": { - "CMOR_varname": "treeFrac", - "standard_name": "area_fraction", - "long_name": "Tree Cover Fraction", - "mipTable": "Lmon", - "units": "%" - }, - "treeFracPrimDec": { - "CMOR_varname": "treeFracPrimDec", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by Primary Deciduous Tree", - "mipTable": "Lmon", - "units": "%" - }, - "treeFracPrimEver": { - "CMOR_varname": "treeFracPrimEver", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by Primary Evergreen Trees", - "mipTable": "Lmon", - "units": "%" - }, - "treeFracSecDec": { - "CMOR_varname": "treeFracSecDec", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by Secondary Deciduous Trees", - "mipTable": "Lmon", - "units": "%" - }, - "treeFracSecEver": { - "CMOR_varname": "treeFracSecEver", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by Secondary Evergreen Trees", - "mipTable": "Lmon", - "units": "%" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "Amon", - "units": "K" - }, - "tsl": { - "CMOR_varname": "tsl", - "standard_name": "soil_temperature", - "long_name": "Temperature of Soil", - "mipTable": "Lmon", - "units": "K" - }, - "tslsi": { - "CMOR_varname": "tslsi", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature Where Land or Sea Ice", - "mipTable": "day", - "units": "K" - }, - "tslsi": { - "CMOR_varname": "tslsi", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature Where Land or Sea Ice", - "mipTable": "3hr", - "units": "K" - }, - "tos": { - "CMOR_varname": "tos", - "standard_name": "sea_surface_temperature", - "long_name": "Sea Surface Temperature", - "mipTable": "3hr", - "units": "degC" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "6hrLev", - "units": "m s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "Amon", - "units": "m s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "CFday", - "units": "m s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "day", - "units": "m s-1" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind Speed", - "mipTable": "3hr", - "units": "m s-1" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "mipTable": "Amon", - "units": "m s-1" - }, - "uas": { - "CMOR_varname": "uas", - "standard_name": "eastward_wind", - "long_name": "Eastward Near-Surface Wind", - "mipTable": "day", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "6hrLev", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "Amon", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "CFday", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "day", - "units": "m s-1" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "mipTable": "Amon", - "units": "m s-1" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind", - "mipTable": "day", - "units": "m s-1" - }, - "vas": { - "CMOR_varname": "vas", - "standard_name": "northward_wind", - "long_name": "Northward Near-Surface Wind Speed", - "mipTable": "3hr", - "units": "m s-1" - }, - "volcello": { - "CMOR_varname": "volcello", - "standard_name": "ocean_volume", - "long_name": "Ocean Grid-Cell Volume", - "mipTable": "Ofx", - "units": "m3" - }, - "wap500": { - "CMOR_varname": "wap500", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "CFday", - "units": "Pa s-1" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "Amon", - "units": "Pa s-1" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "CFday", - "units": "Pa s-1" - }, - "wap": { - "CMOR_varname": "wap", - "standard_name": "lagrangian_tendency_of_air_pressure", - "long_name": "omega (=dp/dt)", - "mipTable": "day", - "units": "Pa s-1" - }, - "zfull": { - "CMOR_varname": "zfull", - "standard_name": "height_above_reference_ellipsoid", - "long_name": "Altitude of Model Full-Levels", - "mipTable": "CF3hr", - "units": "m" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "Amon", - "units": "m" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "CFday", - "units": "m" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "day", - "units": "m" - }, - "zhalf": { - "CMOR_varname": "zhalf", - "standard_name": "height_above_reference_ellipsoid", - "long_name": "Altitude of Model Half-Levels", - "mipTable": "CF3hr", - "units": "m" - }, - "nLitterSurf": { - "CMOR_varname": "nLitterSurf", - "standard_name": "surface_litter_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in above ground litter (non CWD)", - "mipTable": "Emon", - "units": "kg m-2" - }, - "nLitterSubSurf": { - "CMOR_varname": "nLitterSubSurf", - "standard_name": "subsurface_litter_mass_content_of_nitrogen", - "long_name": "Nitrogen Mass in below ground litter (non CWD)", - "mipTable": "Emon", - "units": "kg m-2" - }, - "tsland": { - "CMOR_varname": "tsland", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "Eday", - "units": "K" - }, - "dissicnatos": { - "CMOR_varname": "dissicnatos", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", - "long_name": "Surface Natural Dissolved Inorganic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissicabioos": { - "CMOR_varname": "dissicabioos", - "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", - "long_name": "Surface Abiotic Dissolved Inorganic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissi14cabioos": { - "CMOR_varname": "dissi14cabioos", - "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", - "long_name": "Surface Abiotic Dissolved Inorganic 14Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissi13cos": { - "CMOR_varname": "dissi13cos", - "standard_name": "mole_concentration_of_dissolved_inorganic_13C_in_sea_water", - "long_name": "Surface Dissolved Inorganic 13Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissocos": { - "CMOR_varname": "dissocos", - "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", - "long_name": "Surface Dissolved Organic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phycos": { - "CMOR_varname": "phycos", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Phytoplankton Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zoocos": { - "CMOR_varname": "zoocos", - "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Zooplankton Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "baccos": { - "CMOR_varname": "baccos", - "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", - "long_name": "Surface Bacterial Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "detocos": { - "CMOR_varname": "detocos", - "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", - "long_name": "Surface Detrital Organic Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "calcos": { - "CMOR_varname": "calcos", - "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Surface Calcite Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "aragos": { - "CMOR_varname": "aragos", - "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Surface Aragonite Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phydiatos": { - "CMOR_varname": "phydiatos", - "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Diatoms expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phydiazos": { - "CMOR_varname": "phydiazos", - "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Diazotrophs expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phycalcos": { - "CMOR_varname": "phycalcos", - "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phypicoos": { - "CMOR_varname": "phypicoos", - "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Picophytoplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phymiscos": { - "CMOR_varname": "phymiscos", - "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zmicroos": { - "CMOR_varname": "zmicroos", - "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Microzooplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zmesoos": { - "CMOR_varname": "zmesoos", - "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Mesozooplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zmiscos": { - "CMOR_varname": "zmiscos", - "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Surface Mole Concentration of Other Zooplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "talkos": { - "CMOR_varname": "talkos", - "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Surface Total Alkalinity", - "mipTable": "Omon", - "units": "mol m-3" - }, - "talknatos": { - "CMOR_varname": "talknatos", - "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", - "long_name": "Surface Natural Total Alkalinity", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phos": { - "CMOR_varname": "phos", - "standard_name": "sea_water_ph_reported_on_total_scale", - "long_name": "Surface pH", - "mipTable": "Omon", - "units": "1" - }, - "phnatos": { - "CMOR_varname": "phnatos", - "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", - "long_name": "Surface Natural pH", - "mipTable": "Omon", - "units": "1" - }, - "phabioos": { - "CMOR_varname": "phabioos", - "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", - "long_name": "Surface Abiotic pH", - "mipTable": "Omon", - "units": "1" - }, - "o2os": { - "CMOR_varname": "o2os", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", - "long_name": "Surface Dissolved Oxygen Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "o2satos": { - "CMOR_varname": "o2satos", - "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", - "long_name": "Surface Dissolved Oxygen Concentration at Saturation", - "mipTable": "Omon", - "units": "mol m-3" - }, - "no3os": { - "CMOR_varname": "no3os", - "standard_name": "mole_concentration_of_nitrate_in_sea_water", - "long_name": "Surface Dissolved Nitrate Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "nh4os": { - "CMOR_varname": "nh4os", - "standard_name": "mole_concentration_of_ammonium_in_sea_water", - "long_name": "Surface Dissolved Ammonium Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "po4os": { - "CMOR_varname": "po4os", - "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", - "long_name": "Surface Total Dissolved Inorganic Phosphorus Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dfeos": { - "CMOR_varname": "dfeos", - "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", - "long_name": "Surface Dissolved Iron Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "sios": { - "CMOR_varname": "sios", - "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", - "long_name": "Surface Total Dissolved Inorganic Silicon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "chlos": { - "CMOR_varname": "chlos", - "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chldiatos": { - "CMOR_varname": "chldiatos", - "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Diatoms expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chldiazos": { - "CMOR_varname": "chldiazos", - "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chlcalcos": { - "CMOR_varname": "chlcalcos", - "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chlpicoos": { - "CMOR_varname": "chlpicoos", - "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "chlmiscos": { - "CMOR_varname": "chlmiscos", - "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", - "long_name": "Surface Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", - "mipTable": "Omon", - "units": "kg m-3" - }, - "ponos": { - "CMOR_varname": "ponos", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", - "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "popos": { - "CMOR_varname": "popos", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", - "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "bfeos": { - "CMOR_varname": "bfeos", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", - "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "bsios": { - "CMOR_varname": "bsios", - "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_silicon_in_sea_water", - "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phynos": { - "CMOR_varname": "phynos", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", - "long_name": "Surface Mole Concentration of Phytoplankton Nitrogen in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phypos": { - "CMOR_varname": "phypos", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", - "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phyfeos": { - "CMOR_varname": "phyfeos", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", - "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Iron in Sea Water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "physios": { - "CMOR_varname": "physios", - "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", - "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dmsos": { - "CMOR_varname": "dmsos", - "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", - "long_name": "Surface Mole Concentration of Dimethyl Sulphide in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3os": { - "CMOR_varname": "co3os", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", - "long_name": "Surface Carbonate Ion Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3natos": { - "CMOR_varname": "co3natos", - "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", - "long_name": "Surface Natural Carbonate Ion Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3abioos": { - "CMOR_varname": "co3abioos", - "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", - "long_name": "Surface Abiotic Carbonate Ion Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3satcalcos": { - "CMOR_varname": "co3satcalcos", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", - "long_name": "Surface Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3sataragos": { - "CMOR_varname": "co3sataragos", - "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", - "long_name": "Surface Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "dissi13c": { - "CMOR_varname": "dissi13c", - "standard_name": "mole_concentration_of_dissolved_inorganic_13C_in_sea_water", - "long_name": "Dissolved Inorganic 13Carbon Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zmicro": { - "CMOR_varname": "zmicro", - "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zmisc": { - "CMOR_varname": "zmisc", - "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Other Zooplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "phabio": { - "CMOR_varname": "phabio", - "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", - "long_name": "Abiotic pH", - "mipTable": "Omon", - "units": "1" - }, - "intppnitrate": { - "CMOR_varname": "intppnitrate", - "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_due_to_nitrate_utilization", - "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "epn100": { - "CMOR_varname": "epn100", - "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", - "long_name": "Downward Flux of Particulate Nitrogen", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "epp100": { - "CMOR_varname": "epp100", - "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", - "long_name": "Downward Flux of Particulate Phosphorus", - "mipTable": "Omon", - "units": "mol m-2 s-1" - }, - "intdic": { - "CMOR_varname": "intdic", - "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", - "long_name": "Dissolved Inorganic Carbon Content", - "mipTable": "Omon", - "units": "kg m-2" - }, - "intdoc": { - "CMOR_varname": "intdoc", - "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", - "long_name": "Dissolved Organic Carbon Content", - "mipTable": "Omon", - "units": "kg m-2" - }, - "spco2nat": { - "CMOR_varname": "spco2nat", - "standard_name": "surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Natural Surface Aqueous Partial Pressure of CO2", - "mipTable": "Omon", - "units": "Pa" - }, - "spco2abio": { - "CMOR_varname": "spco2abio", - "standard_name": "surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Abiotic Surface Aqueous Partial Pressure of CO2", - "mipTable": "Omon", - "units": "Pa" - }, - "dpco2nat": { - "CMOR_varname": "dpco2nat", - "standard_name": "surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Natural Delta PCO2", - "mipTable": "Omon", - "units": "Pa" - }, - "dpco2abio": { - "CMOR_varname": "dpco2abio", - "standard_name": "surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air", - "long_name": "Abiotic Delta PCO2", - "mipTable": "Omon", - "units": "Pa" - }, - "dissi13c": { - "CMOR_varname": "dissi13c", - "standard_name": "mole_concentration_of_dissolved_inorganic_13C_in_sea_water", - "long_name": "Dissolved Inorganic 13Carbon Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "zmicro": { - "CMOR_varname": "zmicro", - "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "zmeso": { - "CMOR_varname": "zmeso", - "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "zmeso": { - "CMOR_varname": "zmeso", - "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in sea water", - "mipTable": "Omon", - "units": "mol m-3" - }, - "zmisc": { - "CMOR_varname": "zmisc", - "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", - "long_name": "Mole Concentration of Other Zooplankton expressed as Carbon in sea water", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "phnat": { - "CMOR_varname": "phnat", - "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", - "long_name": "Natural pH", - "mipTable": "Oyr", - "units": "1" - }, - "phnat": { - "CMOR_varname": "phnat", - "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", - "long_name": "Natural pH", - "mipTable": "Omon", - "units": "1" - }, - "phabio": { - "CMOR_varname": "phabio", - "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", - "long_name": "Abiotic pH", - "mipTable": "Oyr", - "units": "1" - }, - "co3nat": { - "CMOR_varname": "co3nat", - "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", - "long_name": "Natural Carbonate Ion Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "co3nat": { - "CMOR_varname": "co3nat", - "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", - "long_name": "Natural Carbonate Ion Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "co3abio": { - "CMOR_varname": "co3abio", - "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", - "long_name": "Abiotic Carbonate Ion Concentration", - "mipTable": "Oyr", - "units": "mol m-3" - }, - "co3abio": { - "CMOR_varname": "co3abio", - "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", - "long_name": "Abiotic Carbonate Ion Concentration", - "mipTable": "Omon", - "units": "mol m-3" - }, - "fgco2": { - "CMOR_varname": "fgco2", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", - "long_name": "Surface Downward Flux of Total CO2", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "fgco2nat": { - "CMOR_varname": "fgco2nat", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Natural CO2", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "fgco2abio": { - "CMOR_varname": "fgco2abio", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Abiotic CO2", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "fg14co2abio": { - "CMOR_varname": "fg14co2abio", - "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Abiotic 14CO2", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "fg13co2": { - "CMOR_varname": "fg13co2", - "standard_name": "surface_downward_mass_flux_of_13C_dioxide_abiotic_analogue_expressed_as_13C", - "long_name": "Surface Downward Flux of Abiotic 13CO2", - "mipTable": "Oyr", - "units": "kg m-2 s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "Emon", - "units": "m s-1" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "Emon", - "units": "m s-1" - }, - "flandice": { - "CMOR_varname": "flandice", - "standard_name": "water_flux_into_sea_water_from_land_ice", - "long_name": "Water flux into Sea Water from Land Ice", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rss": { - "CMOR_varname": "rss", - "standard_name": "surface_net_downward_shortwave_flux", - "long_name": "Net Shortwave Surface Radiation", - "mipTable": "Eday", - "units": "W m-2" - }, - "rls": { - "CMOR_varname": "rls", - "standard_name": "surface_net_downward_longwave_flux", - "long_name": "Net Longwave Surface Radiation", - "mipTable": "Eday", - "units": "W m-2" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "Eday", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "Eday", - "units": "W m-2" - }, - "hfdsn": { - "CMOR_varname": "hfdsn", - "standard_name": "surface_downward_heat_flux_in_snow", - "long_name": "Downward Heat Flux into Snow Where Land over Land", - "mipTable": "Eday", - "units": "W m-2" - }, - "hfmlt": { - "CMOR_varname": "hfmlt", - "standard_name": "surface_snow_and_ice_melt_heat_flux", - "long_name": "Energy of fusion", - "mipTable": "Eday", - "units": "W m-2" - }, - "hfsbl": { - "CMOR_varname": "hfsbl", - "standard_name": "surface_upward_latent_heat_flux_due_to_sublimation", - "long_name": "Energy of sublimation", - "mipTable": "Eday", - "units": "W m-2" - }, - "tau": { - "CMOR_varname": "tau", - "standard_name": "magnitude_of_surface_downward_stress", - "long_name": "Momentum flux", - "mipTable": "Eday", - "units": "N m-2" - }, - "hfrs": { - "CMOR_varname": "hfrs", - "standard_name": "tendency_of_thermal_energy_content_of_surface_snow_due_to_rainfall_temperature_excess_above_freezing", - "long_name": "Heat transferred to snowpack by rainfall", - "mipTable": "Eday", - "units": "W m-2" - }, - "dtes": { - "CMOR_varname": "dtes", - "standard_name": "change_over_time_in_thermal_energy_content_of_vegetation_and_litter_and_soil", - "long_name": "Change in surface heat storage", - "mipTable": "Eday", - "units": "J m-2" - }, - "dtesn": { - "CMOR_varname": "dtesn", - "standard_name": "change_over_time_in_thermal_energy_content_of_ice_and_snow_on_land", - "long_name": "Change in snow/ice cold content", - "mipTable": "Eday", - "units": "J m-2" - }, - "tsns": { - "CMOR_varname": "tsns", - "standard_name": "surface_temperature", - "long_name": "Snow Surface Temperature", - "mipTable": "Eday", - "units": "K" - }, - "tcs": { - "CMOR_varname": "tcs", - "standard_name": "canopy_temperature", - "long_name": "Vegetation Canopy Temperature", - "mipTable": "Eday", - "units": "K" - }, - "tgs": { - "CMOR_varname": "tgs", - "standard_name": "surface_temperature", - "long_name": "Temperature of bare soil", - "mipTable": "Eday", - "units": "K" - }, - "tr": { - "CMOR_varname": "tr", - "standard_name": "surface_temperature", - "long_name": "Surface Radiative Temperature", - "mipTable": "Eday", - "units": "K" - }, - "albsn": { - "CMOR_varname": "albsn", - "standard_name": "surface_albedo", - "long_name": "Snow Albedo", - "mipTable": "Eday", - "units": "1" - }, - "albc": { - "CMOR_varname": "albc", - "standard_name": "canopy_albedo", - "long_name": "Canopy Albedo", - "mipTable": "Eday", - "units": "1" - }, - "cnc": { - "CMOR_varname": "cnc", - "standard_name": "vegetation_area_fraction", - "long_name": "Canopy covered area percentage", - "mipTable": "Eday", - "units": "%" - }, - "tsl": { - "CMOR_varname": "tsl", - "standard_name": "soil_temperature", - "long_name": "Temperature of Soil", - "mipTable": "Eday", - "units": "K" - }, - "tsn": { - "CMOR_varname": "tsn", - "standard_name": "temperature_in_surface_snow", - "long_name": "Snow Internal Temperature", - "mipTable": "Eday", - "units": "K" - }, - "clt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "mipTable": "Eday", - "units": "%" - }, - "prra": { - "CMOR_varname": "prra", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux over Land", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "prrc": { - "CMOR_varname": "prrc", - "standard_name": "convective_rainfall_flux", - "long_name": "Convective Rainfall rate", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "prsnc": { - "CMOR_varname": "prsnc", - "standard_name": "convective_snowfall_flux", - "long_name": "Convective Snowfall Flux", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "prveg": { - "CMOR_varname": "prveg", - "standard_name": "precipitation_flux_onto_canopy", - "long_name": "Precipitation onto Canopy", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "evspsbl": { - "CMOR_varname": "evspsbl", - "standard_name": "water_evapotranspiration_flux", - "long_name": "Evaporation including Sublimation and Transpiration", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "ec": { - "CMOR_varname": "ec", - "standard_name": "water_evaporation_flux_from_canopy", - "long_name": "Interception evaporation", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "tran": { - "CMOR_varname": "tran", - "standard_name": "transpiration_flux", - "long_name": "Transpiration", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "es": { - "CMOR_varname": "es", - "standard_name": "water_evaporation_flux_from_soil", - "long_name": "Bare soil evaporation", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "eow": { - "CMOR_varname": "eow", - "standard_name": "surface_water_evaporation_flux", - "long_name": "Open Water Evaporation", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "esn": { - "CMOR_varname": "esn", - "standard_name": "water_evapotranspiration_flux", - "long_name": "Snow Evaporation", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "sblnosn": { - "CMOR_varname": "sblnosn", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_ice", - "long_name": "Sublimation of the snow free area", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "evspsblpot": { - "CMOR_varname": "evspsblpot", - "standard_name": "water_potential_evaporation_flux", - "long_name": "Potential Evapotranspiration", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "mrros": { - "CMOR_varname": "mrros", - "standard_name": "surface_runoff_flux", - "long_name": "Surface Runoff", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "mrrob": { - "CMOR_varname": "mrrob", - "standard_name": "subsurface_runoff_flux", - "long_name": "Subsurface runoff", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "snm": { - "CMOR_varname": "snm", - "standard_name": "surface_snow_melt_flux", - "long_name": "Surface Snow Melt", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "snrefr": { - "CMOR_varname": "snrefr", - "standard_name": "surface_snow_and_ice_refreezing_flux", - "long_name": "Re-freezing of water in the snow", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "snmsl": { - "CMOR_varname": "snmsl", - "standard_name": "liquid_water_mass_flux_into_soil_due_to_surface_snow_melt", - "long_name": "Water flowing out of snowpack", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "qgwr": { - "CMOR_varname": "qgwr", - "standard_name": "downward_liquid_water_mass_flux_into_groundwater", - "long_name": "Groundwater recharge from soil layer", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "rivo": { - "CMOR_varname": "rivo", - "standard_name": "outgoing_water_volume_transport_along_river_channel", - "long_name": "River Discharge", - "mipTable": "Eday", - "units": "m3 s-1" - }, - "rivi": { - "CMOR_varname": "rivi", - "standard_name": "incoming_water_volume_transport_along_river_channel", - "long_name": "River Inflow", - "mipTable": "Eday", - "units": "m3 s-1" - }, - "dslw": { - "CMOR_varname": "dslw", - "standard_name": "change_over_time_in_mass_content_of_water_in_soil", - "long_name": "Change in soil moisture", - "mipTable": "Eday", - "units": "kg m-2" - }, - "dsn": { - "CMOR_varname": "dsn", - "standard_name": "change_over_time_in_amount_of_ice_and_snow_on_land", - "long_name": "Change in snow water equivalent", - "mipTable": "Eday", - "units": "kg m-2" - }, - "dsw": { - "CMOR_varname": "dsw", - "standard_name": "change_over_time_in_land_water_amount", - "long_name": "Change in Surface Water Storage", - "mipTable": "Eday", - "units": "kg m-2" - }, - "dcw": { - "CMOR_varname": "dcw", - "standard_name": "change_over_time_in_canopy_water_amount", - "long_name": "Change in Interception Storage", - "mipTable": "Eday", - "units": "kg m-2" - }, - "dgw": { - "CMOR_varname": "dgw", - "standard_name": "change_over_time_in_groundwater_amount", - "long_name": "Change in Groundwater", - "mipTable": "Eday", - "units": "kg m-2" - }, - "drivw": { - "CMOR_varname": "drivw", - "standard_name": "change_over_time_in_river_water_amount", - "long_name": "Change in River Storage", - "mipTable": "Eday", - "units": "kg m-2" - }, - "rzwc": { - "CMOR_varname": "rzwc", - "standard_name": "mass_content_of_water_in_soil_layer_defined_by_root_depth", - "long_name": "Root zone soil moisture", - "mipTable": "Eday", - "units": "kg m-2" - }, - "cw": { - "CMOR_varname": "cw", - "standard_name": "canopy_water_amount", - "long_name": "Total Canopy Water Storage", - "mipTable": "Eday", - "units": "kg m-2" - }, - "snwc": { - "CMOR_varname": "snwc", - "standard_name": "canopy_snow_amount", - "long_name": "SWE intercepted by the vegetation", - "mipTable": "Eday", - "units": "kg m-2" - }, - "lwsnl": { - "CMOR_varname": "lwsnl", - "standard_name": "liquid_water_content_of_surface_snow", - "long_name": "Liquid Water Content of Snow Layer", - "mipTable": "Eday", - "units": "kg m-2" - }, - "sw": { - "CMOR_varname": "sw", - "standard_name": "land_surface_liquid_water_amount", - "long_name": "Surface Water Storage", - "mipTable": "Eday", - "units": "kg m-2" - }, - "mrsow": { - "CMOR_varname": "mrsow", - "standard_name": "volume_fraction_of_condensed_water_in_soil_at_field_capacity", - "long_name": "Total Soil Wetness", - "mipTable": "Eday", - "units": "1" - }, - "wtd": { - "CMOR_varname": "wtd", - "standard_name": "water_table_depth", - "long_name": "Water table depth", - "mipTable": "Eday", - "units": "m" - }, - "mrtws": { - "CMOR_varname": "mrtws", - "standard_name": "land_water_amount", - "long_name": "Terrestrial Water Storage", - "mipTable": "Eday", - "units": "kg m-2" - }, - "mrlqso": { - "CMOR_varname": "mrlqso", - "standard_name": "mass_fraction_of_unfrozen_water_in_soil_moisture", - "long_name": "Average layer fraction of liquid moisture", - "mipTable": "Eday", - "units": "1" - }, - "mrfsofr": { - "CMOR_varname": "mrfsofr", - "standard_name": "mass_fraction_of_frozen_water_in_soil_moisture", - "long_name": "Average layer fraction of frozen moisture", - "mipTable": "Eday", - "units": "1" - }, - "prrsn": { - "CMOR_varname": "prrsn", - "standard_name": "mass_fraction_of_rainfall_falling_onto_surface_snow", - "long_name": "Fraction of rainfall on snow.", - "mipTable": "Eday", - "units": "1" - }, - "prsnsn": { - "CMOR_varname": "prsnsn", - "standard_name": "mass_fraction_of_solid_precipitation_falling_onto_surface_snow", - "long_name": "Fraction of snowfall (including hail and graupel) on snow.", - "mipTable": "Eday", - "units": "1" - }, - "agesno": { - "CMOR_varname": "agesno", - "standard_name": "age_of_surface_snow", - "long_name": "Snow Age", - "mipTable": "Eday", - "units": "day" - }, - "sootsn": { - "CMOR_varname": "sootsn", - "standard_name": "soot_content_of_surface_snow", - "long_name": "Snow Soot Content", - "mipTable": "Eday", - "units": "kg m-2" - }, - "dmlt": { - "CMOR_varname": "dmlt", - "standard_name": "depth_at_shallowest_isotherm_defined_by_soil_temperature", - "long_name": "Depth to soil thaw", - "mipTable": "Eday", - "units": "m" - }, - "tpf": { - "CMOR_varname": "tpf", - "standard_name": "permafrost_layer_thickness", - "long_name": "Permafrost Layer Thickness", - "mipTable": "Eday", - "units": "m" - }, - "pflw": { - "CMOR_varname": "pflw", - "standard_name": "liquid_water_content_of_permafrost_layer", - "long_name": "Liquid Water Content of Permafrost Layer", - "mipTable": "Eday", - "units": "kg m-2" - }, - "ares": { - "CMOR_varname": "ares", - "standard_name": "aerodynamic_resistance", - "long_name": "Aerodynamic resistance", - "mipTable": "Eday", - "units": "s m-1" - }, - "nep": { - "CMOR_varname": "nep", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change", - "long_name": "Net Carbon Mass Flux out of Atmophere due to Net Ecosystem Productivity on Land.", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fLuc": { - "CMOR_varname": "fLuc", - "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", - "long_name": "Net Carbon Mass Flux into Atmosphere due to Land Use Change", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "cWood": { - "CMOR_varname": "cWood", - "standard_name": "stem_mass_content_of_carbon", - "long_name": "Carbon Mass in Wood", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cMisc": { - "CMOR_varname": "cMisc", - "standard_name": "miscellaneous_living_matter_mass_content_of_carbon", - "long_name": "Carbon Mass in Other Living Compartments on Land", - "mipTable": "Emon", - "units": "kg m-2" - }, - "gppLut": { - "CMOR_varname": "gppLut", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "gross primary productivity on land use tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raLut": { - "CMOR_varname": "raLut", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", - "long_name": "plant respiration on land use tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nppLut": { - "CMOR_varname": "nppLut", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "net primary productivity on land use tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "cTotFireLut": { - "CMOR_varname": "cTotFireLut", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires", - "long_name": "Total carbon loss from natural and managed fire on land use tile", - "mipTable": "including deforestation fires", - "units": "Emon" - }, - "rhLut": { - "CMOR_varname": "rhLut", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", - "long_name": "soil heterotrophic respiration on land use tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "necbLut": { - "CMOR_varname": "necbLut", - "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", - "long_name": "net rate of C accumulation (or loss) on land use tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nwdFracLut": { - "CMOR_varname": "nwdFracLut", - "standard_name": "area_fraction", - "long_name": "Non-woody Vegetation Percentage Cover", - "mipTable": "Emon", - "units": "%" - }, - "tasLut": { - "CMOR_varname": "tasLut", - "standard_name": "air_temperature", - "long_name": "near-surface air temperature (2m above displacement height", - "mipTable": "i.e. t_ref) on land use tile", - "units": "Emon" - }, - "tslsiLut": { - "CMOR_varname": "tslsiLut", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature on Landuse Tile", - "mipTable": "Emon", - "units": "K" - }, - "hussLut": { - "CMOR_varname": "hussLut", - "standard_name": "specific_humidity", - "long_name": "near-surface specific humidity on land use tile", - "mipTable": "Emon", - "units": "1" - }, - "hflsLut": { - "CMOR_varname": "hflsLut", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "latent heat flux on land use tile", - "mipTable": "Emon", - "units": "W m-2" - }, - "hfssLut": { - "CMOR_varname": "hfssLut", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "sensible heat flux on land use tile", - "mipTable": "Emon", - "units": "W m-2" - }, - "rsusLut": { - "CMOR_varname": "rsusLut", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave on Land Use Tile", - "mipTable": "Emon", - "units": "W m-2" - }, - "rlusLut": { - "CMOR_varname": "rlusLut", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave on Land Use Tile", - "mipTable": "Emon", - "units": "W m-2" - }, - "sweLut": { - "CMOR_varname": "sweLut", - "standard_name": "lwe_thickness_of_surface_snow_amount", - "long_name": "snow water equivalent on land use tile", - "mipTable": "Emon", - "units": "m" - }, - "laiLut": { - "CMOR_varname": "laiLut", - "standard_name": "leaf_area_index", - "long_name": "Leaf Area Index on Land Use Tile", - "mipTable": "Emon", - "units": "1" - }, - "mrsosLut": { - "CMOR_varname": "mrsosLut", - "standard_name": "mass_content_of_water_in_soil_layer", - "long_name": "Moisture in Upper Portion of Soil Column of land use tile", - "mipTable": "Emon", - "units": "kg m-2" - }, - "mrroLut": { - "CMOR_varname": "mrroLut", - "standard_name": "runoff_flux", - "long_name": "Total runoff from land use tile", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "mrsoLut": { - "CMOR_varname": "mrsoLut", - "standard_name": "mass_content_of_water_in_soil", - "long_name": "Total soil moisture", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cSoilLut": { - "CMOR_varname": "cSoilLut", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "carbon in soil pool on land use tiles", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "cVegLut": { - "CMOR_varname": "cVegLut", - "standard_name": "vegetation_carbon_content", - "long_name": "carbon in vegetation on land use tiles", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "cLitterLut": { - "CMOR_varname": "cLitterLut", - "standard_name": "litter_mass_content_of_carbon", - "long_name": "carbon in above and belowground litter pools on land use tiles", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "cSoil": { - "CMOR_varname": "cSoil", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon Mass in Soil Pool", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "cVeg": { - "CMOR_varname": "cVeg", - "standard_name": "vegetation_carbon_content", - "long_name": "Carbon Mass in Vegetation", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "cLitter": { - "CMOR_varname": "cLitter", - "standard_name": "litter_mass_content_of_carbon", - "long_name": "Carbon Mass in Litter Pool", - "mipTable": "Eyr", - "units": "kg m-2" - }, - "fracOutLut": { - "CMOR_varname": "fracOutLut", - "standard_name": "area_fraction", - "long_name": "Annual gross percentage of land use tile that was transferred into other land use tiles", - "mipTable": "Eyr", - "units": "%" - }, - "fracInLut": { - "CMOR_varname": "fracInLut", - "standard_name": "area_fraction", - "long_name": "Annual gross percentage that was transferred into this tile from other land use tiles", - "mipTable": "Eyr", - "units": "%" - }, - "fracLut": { - "CMOR_varname": "fracLut", - "standard_name": "area_fraction", - "long_name": "Percentage of grid cell for each land use tile", - "mipTable": "Eyr", - "units": "%" - }, - "swtoacsdust": { - "CMOR_varname": "swtoacsdust", - "standard_name": "toa_instantaneous_shortwave_forcing", - "long_name": "clear sky sw-rf dust at toa", - "mipTable": "Emon", - "units": "W m-2" - }, - "swtoaasdust": { - "CMOR_varname": "swtoaasdust", - "standard_name": "toa_instantaneous_shortwave_forcing", - "long_name": "all sky sw-rf dust at toa", - "mipTable": "Emon", - "units": "W m-2" - }, - "lwtoaasdust": { - "CMOR_varname": "lwtoaasdust", - "standard_name": "toa_instantaneous_longwave_forcing", - "long_name": "all sky lw-rf dust at toa", - "mipTable": "Emon", - "units": "W m-2" - }, - "lwtoacsaer": { - "CMOR_varname": "lwtoacsaer", - "standard_name": "toa_instantaneous_longwave_forcing", - "long_name": "clear sky lw-rf aerosols at toa", - "mipTable": "Emon", - "units": "W m-2" - }, - "prhmax": { - "CMOR_varname": "prhmax", - "standard_name": "precipitation_flux", - "long_name": "Maximum Hourly Precipitation Rate", - "mipTable": "Eday", - "units": "kg m-2 s-1" - }, - "pfull": { - "CMOR_varname": "pfull", - "standard_name": "air_pressure", - "long_name": "Air Pressure", - "mipTable": "6hrLev", - "units": "Pa" - }, - "rlu": { - "CMOR_varname": "rlu", - "standard_name": "upwelling_longwave_flux_in_air", - "long_name": "Upwelling Longwave Radiation", - "mipTable": "Efx", - "units": "W m-2" - }, - "rsu": { - "CMOR_varname": "rsu", - "standard_name": "upwelling_shortwave_flux_in_air", - "long_name": "Upwelling Shortwave Radiation", - "mipTable": "Efx", - "units": "W m-2" - }, - "rld": { - "CMOR_varname": "rld", - "standard_name": "downwelling_longwave_flux_in_air", - "long_name": "Downwelling Longwave Radiation", - "mipTable": "Efx", - "units": "W m-2" - }, - "rsd": { - "CMOR_varname": "rsd", - "standard_name": "downwelling_shortwave_flux_in_air", - "long_name": "Downwelling Shortwave Radiation", - "mipTable": "Efx", - "units": "W m-2" - }, - "sithick": { - "CMOR_varname": "sithick", - "standard_name": "sea_ice_thickness", - "long_name": "Sea Ice Thickness", - "mipTable": "SImon", - "units": "m" - }, - "sitimefrac": { - "CMOR_varname": "sitimefrac", - "standard_name": "fraction_of_time_with_sea_ice_area_fraction_above_threshold", - "long_name": "Fraction of time steps with sea ice", - "mipTable": "SIday", - "units": "1" - }, - "siconca": { - "CMOR_varname": "siconca", - "standard_name": "sea_ice_area_fraction", - "long_name": "Sea Ice Area Fraction (Atmospheric Grid)", - "mipTable": "SIday", - "units": "%" - }, - "sithick": { - "CMOR_varname": "sithick", - "standard_name": "sea_ice_thickness", - "long_name": "Sea Ice Thickness", - "mipTable": "SIday", - "units": "m" - }, - "sisnthick": { - "CMOR_varname": "sisnthick", - "standard_name": "surface_snow_thickness", - "long_name": "Snow thickness", - "mipTable": "SIday", - "units": "m" - }, - "sitemptop": { - "CMOR_varname": "sitemptop", - "standard_name": "sea_ice_surface_temperature", - "long_name": "Surface temperature of sea ice", - "mipTable": "SIday", - "units": "K" - }, - "sispeed": { - "CMOR_varname": "sispeed", - "standard_name": "sea_ice_speed", - "long_name": "Sea-ice speed", - "mipTable": "SIday", - "units": "m s-1" - }, - "zmswaero": { - "CMOR_varname": "zmswaero", - "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_from_volcanic_ambient_aerosol_particles", - "long_name": "Zonal mean shortwave heating rate due to volcanic aerosols", - "mipTable": "E6hrZ", - "units": "K s-1" - }, - "zmlwaero": { - "CMOR_varname": "zmlwaero", - "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_from_volcanic_ambient_aerosol_particles", - "long_name": "Zonal mean longwave heating rate due to volcanic aerosols", - "mipTable": "E6hrZ", - "units": "K s-1" - }, - "aod550volso4": { - "CMOR_varname": "aod550volso4", - "standard_name": "stratosphere_optical_thickness_due_to_volcanic_ambient_aerosol_particles", - "long_name": "Aerosol optical depth at 550 nm due to stratospheric volcanic aerosols", - "mipTable": "Eday", - "units": "1e-09" - }, - "msftyz": { - "CMOR_varname": "msftyz", - "standard_name": "ocean_y_overturning_mass_streamfunction", - "long_name": "Ocean Y Overturning Mass Streamfunction", - "mipTable": "Odec", - "units": "kg s-1" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Surface Air Temperature", - "mipTable": "ImonGre", - "units": "K" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "ImonGre", - "units": "K" - }, - "tsn": { - "CMOR_varname": "tsn", - "standard_name": "temperature_in_surface_snow", - "long_name": "Snow Internal Temperature", - "mipTable": "ImonGre", - "units": "K" - }, - "litemptop": { - "CMOR_varname": "litemptop", - "standard_name": "temperature_at_top_of_ice_sheet_model", - "long_name": "Temperature at top of ice sheet model", - "mipTable": "ImonGre", - "units": "K" - }, - "litempbotgr": { - "CMOR_varname": "litempbotgr", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of grounded ice sheet", - "mipTable": "ImonGre", - "units": "K" - }, - "litempbotfl": { - "CMOR_varname": "litempbotfl", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of floating ice shelf", - "mipTable": "ImonGre", - "units": "K" - }, - "acabf": { - "CMOR_varname": "acabf", - "standard_name": "land_ice_surface_specific_mass_balance_flux", - "long_name": "Surface Mass Balance flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "prra": { - "CMOR_varname": "prra", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux over Land Ice", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "snicem": { - "CMOR_varname": "snicem", - "standard_name": "surface_snow_and_ice_melt_flux", - "long_name": "Surface snow and ice melt flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "snm": { - "CMOR_varname": "snm", - "standard_name": "surface_snow_melt_flux", - "long_name": "Surface Snow Melt", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "icem": { - "CMOR_varname": "icem", - "standard_name": "land_ice_surface_melt_flux", - "long_name": "Surface ice melt flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "snicefreez": { - "CMOR_varname": "snicefreez", - "standard_name": "surface_snow_and_ice_refreezing_flux", - "long_name": "Surface snow and ice refreeze flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "mrroLi": { - "CMOR_varname": "mrroLi", - "standard_name": "land_ice_runoff_flux", - "long_name": "Land Ice Runoff Flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "ImonGre", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "ImonGre", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "ImonGre", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "ImonGre", - "units": "W m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "ImonGre", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "ImonGre", - "units": "W m-2" - }, - "libmassbfgr": { - "CMOR_varname": "libmassbfgr", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of grounded ice sheet", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "libmassbffl": { - "CMOR_varname": "libmassbffl", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of floating ice shelf", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "licalvf": { - "CMOR_varname": "licalvf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving", - "long_name": "Land ice calving flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "lifmassbf": { - "CMOR_varname": "lifmassbf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", - "long_name": "Land ice vertical front mass balance flux", - "mipTable": "ImonGre", - "units": "kg m-2 s-1" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "mipTable": "ImonGre", - "units": "m" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "snow cover fraction", - "mipTable": "ImonGre", - "units": "%" - }, - "tas": { - "CMOR_varname": "tas", - "standard_name": "air_temperature", - "long_name": "Surface Air Temperature", - "mipTable": "ImonAnt", - "units": "K" - }, - "ts": { - "CMOR_varname": "ts", - "standard_name": "surface_temperature", - "long_name": "Surface Temperature", - "mipTable": "ImonAnt", - "units": "K" - }, - "tsn": { - "CMOR_varname": "tsn", - "standard_name": "temperature_in_surface_snow", - "long_name": "Snow Internal Temperature", - "mipTable": "ImonAnt", - "units": "K" - }, - "litemptop": { - "CMOR_varname": "litemptop", - "standard_name": "temperature_at_top_of_ice_sheet_model", - "long_name": "Temperature at top of ice sheet model", - "mipTable": "ImonAnt", - "units": "K" - }, - "litempbotgr": { - "CMOR_varname": "litempbotgr", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of grounded ice sheet", - "mipTable": "ImonAnt", - "units": "K" - }, - "litempbotfl": { - "CMOR_varname": "litempbotfl", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of floating ice shelf", - "mipTable": "ImonAnt", - "units": "K" - }, - "acabf": { - "CMOR_varname": "acabf", - "standard_name": "land_ice_surface_specific_mass_balance_flux", - "long_name": "Surface Mass Balance flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "prra": { - "CMOR_varname": "prra", - "standard_name": "rainfall_flux", - "long_name": "Rainfall Flux over Land Ice", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "snicem": { - "CMOR_varname": "snicem", - "standard_name": "surface_snow_and_ice_melt_flux", - "long_name": "Surface snow and ice melt flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "snm": { - "CMOR_varname": "snm", - "standard_name": "surface_snow_melt_flux", - "long_name": "Surface Snow Melt", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "icem": { - "CMOR_varname": "icem", - "standard_name": "land_ice_surface_melt_flux", - "long_name": "Surface ice melt flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "snicefreez": { - "CMOR_varname": "snicefreez", - "standard_name": "surface_snow_and_ice_refreezing_flux", - "long_name": "Surface snow and ice refreeze flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "mrroLi": { - "CMOR_varname": "mrroLi", - "standard_name": "land_ice_runoff_flux", - "long_name": "Land Ice Runoff Flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "ImonAnt", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "ImonAnt", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "ImonAnt", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "ImonAnt", - "units": "W m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "ImonAnt", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "ImonAnt", - "units": "W m-2" - }, - "libmassbfgr": { - "CMOR_varname": "libmassbfgr", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of grounded ice sheet", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "libmassbffl": { - "CMOR_varname": "libmassbffl", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of floating ice shelf", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "licalvf": { - "CMOR_varname": "licalvf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving", - "long_name": "Land ice calving flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "lifmassbf": { - "CMOR_varname": "lifmassbf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", - "long_name": "Land ice vertical front mass balance flux", - "mipTable": "ImonAnt", - "units": "kg m-2 s-1" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "mipTable": "ImonAnt", - "units": "m" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "snow cover fraction", - "mipTable": "ImonAnt", - "units": "%" - }, - "hfgeoubed": { - "CMOR_varname": "hfgeoubed", - "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", - "long_name": "Geothermal Heat flux beneath land ice", - "mipTable": "IfxGre", - "units": "W m-2" - }, - "topg": { - "CMOR_varname": "topg", - "standard_name": "bedrock_altitude", - "long_name": "Bedrock Altitude", - "mipTable": "IfxGre", - "units": "m" - }, - "lithk": { - "CMOR_varname": "lithk", - "standard_name": "land_ice_thickness", - "long_name": "Ice Sheet Thickness", - "mipTable": "IfxGre", - "units": "m" - }, - "areacellg": { - "CMOR_varname": "areacellg", - "standard_name": "cell_area", - "long_name": "Grid-Cell Area for Ice Sheet Variables", - "mipTable": "IfxGre", - "units": "m2" - }, - "hfgeoubed": { - "CMOR_varname": "hfgeoubed", - "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", - "long_name": "Geothermal Heat flux beneath land ice", - "mipTable": "IfxAnt", - "units": "W m-2" - }, - "topg": { - "CMOR_varname": "topg", - "standard_name": "bedrock_altitude", - "long_name": "Bedrock Altitude", - "mipTable": "IfxAnt", - "units": "m" - }, - "lithk": { - "CMOR_varname": "lithk", - "standard_name": "land_ice_thickness", - "long_name": "Ice Sheet Thickness", - "mipTable": "IfxAnt", - "units": "m" - }, - "areacellg": { - "CMOR_varname": "areacellg", - "standard_name": "cell_area", - "long_name": "Grid-Cell Area for Ice Sheet Variables", - "mipTable": "IfxAnt", - "units": "m2" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "mipTable": "IyrGre", - "units": "m" - }, - "lithk": { - "CMOR_varname": "lithk", - "standard_name": "land_ice_thickness", - "long_name": "Ice Sheet Thickness", - "mipTable": "IyrGre", - "units": "m" - }, - "modelCellAreai": { - "CMOR_varname": "modelCellAreai", - "standard_name": "cell_area", - "long_name": "The cell area of the ice sheet model.", - "mipTable": "IyrGre", - "units": "m2" - }, - "topg": { - "CMOR_varname": "topg", - "standard_name": "bedrock_altitude", - "long_name": "Bedrock Altitude", - "mipTable": "IyrGre", - "units": "m" - }, - "litemptop": { - "CMOR_varname": "litemptop", - "standard_name": "temperature_at_top_of_ice_sheet_model", - "long_name": "Temperature at top of ice sheet model", - "mipTable": "IyrGre", - "units": "K" - }, - "litempbotgr": { - "CMOR_varname": "litempbotgr", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of grounded ice sheet", - "mipTable": "IyrGre", - "units": "K" - }, - "litempbotfl": { - "CMOR_varname": "litempbotfl", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of floating ice shelf", - "mipTable": "IyrGre", - "units": "K" - }, - "acabf": { - "CMOR_varname": "acabf", - "standard_name": "land_ice_surface_specific_mass_balance_flux", - "long_name": "Surface Mass Balance flux", - "mipTable": "IyrGre", - "units": "kg m-2 s-1" - }, - "libmassbfgr": { - "CMOR_varname": "libmassbfgr", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of grounded ice sheet", - "mipTable": "IyrGre", - "units": "kg m-2 s-1" - }, - "libmassbffl": { - "CMOR_varname": "libmassbffl", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of floating ice shelf", - "mipTable": "IyrGre", - "units": "kg m-2 s-1" - }, - "licalvf": { - "CMOR_varname": "licalvf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving", - "long_name": "Land ice calving flux", - "mipTable": "IyrGre", - "units": "kg m-2 s-1" - }, - "lifmassbf": { - "CMOR_varname": "lifmassbf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", - "long_name": "Land ice vertical front mass balance flux", - "mipTable": "IyrGre", - "units": "kg m-2 s-1" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "snow cover fraction", - "mipTable": "IyrGre", - "units": "%" - }, - "sftgif": { - "CMOR_varname": "sftgif", - "standard_name": "land_ice_area_fraction", - "long_name": "Fraction of Grid Cell Covered with Glacier", - "mipTable": "IyrGre", - "units": "%" - }, - "sftgrf": { - "CMOR_varname": "sftgrf", - "standard_name": "grounded_ice_sheet_area_fraction", - "long_name": "Grounded Ice Sheet Area Fraction", - "mipTable": "IyrGre", - "units": "%" - }, - "sftflf": { - "CMOR_varname": "sftflf", - "standard_name": "floating_ice_shelf_area_fraction", - "long_name": "Floating Ice Shelf Area Fraction", - "mipTable": "IyrGre", - "units": "%" - }, - "xvelsurf": { - "CMOR_varname": "xvelsurf", - "standard_name": "land_ice_surface_x_velocity", - "long_name": "X-component of land ice surface velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "yvelsurf": { - "CMOR_varname": "yvelsurf", - "standard_name": "land_ice_surface_y_velocity", - "long_name": "Y-component of land ice surface velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "zvelsurf": { - "CMOR_varname": "zvelsurf", - "standard_name": "land_ice_surface_upward_velocity", - "long_name": "Upward component of land ice surface velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "xvelbase": { - "CMOR_varname": "xvelbase", - "standard_name": "land_ice_basal_x_velocity", - "long_name": "X-component of land ice basal velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "yvelbase": { - "CMOR_varname": "yvelbase", - "standard_name": "land_ice_basal_y_velocity", - "long_name": "Y-component of land ice basal velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "zvelbase": { - "CMOR_varname": "zvelbase", - "standard_name": "land_ice_basal_upward_velocity", - "long_name": "Upward-component of land ice basal velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "xvelmean": { - "CMOR_varname": "xvelmean", - "standard_name": "land_ice_vertical_mean_x_velocity", - "long_name": "X-component of land ice vertical mean velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "yvelmean": { - "CMOR_varname": "yvelmean", - "standard_name": "land_ice_vertical_mean_y_velocity", - "long_name": "Y-component of land ice vertical mean velocity", - "mipTable": "IyrGre", - "units": "m s-1" - }, - "strbasemag": { - "CMOR_varname": "strbasemag", - "standard_name": "land_ice_basal_drag", - "long_name": "Land Ice Basal Drag", - "mipTable": "IyrGre", - "units": "Pa" - }, - "hfgeoubed": { - "CMOR_varname": "hfgeoubed", - "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", - "long_name": "Geothermal Heat flux beneath land ice", - "mipTable": "IyrGre", - "units": "W m-2" - }, - "lim": { - "CMOR_varname": "lim", - "standard_name": "land_ice_mass", - "long_name": "Ice sheet mass", - "mipTable": "IyrGre", - "units": "kg" - }, - "limnsw": { - "CMOR_varname": "limnsw", - "standard_name": "land_ice_mass_not_displacing_sea_water", - "long_name": "Ice sheet mass that does not displace sea water", - "mipTable": "IyrGre", - "units": "kg" - }, - "iareagr": { - "CMOR_varname": "iareagr", - "standard_name": "grounded_ice_sheet_area", - "long_name": "Area covered by grounded ice sheet", - "mipTable": "IyrGre", - "units": "m2" - }, - "iareafl": { - "CMOR_varname": "iareafl", - "standard_name": "floating_ice_shelf_area", - "long_name": "Area covered by floating ice shelves", - "mipTable": "IyrGre", - "units": "m2" - }, - "tendacabf": { - "CMOR_varname": "tendacabf", - "standard_name": "tendency_of_land_ice_mass_due_to_surface_mass_balance", - "long_name": "Total surface mass balance flux", - "mipTable": "IyrGre", - "units": "kg s-1" - }, - "tendlibmassbf": { - "CMOR_varname": "tendlibmassbf", - "standard_name": "tendency_of_land_ice_mass_due_to_basal_mass_balance", - "long_name": "Total basal mass balance flux", - "mipTable": "IyrGre", - "units": "kg s-1" - }, - "tendlicalvf": { - "CMOR_varname": "tendlicalvf", - "standard_name": "tendency_of_land_ice_mass_due_to_calving", - "long_name": "Total calving flux", - "mipTable": "IyrGre", - "units": "kg s-1" - }, - "orog": { - "CMOR_varname": "orog", - "standard_name": "surface_altitude", - "long_name": "Surface Altitude", - "mipTable": "IyrAnt", - "units": "m" - }, - "lithk": { - "CMOR_varname": "lithk", - "standard_name": "land_ice_thickness", - "long_name": "Ice Sheet Thickness", - "mipTable": "IyrAnt", - "units": "m" - }, - "modelCellAreai": { - "CMOR_varname": "modelCellAreai", - "standard_name": "cell_area", - "long_name": "The cell area of the ice sheet model.", - "mipTable": "IyrAnt", - "units": "m2" - }, - "topg": { - "CMOR_varname": "topg", - "standard_name": "bedrock_altitude", - "long_name": "Bedrock Altitude", - "mipTable": "IyrAnt", - "units": "m" - }, - "litemptop": { - "CMOR_varname": "litemptop", - "standard_name": "temperature_at_top_of_ice_sheet_model", - "long_name": "Temperature at top of ice sheet model", - "mipTable": "IyrAnt", - "units": "K" - }, - "litempbotgr": { - "CMOR_varname": "litempbotgr", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of grounded ice sheet", - "mipTable": "IyrAnt", - "units": "K" - }, - "litempbotfl": { - "CMOR_varname": "litempbotfl", - "standard_name": "land_ice_basal_temperature", - "long_name": "Basal temperature of floating ice shelf", - "mipTable": "IyrAnt", - "units": "K" - }, - "acabf": { - "CMOR_varname": "acabf", - "standard_name": "land_ice_surface_specific_mass_balance_flux", - "long_name": "Surface Mass Balance flux", - "mipTable": "IyrAnt", - "units": "kg m-2 s-1" - }, - "libmassbfgr": { - "CMOR_varname": "libmassbfgr", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of grounded ice sheet", - "mipTable": "IyrAnt", - "units": "kg m-2 s-1" - }, - "libmassbffl": { - "CMOR_varname": "libmassbffl", - "standard_name": "land_ice_basal_specific_mass_balance_flux", - "long_name": "Basal specific mass balance flux of floating ice shelf", - "mipTable": "IyrAnt", - "units": "kg m-2 s-1" - }, - "licalvf": { - "CMOR_varname": "licalvf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving", - "long_name": "Land ice calving flux", - "mipTable": "IyrAnt", - "units": "kg m-2 s-1" - }, - "lifmassbf": { - "CMOR_varname": "lifmassbf", - "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", - "long_name": "Land ice vertical front mass balance flux", - "mipTable": "IyrAnt", - "units": "kg m-2 s-1" - }, - "snc": { - "CMOR_varname": "snc", - "standard_name": "surface_snow_area_fraction", - "long_name": "snow cover fraction", - "mipTable": "IyrAnt", - "units": "%" - }, - "sftgif": { - "CMOR_varname": "sftgif", - "standard_name": "land_ice_area_fraction", - "long_name": "Fraction of Grid Cell Covered with Glacier", - "mipTable": "IyrAnt", - "units": "%" - }, - "sftgrf": { - "CMOR_varname": "sftgrf", - "standard_name": "grounded_ice_sheet_area_fraction", - "long_name": "Grounded Ice Sheet Area Fraction", - "mipTable": "IyrAnt", - "units": "%" - }, - "sftflf": { - "CMOR_varname": "sftflf", - "standard_name": "floating_ice_shelf_area_fraction", - "long_name": "Floating Ice Shelf Area Fraction", - "mipTable": "IyrAnt", - "units": "%" - }, - "xvelsurf": { - "CMOR_varname": "xvelsurf", - "standard_name": "land_ice_surface_x_velocity", - "long_name": "X-component of land ice surface velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "yvelsurf": { - "CMOR_varname": "yvelsurf", - "standard_name": "land_ice_surface_y_velocity", - "long_name": "Y-component of land ice surface velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "zvelsurf": { - "CMOR_varname": "zvelsurf", - "standard_name": "land_ice_surface_upward_velocity", - "long_name": "Upward component of land ice surface velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "xvelbase": { - "CMOR_varname": "xvelbase", - "standard_name": "land_ice_basal_x_velocity", - "long_name": "X-component of land ice basal velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "yvelbase": { - "CMOR_varname": "yvelbase", - "standard_name": "land_ice_basal_y_velocity", - "long_name": "Y-component of land ice basal velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "zvelbase": { - "CMOR_varname": "zvelbase", - "standard_name": "land_ice_basal_upward_velocity", - "long_name": "Upward-component of land ice basal velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "xvelmean": { - "CMOR_varname": "xvelmean", - "standard_name": "land_ice_vertical_mean_x_velocity", - "long_name": "X-component of land ice vertical mean velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "yvelmean": { - "CMOR_varname": "yvelmean", - "standard_name": "land_ice_vertical_mean_y_velocity", - "long_name": "Y-component of land ice vertical mean velocity", - "mipTable": "IyrAnt", - "units": "m s-1" - }, - "strbasemag": { - "CMOR_varname": "strbasemag", - "standard_name": "land_ice_basal_drag", - "long_name": "Land Ice Basal Drag", - "mipTable": "IyrAnt", - "units": "Pa" - }, - "hfgeoubed": { - "CMOR_varname": "hfgeoubed", - "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", - "long_name": "Geothermal Heat flux beneath land ice", - "mipTable": "IyrAnt", - "units": "W m-2" - }, - "lim": { - "CMOR_varname": "lim", - "standard_name": "land_ice_mass", - "long_name": "Ice sheet mass", - "mipTable": "IyrAnt", - "units": "kg" - }, - "limnsw": { - "CMOR_varname": "limnsw", - "standard_name": "land_ice_mass_not_displacing_sea_water", - "long_name": "Ice sheet mass that does not displace sea water", - "mipTable": "IyrAnt", - "units": "kg" - }, - "iareagr": { - "CMOR_varname": "iareagr", - "standard_name": "grounded_ice_sheet_area", - "long_name": "Area covered by grounded ice sheet", - "mipTable": "IyrAnt", - "units": "m2" - }, - "iareafl": { - "CMOR_varname": "iareafl", - "standard_name": "floating_ice_shelf_area", - "long_name": "Area covered by floating ice shelves", - "mipTable": "IyrAnt", - "units": "m2" - }, - "tendacabf": { - "CMOR_varname": "tendacabf", - "standard_name": "tendency_of_land_ice_mass_due_to_surface_mass_balance", - "long_name": "Total surface mass balance flux", - "mipTable": "IyrAnt", - "units": "kg s-1" - }, - "tendlibmassbf": { - "CMOR_varname": "tendlibmassbf", - "standard_name": "tendency_of_land_ice_mass_due_to_basal_mass_balance", - "long_name": "Total basal mass balance flux", - "mipTable": "IyrAnt", - "units": "kg s-1" - }, - "tendlicalvf": { - "CMOR_varname": "tendlicalvf", - "standard_name": "tendency_of_land_ice_mass_due_to_calving", - "long_name": "Total calving flux", - "mipTable": "IyrAnt", - "units": "kg s-1" - }, - "o3": { - "CMOR_varname": "o3", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Ozone volume mixing ratio", - "mipTable": "E3hrPt", - "units": "mol mol-1" - }, - "rls": { - "CMOR_varname": "rls", - "standard_name": "surface_net_downward_longwave_flux", - "long_name": "Net Longwave Surface Radiation", - "mipTable": "day", - "units": "W m-2" - }, - "ps": { - "CMOR_varname": "ps", - "standard_name": "surface_air_pressure", - "long_name": "Surface Pressure", - "mipTable": "CFmon", - "units": "Pa" - }, - "pp": { - "CMOR_varname": "pp", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", - "long_name": "Primary Carbon Production by Total Phytoplankton", - "mipTable": "Omon", - "units": "mol m-3 s-1" - }, - "volcello": { - "CMOR_varname": "volcello", - "standard_name": "ocean_volume", - "long_name": "Ocean Grid-Cell Volume", - "mipTable": "Omon", - "units": "m3" - }, - "clivi": { - "CMOR_varname": "clivi", - "standard_name": "atmosphere_mass_content_of_cloud_ice", - "long_name": "Ice Water Path", - "mipTable": "CF3hr", - "units": "kg m-2" - }, - "clt": { - "CMOR_varname": "clt", - "standard_name": "cloud_area_fraction", - "long_name": "Total Cloud Fraction", - "mipTable": "CF3hr", - "units": "%" - }, - "clwvi": { - "CMOR_varname": "clwvi", - "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", - "long_name": "Condensed Water Path", - "mipTable": "CF3hr", - "units": "kg m-2" - }, - "hfls": { - "CMOR_varname": "hfls", - "standard_name": "surface_upward_latent_heat_flux", - "long_name": "Surface Upward Latent Heat Flux", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "hfss": { - "CMOR_varname": "hfss", - "standard_name": "surface_upward_sensible_heat_flux", - "long_name": "Surface Upward Sensible Heat Flux", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "pr": { - "CMOR_varname": "pr", - "standard_name": "precipitation_flux", - "long_name": "Precipitation", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prc": { - "CMOR_varname": "prc", - "standard_name": "convective_precipitation_flux", - "long_name": "Convective Precipitation", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prsn": { - "CMOR_varname": "prsn", - "standard_name": "snowfall_flux", - "long_name": "Snowfall Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "prw": { - "CMOR_varname": "prw", - "standard_name": "atmosphere_mass_content_of_water_vapor", - "long_name": "Water Vapor Path", - "mipTable": "CF3hr", - "units": "kg m-2" - }, - "rlds": { - "CMOR_varname": "rlds", - "standard_name": "surface_downwelling_longwave_flux_in_air", - "long_name": "Surface Downwelling Longwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rldscs": { - "CMOR_varname": "rldscs", - "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rlus": { - "CMOR_varname": "rlus", - "standard_name": "surface_upwelling_longwave_flux_in_air", - "long_name": "Surface Upwelling Longwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rlut": { - "CMOR_varname": "rlut", - "standard_name": "toa_outgoing_longwave_flux", - "long_name": "TOA Outgoing Longwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rlutcs": { - "CMOR_varname": "rlutcs", - "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rsds": { - "CMOR_varname": "rsds", - "standard_name": "surface_downwelling_shortwave_flux_in_air", - "long_name": "Surface Downwelling Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rsdscs": { - "CMOR_varname": "rsdscs", - "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", - "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rsdt": { - "CMOR_varname": "rsdt", - "standard_name": "toa_incoming_shortwave_flux", - "long_name": "TOA Incident Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rsus": { - "CMOR_varname": "rsus", - "standard_name": "surface_upwelling_shortwave_flux_in_air", - "long_name": "Surface Upwelling Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rsut": { - "CMOR_varname": "rsut", - "standard_name": "toa_outgoing_shortwave_flux", - "long_name": "TOA Outgoing Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "rsutcs": { - "CMOR_varname": "rsutcs", - "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", - "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "sfcWind": { - "CMOR_varname": "sfcWind", - "standard_name": "wind_speed", - "long_name": "Near-Surface Wind Speed", - "mipTable": "CF3hr", - "units": "m s-1" - }, - "co23D": { - "CMOR_varname": "co23D", - "standard_name": "mass_fraction_of_carbon_dioxide_tracer_in_air", - "long_name": "3D field of transported CO2", - "mipTable": "Emon", - "units": "kg kg-1" - }, - "cSoilAbove1m": { - "CMOR_varname": "cSoilAbove1m", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon Mass in Soil Pool above 1m Depth", - "mipTable": "Emon", - "units": "kg m-2" - }, - "fNfert": { - "CMOR_varname": "fNfert", - "standard_name": "tendency_of_soil_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fertilization", - "long_name": "total N added for cropland fertilisation (artificial and manure)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fNAnthDisturb": { - "CMOR_varname": "fNAnthDisturb", - "standard_name": "tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_anthropogenic_emission", - "long_name": "nitrogen mass flux out of land due to any human activity", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "pastureFracC3": { - "CMOR_varname": "pastureFracC3", - "standard_name": "area_fraction", - "long_name": "C3 Pasture Area Percentage", - "mipTable": "Emon", - "units": "%" - }, - "pastureFracC4": { - "CMOR_varname": "pastureFracC4", - "standard_name": "area_fraction", - "long_name": "C4 Pasture Area Percentage", - "mipTable": "Emon", - "units": "%" - }, - "cVegTree": { - "CMOR_varname": "cVegTree", - "standard_name": "vegetation_carbon_content", - "long_name": "Carbon mass in vegetation on tree tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cVegShrub": { - "CMOR_varname": "cVegShrub", - "standard_name": "vegetation_carbon_content", - "long_name": "Carbon mass in vegetation on shrub tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cVegGrass": { - "CMOR_varname": "cVegGrass", - "standard_name": "vegetation_carbon_content", - "long_name": "Carbon mass in vegetation on grass tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cLitterTree": { - "CMOR_varname": "cLitterTree", - "standard_name": "litter_mass_content_of_carbon", - "long_name": "Carbon mass in litter on tree tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cLitterShrub": { - "CMOR_varname": "cLitterShrub", - "standard_name": "litter_mass_content_of_carbon", - "long_name": "Carbon mass in litter on shrub tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cLitterGrass": { - "CMOR_varname": "cLitterGrass", - "standard_name": "litter_mass_content_of_carbon", - "long_name": "Carbon mass in litter on grass tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cSoilTree": { - "CMOR_varname": "cSoilTree", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon mass in soil on tree tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cSoilShrub": { - "CMOR_varname": "cSoilShrub", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon mass in soil on shrub tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cSoilGrass": { - "CMOR_varname": "cSoilGrass", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon mass in soil on grass tiles", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cSoilLevels": { - "CMOR_varname": "cSoilLevels", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon mass in each model soil level (summed over all soil carbon pools in that level)", - "mipTable": "Emon", - "units": "kg m-2" - }, - "cSoilPools": { - "CMOR_varname": "cSoilPools", - "standard_name": "soil_mass_content_of_carbon", - "long_name": "Carbon mass in each model soil pool (summed over vertical levels)", - "mipTable": "Emon", - "units": "kg m-2" - }, - "tSoilPools": { - "CMOR_varname": "tSoilPools", - "standard_name": "soil_pool_carbon_decay_rate", - "long_name": "turnover rate of each model soil carbon pool", - "mipTable": "Emon", - "units": "s-1" - }, - "fVegSoilSenescence": { - "CMOR_varname": "fVegSoilSenescence", - "standard_name": "mass_flux_of_carbon_into_soil_from_vegetation_due_to_senescence", - "long_name": "Total Carbon Mass Flux from Vegetation to Soil as a result of leaf", - "mipTable": "branch", - "units": "and root senescence" - }, - "fVegSoilMortality": { - "CMOR_varname": "fVegSoilMortality", - "standard_name": "mass_flux_of_carbon_into_soil_from_vegetation_due_to_mortality", - "long_name": "Total Carbon Mass Flux from Vegetation to Soil as a result of mortality", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nppStem": { - "CMOR_varname": "nppStem", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_stems", - "long_name": "net primary production allcoated to stem", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nppOther": { - "CMOR_varname": "nppOther", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_miscellaneous_living_matter", - "long_name": "net primary production allcoated to other pools (not leaves stem or roots)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raOther": { - "CMOR_varname": "raOther", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_miscellaneous_living_matter", - "long_name": "Total respiration from other pools (not leaves stem or roots)", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "gppTree": { - "CMOR_varname": "gppTree", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "gross primary production on tree tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "gppShrub": { - "CMOR_varname": "gppShrub", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "gross primary production on Shrub tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "gppGrass": { - "CMOR_varname": "gppGrass", - "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "gross primary production on grass tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nppTree": { - "CMOR_varname": "nppTree", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "net primary production on tree tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nppShrub": { - "CMOR_varname": "nppShrub", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "net primary production on Shrub tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "nppGrass": { - "CMOR_varname": "nppGrass", - "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", - "long_name": "net primary production on grass tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raTree": { - "CMOR_varname": "raTree", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", - "long_name": "autotrophic respiration on tree tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raShrub": { - "CMOR_varname": "raShrub", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", - "long_name": "autotrophic respiration on Shrub tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "raGrass": { - "CMOR_varname": "raGrass", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", - "long_name": "autotrophic respiration on grass tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhTree": { - "CMOR_varname": "rhTree", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", - "long_name": "heterotrophic respiration on tree tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhShrub": { - "CMOR_varname": "rhShrub", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", - "long_name": "heterotrophic respiration on Shrub tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "rhGrass": { - "CMOR_varname": "rhGrass", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", - "long_name": "heterotrophic respiration on grass tiles", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "vegHeightPasture": { - "CMOR_varname": "vegHeightPasture", - "standard_name": "canopy_height", - "long_name": "Vegetation height averaged over the pasture fraction of a grid cell.", - "mipTable": "Emon", - "units": "m" - }, - "ppdiat": { - "CMOR_varname": "ppdiat", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", - "long_name": "Net Primary Organic Carbon Production by Diatoms", - "mipTable": "Emon", - "units": "mol m-3 s-1" - }, - "ppdiaz": { - "CMOR_varname": "ppdiaz", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", - "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", - "mipTable": "Emon", - "units": "mol m-3 s-1" - }, - "ppcalc": { - "CMOR_varname": "ppcalc", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", - "mipTable": "Emon", - "units": "mol m-3 s-1" - }, - "pppico": { - "CMOR_varname": "pppico", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", - "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", - "mipTable": "Emon", - "units": "mol m-3 s-1" - }, - "ppmisc": { - "CMOR_varname": "ppmisc", - "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", - "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", - "mipTable": "Emon", - "units": "mol m-3 s-1" - }, - "expn": { - "CMOR_varname": "expn", - "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", - "long_name": "Sinking Particulate Organic Nitrogen Flux", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "expp": { - "CMOR_varname": "expp", - "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", - "long_name": "Sinking Particulate Organic Phosphorus Flux", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "expfe": { - "CMOR_varname": "expfe", - "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", - "long_name": "Sinking Particulate Iron Flux", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "expsi": { - "CMOR_varname": "expsi", - "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", - "long_name": "Sinking Particulate Silica Flux", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "expcalc": { - "CMOR_varname": "expcalc", - "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Calcite Flux", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "exparag": { - "CMOR_varname": "exparag", - "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", - "long_name": "Sinking Aragonite Flux", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "fgco2nat": { - "CMOR_varname": "fgco2nat", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Natural CO2", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fgco2abio": { - "CMOR_varname": "fgco2abio", - "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Abiotic CO2", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fg14co2abio": { - "CMOR_varname": "fg14co2abio", - "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", - "long_name": "Surface Downward Flux of Abiotic 14CO2", - "mipTable": "Emon", - "units": "kg m-2 s-1" - }, - "fddtalk": { - "CMOR_varname": "fddtalk", - "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", - "long_name": "Rate of Change of Total Alkalinity", - "mipTable": "Emon", - "units": "mol m-2 s-1" - }, - "volcello": { - "CMOR_varname": "volcello", - "standard_name": "ocean_volume", - "long_name": "Ocean Grid-Cell Volume", - "mipTable": "Oyr", - "units": "m3" - }, - "ci": { - "CMOR_varname": "ci", - "standard_name": "convection_time_fraction", - "long_name": "Fraction of Time Convection Occurs", - "mipTable": "CF3hr", - "units": "1" - }, - "evspsbl": { - "CMOR_varname": "evspsbl", - "standard_name": "water_evapotranspiration_flux", - "long_name": "Evaporation including Sublimation and Transpiration", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "hurs": { - "CMOR_varname": "hurs", - "standard_name": "relative_humidity", - "long_name": "Near-Surface Relative Humidity", - "mipTable": "CF3hr", - "units": "%" - }, - "rtmt": { - "CMOR_varname": "rtmt", - "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", - "long_name": "Net Downward Flux at Top of Model", - "mipTable": "CF3hr", - "units": "W m-2" - }, - "sbl": { - "CMOR_varname": "sbl", - "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", - "long_name": "Surface Snow and Ice Sublimation Flux", - "mipTable": "CF3hr", - "units": "kg m-2 s-1" - }, - "sci": { - "CMOR_varname": "sci", - "standard_name": "shallow_convection_time_fraction", - "long_name": "Fraction of Time Shallow Convection Occurs", - "mipTable": "CF3hr", - "units": "1" - }, - "tauu": { - "CMOR_varname": "tauu", - "standard_name": "surface_downward_eastward_stress", - "long_name": "Surface Downward Eastward Wind Stress", - "mipTable": "CF3hr", - "units": "Pa" - }, - "tauv": { - "CMOR_varname": "tauv", - "standard_name": "surface_downward_northward_stress", - "long_name": "Surface Downward Northward Wind Stress", - "mipTable": "CF3hr", - "units": "Pa" - }, - "wsgmax10m": { - "CMOR_varname": "wsgmax10m", - "standard_name": "wind_speed_of_gust", - "long_name": "Maximum Wind Speed of Gust at 10m", - "mipTable": "6hrPlev", - "units": "m s-1" - }, - "ua": { - "CMOR_varname": "ua", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "AERmonZ", - "units": "m s-1" - }, - "swsffluxaero": { - "CMOR_varname": "swsffluxaero", - "standard_name": "surface_downwelling_shortwave_flux_in_air_due_to_volcanic_ambient_aerosol_particles", - "long_name": "Shortwave heating rate due to volcanic aerosols", - "mipTable": "6hrPlevPt", - "units": "W m-2" - }, - "jpdftaureicemodis": { - "CMOR_varname": "jpdftaureicemodis", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "MODIS Optical Thickness-Particle Size joint distribution", - "mipTable": "ice", - "units": "E3hrPt" - }, - "hus27": { - "CMOR_varname": "hus27", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "lwtoafluxaerocs": { - "CMOR_varname": "lwtoafluxaerocs", - "standard_name": "toa_outgoing_longwave_flux_due_to_volcanic_ambient_aerosol_particles_assuming_clear_sky", - "long_name": "Longwave flux due to volcanic aerosols at TOA under clear sky", - "mipTable": "6hrPlevPt", - "units": "W m-2" - }, - "rainmxrat27": { - "CMOR_varname": "rainmxrat27", - "standard_name": "mass_fraction_of_rain_in_air", - "long_name": "rain_mixing_ratio", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "lwsffluxaero": { - "CMOR_varname": "lwsffluxaero", - "standard_name": "surface_downwelling_longwave_flux_in_air_due_to_volcanic_ambient_aerosol_particles", - "long_name": "Longwave flux due to volcanic aerosols at the surface", - "mipTable": "6hrPlevPt", - "units": "W m-2" - }, - "clmisr": { - "CMOR_varname": "clmisr", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", - "mipTable": "E3hrPt", - "units": "%" - }, - "ta7h": { - "CMOR_varname": "ta7h", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "E3hrPt", - "units": "K" - }, - "jpdftaureliqmodis": { - "CMOR_varname": "jpdftaureliqmodis", - "standard_name": "cloud_area_fraction_in_atmosphere_layer", - "long_name": "MODIS Optical Thickness-Particle Size joint distribution", - "mipTable": "liquid", - "units": "E3hrPt" - }, - "ua7h": { - "CMOR_varname": "ua7h", - "standard_name": "eastward_wind", - "long_name": "Eastward Wind", - "mipTable": "E3hrPt", - "units": "m s-1" - }, - "ta27": { - "CMOR_varname": "ta27", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "6hrPlevPt", - "units": "K" - }, - "va7h": { - "CMOR_varname": "va7h", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "E3hrPt", - "units": "m s-1" - }, - "cldwatmxrat27": { - "CMOR_varname": "cldwatmxrat27", - "standard_name": "cloud_liquid_water_mixing_ratio", - "long_name": "Cloud Water Mixing Ratio", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "swtoafluxaerocs": { - "CMOR_varname": "swtoafluxaerocs", - "standard_name": "toa_outgoing_shortwave_flux_due_to_volcanic_ambient_aerosol_particles_assuming_clear_sky", - "long_name": "Shortwave flux due to volcanic aerosols at TOA under clear sky", - "mipTable": "6hrPlevPt", - "units": "W m-2" - }, - "sltbasin": { - "CMOR_varname": "sltbasin", - "standard_name": "northward_ocean_salt_transport", - "long_name": "Northward Ocean Salt Transport", - "mipTable": "EmonZ", - "units": "kg s-1" - }, - "hus7h": { - "CMOR_varname": "hus7h", - "standard_name": "specific_humidity", - "long_name": "Specific Humidity", - "mipTable": "E3hrPt", - "units": "1" - }, - "cldicemxrat27": { - "CMOR_varname": "cldicemxrat27", - "standard_name": "cloud_ice_mixing_ratio", - "long_name": "Cloud Ice Mixing Ratio", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "grplmxrat27": { - "CMOR_varname": "grplmxrat27", - "standard_name": "mass_fraction_of_graupel_in_air", - "long_name": "Graupel Mixing Ratio", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "snowmxrat27": { - "CMOR_varname": "snowmxrat27", - "standard_name": "mass_fraction_of_snow_in_air", - "long_name": "snow_mixing_ratio", - "mipTable": "6hrPlevPt", - "units": "1" - }, - "wilt": { - "CMOR_varname": "wilt", - "standard_name": "volume_fraction_of_condensed_water_in_soil_at_wilting_point", - "long_name": "Wilting Point", - "mipTable": "Efx", - "units": "%" - }, - "fldcapacity": { - "CMOR_varname": "fldcapacity", - "standard_name": "volume_fraction_of_condensed_water_in_soil_at_field_capacity", - "long_name": "Field Capacity", - "mipTable": "Efx", - "units": "%" - }, - "ksat": { - "CMOR_varname": "ksat", - "standard_name": "soil_hydraulic_conductivity_at_saturation", - "long_name": "Saturated Hydraulic Conductivity", - "mipTable": "Efx", - "units": "1e-6 m s-1" - }, - "rootdsl": { - "CMOR_varname": "rootdsl", - "standard_name": "root_mass_content_of_carbon", - "long_name": "Root Distribution", - "mipTable": "Efx", - "units": "kg m-2" - }, - "slthick": { - "CMOR_varname": "slthick", - "standard_name": "cell_thickness", - "long_name": "Thickness of Soil Layers", - "mipTable": "Efx", - "units": "m" - }, - "hfdsnb": { - "CMOR_varname": "hfdsnb", - "standard_name": "downward_heat_flux_at_ground_level_in_snow", - "long_name": "Downward heat flux at snow base", - "mipTable": "Eday", - "units": "W m-2" - }, - "hursminCrop": { - "CMOR_varname": "hursminCrop", - "standard_name": "relative_humidity", - "long_name": "Daily Minimum Near-Surface Relative Humidity over Crop Tile", - "mipTable": "Emon", - "units": "%" - }, - "hursminCrop": { - "CMOR_varname": "hursminCrop", - "standard_name": "relative_humidity", - "long_name": "Daily Minimum Near-Surface Relative Humidity over Crop Tile", - "mipTable": "Eday", - "units": "%" - }, - "treeFrac": { - "CMOR_varname": "treeFrac", - "standard_name": "area_fraction", - "long_name": "Tree Cover Fraction", - "mipTable": "Eyr", - "units": "%" - }, - "grassFrac": { - "CMOR_varname": "grassFrac", - "standard_name": "area_fraction", - "long_name": "Natural Grass Area Percentage", - "mipTable": "Eyr", - "units": "%" - }, - "shrubFrac": { - "CMOR_varname": "shrubFrac", - "standard_name": "area_fraction", - "long_name": "Percentage Cover by Shrub", - "mipTable": "Eyr", - "units": "%" - }, - "cropFrac": { - "CMOR_varname": "cropFrac", - "standard_name": "area_fraction", - "long_name": "Percentage Crop Cover", - "mipTable": "Eyr", - "units": "%" - }, - "vegFrac": { - "CMOR_varname": "vegFrac", - "standard_name": "area_fraction", - "long_name": "Total vegetated percentage cover", - "mipTable": "Eyr", - "units": "%" - }, - "baresoilFrac": { - "CMOR_varname": "baresoilFrac", - "standard_name": "area_fraction", - "long_name": "Bare Soil Percentage", - "mipTable": "Eyr", - "units": "%" - }, - "residualFrac": { - "CMOR_varname": "residualFrac", - "standard_name": "area_fraction", - "long_name": "Percentage of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", - "mipTable": "Eyr", - "units": "%" - }, - "va": { - "CMOR_varname": "va", - "standard_name": "northward_wind", - "long_name": "Northward Wind", - "mipTable": "AERmonZ", - "units": "m s-1" - }, - "n2o": { - "CMOR_varname": "n2o", - "standard_name": "mole_fraction_of_nitrous_oxide_in_air", - "long_name": "N2O volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "vt100": { - "CMOR_varname": "vt100", - "standard_name": "northward_heat_flux_in_air_due_to_eddy_advection", - "long_name": "Northward heat flux due to eddies", - "mipTable": "AERmonZ", - "units": "W m-2" - }, - "bry": { - "CMOR_varname": "bry", - "standard_name": "mole_fraction_of_inorganic_bromine_in_air", - "long_name": "Total inorganic bromine volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "oh": { - "CMOR_varname": "oh", - "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", - "long_name": "OH volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "zg": { - "CMOR_varname": "zg", - "standard_name": "geopotential_height", - "long_name": "Geopotential Height", - "mipTable": "AERmonZ", - "units": "m" - }, - "noy": { - "CMOR_varname": "noy", - "standard_name": "mole_fraction_of_noy_expressed_as_nitrogen_in_air", - "long_name": "Total reactive nitrogen volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "hno3": { - "CMOR_varname": "hno3", - "standard_name": "mole_fraction_of_nitric_acid_in_air", - "long_name": "HNO3 volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "h2o": { - "CMOR_varname": "h2o", - "standard_name": "mass_fraction_of_water_in_air", - "long_name": "Mass Fraction of Water", - "mipTable": "AERmonZ", - "units": "1" - }, - "ch4": { - "CMOR_varname": "ch4", - "standard_name": "mole_fraction_of_methane_in_air", - "long_name": "CH4 volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "cly": { - "CMOR_varname": "cly", - "standard_name": "mole_fraction_of_inorganic_chlorine_in_air", - "long_name": "Total inorganic chlorine volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "ho2": { - "CMOR_varname": "ho2", - "standard_name": "mole_fraction_of_hydroperoxyl_radical_in_air", - "long_name": "HO2 volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "ta": { - "CMOR_varname": "ta", - "standard_name": "air_temperature", - "long_name": "Air Temperature", - "mipTable": "AERmonZ", - "units": "K" - }, - "o3": { - "CMOR_varname": "o3", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Ozone volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "hcl": { - "CMOR_varname": "hcl", - "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", - "long_name": "HCl volume mixing ratio", - "mipTable": "AERmonZ", - "units": "mol mol-1" - }, - "sfo3max": { - "CMOR_varname": "sfo3max", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "daily maximum O3 volume mixing ratio in lowest model layer", - "mipTable": "AERday", - "units": "mol mol-1" - }, - "od550aer": { - "CMOR_varname": "od550aer", - "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", - "long_name": "ambient aerosol optical thickness at 550 nm", - "mipTable": "AERday", - "units": "1" - }, - "lossch4": { - "CMOR_varname": "lossch4", - "standard_name": "tendency_of_atmosphere_mole_concentration_of_methane_due_to_chemical_destruction", - "long_name": "Monthly Loss of atmospheric Methane", - "mipTable": "AERmon", - "units": "mol m-3 s-1" - }, - "lossco": { - "CMOR_varname": "lossco", - "standard_name": "tendency_of_atmosphere_mole_concentration_of_carbon_monoxide_due_to_chemical_destruction", - "long_name": "Monthly Loss of atmospheric Carbon Monoxide", - "mipTable": "AERmon", - "units": "mol m-3 s-1" - }, - "o3ste": { - "CMOR_varname": "o3ste", - "standard_name": "mole_fraction_of_ozone_in_air", - "long_name": "Ozone volume mixing ratio", - "mipTable": "AERmon", - "units": "mol mol-1" - }, - "lossn2o": { - "CMOR_varname": "lossn2o", - "standard_name": "tendency_of_atmosphere_mole_concentration_of_nitrous_oxide_due_to_chemical_destruction", - "long_name": "Monthly Loss of atmospheric Nitrous Oxide", - "mipTable": "AERmon", - "units": "mol m-3 s-1" - }, - "sw18O": { - "CMOR_varname": "sw18O", - "standard_name": "isotope_ratio_of_17O_to_16O_in_sea_water_excluding_solutes_and_solids", - "long_name": "Isotopic Ratio of Oxygen-17 in Sea Water", - "mipTable": "Emon", - "units": "1" - }, - "sw2H": { - "CMOR_varname": "sw2H", - "standard_name": "isotope_ratio_of_2H_to_1H_in_sea_water_excluding_solutes_and_solids", - "long_name": "Isotopic Ratio of Deuterium in Sea Water", - "mipTable": "Emon", - "units": "1" - }, - "sfcWindmax": { - "CMOR_varname": "sfcWindmax", - "standard_name": "wind_speed", - "long_name": "Mean Daily Maximum Near-Surface Wind Speed", - "mipTable": "Emon", - "units": "m s-1" - }, - "vtem": { - "CMOR_varname": "vtem", - "standard_name": "northward_transformed_eulerian_mean_air_velocity", - "long_name": "Transformed Eulerian Mean northward wind", - "mipTable": "EmonZ", - "units": "m s-1" - }, - "wtem": { - "CMOR_varname": "wtem", - "standard_name": "upward_transformed_eulerian_mean_air_velocity", - "long_name": "Transformed Eulerian Mean upward wind", - "mipTable": "EmonZ", - "units": "m s-1" - }, - "epfy": { - "CMOR_varname": "epfy", - "standard_name": "northward_eliassen_palm_flux_in_air", - "long_name": "Northward Component of the Eliassen-Palm Flux", - "mipTable": "EmonZ", - "units": "m3 s-2" - }, - "utendepfd": { - "CMOR_varname": "utendepfd", - "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", - "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", - "mipTable": "EmonZ", - "units": "m s-2" - }, - "zmtnt": { - "CMOR_varname": "zmtnt", - "standard_name": "tendency_of_air_temperature_due_to_diabatic_processes", - "long_name": "Zonal Mean Diabatic Heating Rates", - "mipTable": "EmonZ", - "units": "K s-1" - } -} \ No newline at end of file diff --git a/tools/__init__.py b/tools/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tools/catalog_builder/__init__.py b/tools/catalog_builder/__init__.py deleted file mode 100644 index e69de29bb..000000000 From 1bf60025c2eb94475ac3c46774a90d93144c09c5 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Wed, 29 May 2024 10:21:40 -0500 Subject: [PATCH 174/178] Revert "merge" This reverts commit 6985ff7ab4664ba988c53bbcd9698674b55363cf. --- data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json | 4638 +++++ data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json | 14478 ++++++++++++++++ tools/__init__.py | 0 tools/catalog_builder/__init__.py | 0 4 files changed, 19116 insertions(+) create mode 100644 data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json create mode 100644 data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json create mode 100644 tools/__init__.py create mode 100644 tools/catalog_builder/__init__.py diff --git a/data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json b/data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json new file mode 100644 index 000000000..fc207ba1f --- /dev/null +++ b/data/gfdl-cmor-tables/gfdl_to_cmip5_vars.json @@ -0,0 +1,4638 @@ +{ + "prec_conv": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "expcalc": { + "CMOR_varname": "expcalc", + "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Calcite Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "conv_freq": { + "CMOR_varname": "ci", + "standard_name": "convection_time_fraction", + "long_name": "Fraction of Time Convection Occurs", + "modeling_realm": "atmos", + "units": "1" + }, + "cltcalipso": { + "CMOR_varname": "cltcalipso", + "standard_name": "cloud_area_fraction", + "long_name": "CALIPSO Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "modeling_realm": "atmos", + "units": "Pa" + }, + "tauu": { + "CMOR_varname": "tauuClim", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "modeling_realm": "atmos", + "units": "Pa" + }, + "pme_river": { + "CMOR_varname": "wfonocorr", + "standard_name": "water_flux_into_sea_water_without_flux_correction", + "long_name": "Water Flux into Sea Water Without Flux Correction", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "cLeaf": { + "CMOR_varname": "cLeaf", + "standard_name": "leaf_carbon_content", + "long_name": "Carbon Mass in Leaves", + "modeling_realm": "land", + "units": "kg m-2" + }, + "precip": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "so2_wet_dep": { + "CMOR_varname": "wetso2", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of SO2", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "sconcbc": { + "CMOR_varname": "sconcbc", + "standard_name": "mass_concentration_of_black_carbon_dry_aerosol_in_air", + "long_name": "Surface Concentration of Black Carbon Aerosol", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "thetaoga": { + "CMOR_varname": "thetaoga", + "standard_name": "sea_water_potential_temperature", + "long_name": "Global Average Sea Water Potential Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "WVP": { + "CMOR_varname": "prwClim", + "standard_name": "atmosphere_water_vapor_content", + "long_name": "Water Vapor Path", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "tnt2": { + "CMOR_varname": "tnt", + "standard_name": "tendency_of_air_temperature", + "long_name": "Tendency of Air Temperature", + "modeling_realm": "atmos", + "units": "K s-1" + }, + "tauu": { + "CMOR_varname": "tauu", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "modeling_realm": "atmos", + "units": "Pa" + }, + "t_ref": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "hfxba": { + "CMOR_varname": "hfxba", + "standard_name": "ocean_heat_x_transport_due_to_bolus_advection", + "long_name": "Ocean Heat X Transport due to Bolus Advection", + "modeling_realm": "ocean", + "units": "W" + }, + "q_ref": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "modeling_realm": "atmos", + "units": "1" + }, + "areacella": { + "CMOR_varname": "areacella", + "standard_name": "cell_area", + "long_name": "Atmosphere Grid-Cell Area", + "modeling_realm": "atmosphere & land", + "units": "m2" + }, + "pdi": { + "CMOR_varname": "pdi", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", + "long_name": "Diatom Primary Carbon Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "ialb": { + "CMOR_varname": "ialb", + "standard_name": "bare_sea_ice_albedo", + "long_name": "Bare Sea Ice Albedo", + "modeling_realm": "ocean & ice", + "units": "1" + }, + "dispkexyfo": { + "CMOR_varname": "dispkexyfo", + "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", + "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "total_mass_seawater": { + "CMOR_varname": "masso", + "standard_name": "sea_water_mass", + "long_name": "Sea Water Mass", + "modeling_realm": "ocean", + "units": "kg" + }, + "ps": { + "CMOR_varname": "psClim", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "modeling_realm": "atmos", + "units": "Pa" + }, + "agessc": { + "CMOR_varname": "agessc", + "standard_name": "sea_water_age_since_surface_contact", + "long_name": "Sea Water Age Since Surface Contact", + "modeling_realm": "ocean", + "units": "yr" + }, + "hfx": { + "CMOR_varname": "hfx", + "standard_name": "ocean_heat_x_transport", + "long_name": "Ocean Heat X Transport", + "modeling_realm": "ocean", + "units": "W" + }, + "qo3v": { + "CMOR_varname": "tro3Clim", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Mole Fraction of O3", + "modeling_realm": "atmos", + "units": "1e-9" + }, + "sos": { + "CMOR_varname": "sos", + "standard_name": "sea_surface_salinity", + "long_name": "Sea Surface Salinity", + "modeling_realm": "ocean", + "units": "psu" + }, + "clmcalipso": { + "CMOR_varname": "clmcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Mid Level Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "pon": { + "CMOR_varname": "pon", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", + "long_name": "Particulate Organic Nitrogen Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "swup_toa": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "bc_wet_dep": { + "CMOR_varname": "wetbc", + "standard_name": "tendency_of_atmosphere_mass_content_of_black_carbon_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Black Carbon Aerosol Mass", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "po4": { + "CMOR_varname": "po4", + "standard_name": "mole_concentration_of_phosphate_in_sea_water", + "long_name": "Dissolved Phosphate Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "evap": { + "CMOR_varname": "evap", + "standard_name": "water_evaporation_flux", + "long_name": "Water Evaporation Flux from Sea Ice", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "calc": { + "CMOR_varname": "calc", + "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Calcite Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "dissoc": { + "CMOR_varname": "dissoc", + "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", + "long_name": "Dissolved Organic Carbon Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "dem_s": { + "CMOR_varname": "dems", + "standard_name": "stratiform_cloud_longwave_emissivity", + "long_name": "Stratiform Cloud Emissivity", + "modeling_realm": "atmos", + "units": "1" + }, + "sst": { + "CMOR_varname": "tos", + "standard_name": "surface_temperature", + "long_name": "Sea Surface Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "chldiaz": { + "CMOR_varname": "chldiaz", + "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "sconcpoa": { + "CMOR_varname": "sconcpoa", + "standard_name": "mass_concentration_of_primary_particulate_organic_matter_dry_aerosol_in_air", + "long_name": "Surface Concentration of Dry Aerosol Primary Organic Matter", + "modeling_realm": "atmos", + "units": "kg m-3" + }, + "Gmwork": { + "CMOR_varname": "tnkebto", + "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", + "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "snomelt": { + "CMOR_varname": "snomelt", + "standard_name": "snow_melt_rate", + "long_name": "Snow Melt Rate", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "DMS_ddep_cmip": { + "CMOR_varname": "drydms", + "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of DMS", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "ph": { + "CMOR_varname": "ph", + "standard_name": "sea_water_ph_reported_on_total_scale", + "long_name": "pH", + "modeling_realm": "ocean_biochem", + "units": "1" + }, + "transiy": { + "CMOR_varname": "transiy", + "standard_name": "sea_ice_y_transport", + "long_name": "Northward sea ice transport", + "modeling_realm": "ocean & ice", + "units": "kg s-1" + }, + "SOA_wet_dep": { + "CMOR_varname": "wetsoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Dry Aerosol Secondary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "SO2_emis_cmip2": { + "CMOR_varname": "emiso2", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_emission", + "long_name": "Total Emission Rate of SO2", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "visc_cbu": { + "CMOR_varname": "difvmo", + "standard_name": "ocean_vertical_momentum_diffusivity", + "long_name": "Ocean Vertical Momentum Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "clc": { + "CMOR_varname": "clc", + "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", + "long_name": "Convective Cloud Area Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "pbot_t": { + "CMOR_varname": "pbo", + "standard_name": "sea_water_pressure_at_sea_floor", + "long_name": "Sea Water Pressure at Sea floor", + "modeling_realm": "ocean", + "units": "dbar" + }, + "difvho": { + "CMOR_varname": "difvho", + "standard_name": "ocean_vertical_heat_diffusivity", + "long_name": "Ocean Vertical Heat Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "c3PftFrac": { + "CMOR_varname": "c3PftFrac", + "standard_name": "area_fraction", + "long_name": "Total C3 PFT Cover Fraction", + "modeling_realm": "land", + "units": "%" + }, + "sftof": { + "CMOR_varname": "sftof", + "standard_name": "sea_area_fraction", + "long_name": "Sea Area Fraction", + "modeling_realm": "ocean", + "units": "%" + }, + "total_volume_seawater": { + "CMOR_varname": "volo", + "standard_name": "sea_water_volume", + "long_name": "Sea Water Volume", + "modeling_realm": "ocean", + "units": "m3" + }, + "concso4": { + "CMOR_varname": "concso4", + "standard_name": "mass_concentration_of_sulfate_dry_aerosol_in_air", + "long_name": "Concentration of SO4", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "talk": { + "CMOR_varname": "talk", + "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Total Alkalinity at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "rainfall_flux", + "long_name": "Surface Rainfall Rate into the Sea Ice Portion of the Grid Cell", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "mrros": { + "CMOR_varname": "mrrosClim", + "standard_name": "surface_runoff_flux", + "long_name": "Surface Runoff", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "nh4": { + "CMOR_varname": "nh4", + "standard_name": "mole_concentration_of_ammonium_in_sea_water", + "long_name": "Dissolved Ammonium Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "tasmin": { + "CMOR_varname": "tasminClim", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "cld_amt_2d": { + "CMOR_varname": "cltClim", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "" + }, + "phypmisc": { + "CMOR_varname": "phypmisc", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", + "long_name": "Other Phytoplankton Carbon Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "intparag": { + "CMOR_varname": "intparag", + "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", + "long_name": "Aragonite Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "tos_atm": { + "CMOR_varname": "tos", + "standard_name": "sea_surface_temperature", + "long_name": "Sea Surface Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "fl_lssnow": { + "CMOR_varname": "prlsns", + "standard_name": "large_scale_snowfall_flux", + "long_name": "Stratiform Snowfall Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "evspsblveg": { + "CMOR_varname": "evspsblveg", + "standard_name": "water_evaporation_flux_from_canopy", + "long_name": "Evaporation from Canopy", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "clcalipso_sat": { + "CMOR_varname": "clcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "fFire": { + "CMOR_varname": "fFire", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires_excluding_anthropogenic_land_use_change", + "long_name": "Carbon Mass Flux into Atmosphere due to CO2 Emission from Fire", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "tran": { + "CMOR_varname": "tranClim", + "standard_name": "transpiration_flux", + "long_name": "Transpiration", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "rh_ref_cmip_min": { + "CMOR_varname": "rhsmin", + "standard_name": "relative_humidity", + "long_name": "Surface Daily Minimum Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "sic": { + "CMOR_varname": "sic", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea Ice Area Fraction", + "modeling_realm": "ocean & ice", + "units": "%" + }, + "dust_col": { + "CMOR_varname": "loaddust", + "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol", + "long_name": "Load of Dust", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "dht": { + "CMOR_varname": "thkcello", + "standard_name": "cell_thickness", + "long_name": "Ocean Model Cell Thickness", + "modeling_realm": "land", + "units": "m" + }, + "tau_x": { + "CMOR_varname": "tauuo", + "standard_name": "surface_downward_x_stress", + "long_name": "Surface Downward X Stress", + "modeling_realm": "ocean & ice", + "units": "N m-2" + }, + "msftbarot": { + "CMOR_varname": "msftbarot", + "standard_name": "ocean_barotropic_mass_streamfunction", + "long_name": "Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "fgo2": { + "CMOR_varname": "fgo2", + "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", + "long_name": "Surface Downward O2 Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "rh_ref_cmip": { + "CMOR_varname": "rhs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "zooc": { + "CMOR_varname": "zooc", + "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Zooplankton Carbon Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "o2min": { + "CMOR_varname": "o2min", + "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", + "long_name": "Oxygen Minimum Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "emipoav2": { + "CMOR_varname": "emipoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_net_chemical_production", + "long_name": "Emission Rate of Dry Aerosol Primary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "dissoc": { + "CMOR_varname": "dissoc", + "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", + "long_name": "Dissolved Organic Carbon Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "omldamax": { + "CMOR_varname": "omldamax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", + "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", + "modeling_realm": "ocean", + "units": "m" + }, + "bddtdic": { + "CMOR_varname": "bddtdic", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "phydiaz": { + "CMOR_varname": "phydiaz", + "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "wmo": { + "CMOR_varname": "wmo", + "standard_name": "upward_ocean_mass_transport", + "long_name": "Upward Ocean Mass Transport", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "phymisc": { + "CMOR_varname": "phymisc", + "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "strocny": { + "CMOR_varname": "strocny", + "standard_name": "upward_y_stress_at_sea_ice_base", + "long_name": "Northward Ocean Stress On Sea Ice", + "modeling_realm": "ocean & ice", + "units": "N m-2" + }, + "sphum": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "modeling_realm": "atmos", + "units": "1" + }, + "cfadLidarsr532": { + "CMOR_varname": "cfadLidarsr532", + "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", + "long_name": "CALIPSO Scattering Ratio", + "modeling_realm": "atmos", + "units": "1" + }, + "intpp": { + "CMOR_varname": "intpp", + "standard_name": "net_primary_mole_productivity_of_carbon_by_phytoplankton", + "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "swdn_tot_dif": { + "CMOR_varname": "rsdsdiff", + "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", + "long_name": "Surface Diffuse Downwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "umo": { + "CMOR_varname": "umo", + "standard_name": "ocean_mass_x_transport", + "long_name": "Ocean Mass X Transport", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "modeling_realm": "atmos", + "units": "m" + }, + "vcomp": { + "CMOR_varname": "vaClim", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "temp": { + "CMOR_varname": "taClim", + "standard_name": "air_temperature", + "long_name": "Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_net_downward_longwave_flux", + "long_name": "Surface Net Downward Longwave Radiation", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "rsucs": { + "CMOR_varname": "rsucs", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "IWP_all_clouds": { + "CMOR_varname": "cliviClim", + "standard_name": "atmosphere_cloud_ice_content", + "long_name": "Ice Water Path", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "rh_cmip": { + "CMOR_varname": "hurClim", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "thetao": { + "CMOR_varname": "thetao", + "standard_name": "sea_water_potential_temperature", + "long_name": "Sea Water Potential Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "hght": { + "CMOR_varname": "zgClim", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "modeling_realm": "atmos", + "units": "m" + }, + "pop": { + "CMOR_varname": "pop", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", + "long_name": "Particulate Organic Phosphorus Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "clhcalipso": { + "CMOR_varname": "clhcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO High Level Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "lwup_sfc": { + "CMOR_varname": "rlusClim", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "pop": { + "CMOR_varname": "pop", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", + "long_name": "Particulate Organic Phosphorus Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "co2_dvmr": { + "CMOR_varname": "co2", + "standard_name": "mole_fraction_of_carbon_dioxide_in_air", + "long_name": "Mole Fraction of CO2", + "modeling_realm": "atmos", + "units": "1e-6" + }, + "fbddtdisi": { + "CMOR_varname": "fbddtdisi", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "bddtdife": { + "CMOR_varname": "bddtdife", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_iron_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "sconcdust": { + "CMOR_varname": "sconcdust", + "standard_name": "mass_concentration_of_dust_dry_aerosol_in_air", + "long_name": "Surface Concentration of Dust", + "modeling_realm": "atmos", + "units": "kg m-3" + }, + "hfibthermds": { + "CMOR_varname": "hfibthermds", + "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "tx_trans": { + "CMOR_varname": "umo", + "standard_name": "ocean_mass_x_transport", + "long_name": "Ocean Mass X Transport", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "volcello": { + "CMOR_varname": "volcello", + "standard_name": "ocean_volume", + "long_name": "Ocean Grid-Cell Volume", + "modeling_realm": "ocean", + "units": "m-3" + }, + "chldiaz": { + "CMOR_varname": "chldiaz", + "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water at Surface", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "chlmisc": { + "CMOR_varname": "chlmisc", + "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Other Phytoplankton Chlorophyll Mass Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "clw": { + "CMOR_varname": "clwClim", + "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "1" + }, + "hfy": { + "CMOR_varname": "hfy", + "standard_name": "ocean_heat_y_transport", + "long_name": "Ocean Heat Y Transport", + "modeling_realm": "ocean", + "units": "W" + }, + "lwdn_sfc_clr": { + "CMOR_varname": "rldscs", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "diff_cbt_t": { + "CMOR_varname": "difvho", + "standard_name": "ocean_vertical_heat_diffusivity", + "long_name": "Ocean Vertical Heat Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "masscello": { + "CMOR_varname": "masscello", + "standard_name": "sea_water_mass_per_unit_area", + "long_name": "Sea Water Mass Per Unit Area", + "modeling_realm": "ocean", + "units": "kg m-2" + }, + "tnhusd": { + "CMOR_varname": "tnhusd", + "standard_name": "tendency_of_specific_humidity_due_to_diffusion", + "long_name": "Tendency of Specific Humidity due to Diffusion", + "modeling_realm": "atmos", + "units": "s-1" + }, + "reffclwc": { + "CMOR_varname": "reffclwc", + "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", + "long_name": "Convective Cloud Droplet Effective Radius", + "modeling_realm": "atmos", + "units": "m" + }, + "sit": { + "CMOR_varname": "sit", + "standard_name": "sea_ice_thickness", + "long_name": "Sea Ice Thickness", + "modeling_realm": "ocean & ice", + "units": "m" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "wap", + "modeling_realm": "atmos", + "units": "Pa s-1" + }, + "bc_ddep": { + "CMOR_varname": "drybc", + "standard_name": "tendency_of_atmosphere_mass_content_of_black_carbon_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of Black Carbon Aerosol Mass", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "Kd_itidal_z": { + "CMOR_varname": "difvtrto", + "standard_name": "ocean_vertical_tracer_diffusivity_due_to_tides", + "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "evap": { + "CMOR_varname": "evspsbl", + "standard_name": "water_evaporation_flux", + "long_name": "Evaporation", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "hcice": { + "CMOR_varname": "hcice", + "standard_name": "sea_ice_total_heat_content", + "long_name": "Sea Ice Total Heat Content", + "modeling_realm": "ocean & ice", + "units": "J" + }, + "concss": { + "CMOR_varname": "concss", + "standard_name": "mass_concentration_of_seasalt_dry_aerosol_in_air", + "long_name": "Concentration of Seasalt", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "reffclws": { + "CMOR_varname": "reffclws", + "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", + "long_name": "Stratiform Cloud Droplet Effective Radius", + "modeling_realm": "atmos", + "units": "m" + }, + "sfc_hflux_from_water_prec": { + "CMOR_varname": "hfrainds", + "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", + "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "slp": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_sea_level", + "long_name": "Sea Level Pressure", + "modeling_realm": "atmos", + "units": "Pa" + }, + "evspsblveg": { + "CMOR_varname": "evspsblvegClim", + "standard_name": "water_evaporation_flux_from_canopy", + "long_name": "Evaporation from Canopy", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "residualFrac": { + "CMOR_varname": "residualFrac", + "standard_name": "area_fraction", + "long_name": "Fraction of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", + "modeling_realm": "land", + "units": "%" + }, + "pastureFrac": { + "CMOR_varname": "pastureFrac", + "standard_name": "area_fraction", + "long_name": "Anthropogenic Pasture Fraction", + "modeling_realm": "land", + "units": "%" + }, + "hblt_max": { + "CMOR_varname": "omldamax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", + "long_name": "Mean Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", + "modeling_realm": "ocean", + "units": "m" + }, + "rlussi": { + "CMOR_varname": "rlussi", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Upward Long Wave over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "W m-2" + }, + "salt": { + "CMOR_varname": "so", + "standard_name": "sea_water_salinity", + "long_name": "Sea Water Salinity", + "modeling_realm": "ocean", + "units": "psu" + }, + "phyc": { + "CMOR_varname": "phyc", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Phytoplankton Carbon Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "visc_cbu_tides": { + "CMOR_varname": "difvmto", + "standard_name": "ocean_vertical_momentum_diffusivity_due_to_tides", + "long_name": "Ocean Vertical Momentum Diffusivity due to Tides", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "rrvch4": { + "CMOR_varname": "ch4global", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "Global Mean Mole Fraction of CH4", + "modeling_realm": "atmosChem", + "units": "1e-9" + }, + "fbddtdife": { + "CMOR_varname": "fbddtdife", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "hfnorthba": { + "CMOR_varname": "hfynorthba", + "standard_name": "northward_ocean_heat_transport_due_to_bolus_advection", + "long_name": "Northward Ocean Heat Transport due to Bolus Advection", + "modeling_realm": "ocean", + "units": "W" + }, + "concno3": { + "CMOR_varname": "concno3", + "standard_name": "mass_concentration_ of_nitrate_dry_aerosol_in_air", + "long_name": "Concentration of NO3 Aerosol", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "intpbsi": { + "CMOR_varname": "intpbsi", + "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", + "long_name": "Silica Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "swflx": { + "CMOR_varname": "rsntds", + "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", + "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "gridspec": { + "CMOR_varname": "gridspec", + "standard_name": "[gridspec_ocnBgchem]", + "long_name": "Gridspec", + "modeling_realm": "ocean_biochem", + "units": "" + }, + "zo2min": { + "CMOR_varname": "zo2min", + "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_molecular_oxygen_in_sea_water", + "long_name": "Depth of Oxygen Minimum Concentration", + "modeling_realm": "ocean_biochem", + "units": "m" + }, + "rlncs": { + "CMOR_varname": "rlncs", + "standard_name": "net_upward_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Net Upwelling Clear-Sky Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "evap": { + "CMOR_varname": "evspsblClim", + "standard_name": "water_evaporation_flux", + "long_name": "Evaporation", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "fbddtalk": { + "CMOR_varname": "fbddtalk", + "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", + "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "reff_lsclliq": { + "CMOR_varname": "reffclws", + "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "m" + }, + "bmelt": { + "CMOR_varname": "bmelt", + "standard_name": "rate_of_melt_at_sea_ice_base", + "long_name": "Rate of Melt at Sea Ice Base", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "agm": { + "CMOR_varname": "diftrblo", + "standard_name": "ocean_tracer_bolus_laplacian_diffusivity", + "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "precip": { + "CMOR_varname": "prClim", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "evap_heat": { + "CMOR_varname": "hfls", + "standard_name": "surface_downward_latent_heat_flux", + "long_name": "Surface Downward Latent Heat Flux", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "transix": { + "CMOR_varname": "transix", + "standard_name": "sea_ice_x_transport", + "long_name": "Eastward Sea Ice Transport", + "modeling_realm": "ocean & ice", + "units": "kg s-1" + }, + "cl": { + "CMOR_varname": "clClim", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Cloud Area Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "divice": { + "CMOR_varname": "divice", + "standard_name": "??", + "long_name": "Strain Rate Divergence of Sea Ice", + "modeling_realm": "ocean & ice", + "units": "s-1" + }, + "grCongel": { + "CMOR_varname": "grCongel", + "standard_name": "tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation", + "long_name": "Congelation Sea Ice Growth Rate", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "sconcoa": { + "CMOR_varname": "sconcoa", + "standard_name": "mass_concentration_of_particulate_organic_matter_dry_aerosol_in_air", + "long_name": "Surface Concentration of Dry Aerosol Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "rGrowth": { + "CMOR_varname": "rGrowth", + "standard_name": "surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_growth", + "long_name": "Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "grassFrac": { + "CMOR_varname": "grassFrac", + "standard_name": "area_fraction", + "long_name": "Natural Grass Fraction", + "modeling_realm": "land", + "units": "%" + }, + "fco2fos": { + "CMOR_varname": "fco2fos", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", + "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "swup_toa_clr": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "sblsi": { + "CMOR_varname": "sblsi", + "standard_name": "surface_snow_and_ice_sublimation_flux", + "long_name": "Sublimation over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "kg m-2" + }, + "vsi": { + "CMOR_varname": "vsi", + "standard_name": "northward_sea_ice_velocity", + "long_name": "Northward Sea Ice Velocity", + "modeling_realm": "seaIce & ocean", + "units": "m s-1" + }, + "shflx": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "power_diss_tides": { + "CMOR_varname": "tnpeot", + "standard_name": "tendency_of_ocean_potential_energy_content_due_to_tides", + "long_name": "Tendency of Ocean Potential Energy Content due to Tides", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "phyfe": { + "CMOR_varname": "phyfe", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", + "long_name": "Phytoplankton Iron Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "lwdn_sfc_clr": { + "CMOR_varname": "rldscsClim", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Surface Clear-Sky Longwave", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "pot_rho_0": { + "CMOR_varname": "rhopoto", + "standard_name": "sea_water_potential_density", + "long_name": "Sea Water Potential Density", + "modeling_realm": "ocean", + "units": "kg m-3" + }, + "ssalt_emis": { + "CMOR_varname": "emiss", + "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_due_to_emission", + "long_name": "Total Emission Rate of Seasalt", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "fbddtdip": { + "CMOR_varname": "fbddtdip", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Phosphate due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "tau_y": { + "CMOR_varname": "tauvo", + "standard_name": "surface_downward_y_stress", + "long_name": "Surface Downward Y Stress", + "modeling_realm": "ocean & ice", + "units": "N m-2" + }, + "ra": { + "CMOR_varname": "ra", + "standard_name": "plant_respiration_carbon_flux", + "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "clcalipso2_sat": { + "CMOR_varname": "clcalipso2", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", + "modeling_realm": "atmos", + "units": "%" + }, + "aiso_lap": { + "CMOR_varname": "difmxylo", + "standard_name": "ocean_momentum_xy_laplacian_diffusivity", + "long_name": "Ocean Momentum XY Laplacian Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "pbp": { + "CMOR_varname": "pbp", + "standard_name": "tendency_of_mole_concentration_of_phosphorus_in_sea_water_due_to_biological_production", + "long_name": "Biogenic Phosphorus Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "tot_h2o": { + "CMOR_varname": "h2o", + "standard_name": "mass_fraction_of_water_in_air", + "long_name": "Mass Fraction of Water", + "modeling_realm": "aerosol", + "units": "1" + }, + "tntc": { + "CMOR_varname": "tntc", + "standard_name": "tendency_of_air_temperature_due_to_convection", + "long_name": "Tendency of Air Temperature due to Moist Convection", + "modeling_realm": "atmos", + "units": "K s-1" + }, + "phydiat": { + "CMOR_varname": "phydiat", + "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "DMS_wet_dep": { + "CMOR_varname": "wetdms", + "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of DMS", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "ssalt_wet_dep": { + "CMOR_varname": "wetss", + "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Seasalt", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "Heat_PmE": { + "CMOR_varname": "hfrainds", + "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", + "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "ucomp": { + "CMOR_varname": "uaClim", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "sftgif": { + "CMOR_varname": "sftgif", + "standard_name": "land_ice_area_fraction", + "long_name": "Fraction of Grid Cell Covered with Glacier", + "modeling_realm": "land", + "units": "%" + }, + "vcomp": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "cProduct": { + "CMOR_varname": "cProduct", + "standard_name": "carbon_content_of_products_of_anthropogenic_land_use_change", + "long_name": "Carbon Mass in Products of Land Use Change", + "modeling_realm": "land", + "units": "kg m-2" + }, + "u_ref": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "modeling_realm": "aerosol", + "units": "m s-1" + }, + "intpbfe": { + "CMOR_varname": "intpbfe", + "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", + "long_name": "Iron Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "tnhusc": { + "CMOR_varname": "tnhusc", + "standard_name": "tendency_of_specific_humidity_due_to_convection", + "long_name": "Tendency of Specific Humidity due to Convection", + "modeling_realm": "atmos", + "units": "s-1" + }, + "mc": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "intpn2": { + "CMOR_varname": "intpn2", + "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", + "long_name": "Nitrogen Fixation Rate in Ocean", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "ctpisccp": { + "CMOR_varname": "pctisccp", + "standard_name": "air_pressure_at_cloud_top", + "long_name": "ISCCP Mean Cloud Top Pressure", + "modeling_realm": "atmos", + "units": "Pa" + }, + "calving_melt_heat": { + "CMOR_varname": "hfibthermds", + "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "intpdiaz": { + "CMOR_varname": "intpdiaz", + "standard_name": "net_primary_mole_productivity_of_carbon_by_diazotrophs", + "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "exparag": { + "CMOR_varname": "exparag", + "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Aragonite Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "fsn": { + "CMOR_varname": "fsn", + "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", + "long_name": "Surface Downward Net Flux of Nitrogen", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "dfe": { + "CMOR_varname": "dfe", + "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", + "long_name": "Dissolved Iron Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "cfadDbze94": { + "CMOR_varname": "cfadDbze94", + "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", + "long_name": "CloudSat Radar Reflectivity CFAD", + "modeling_realm": "atmos", + "units": "1" + }, + "dissic": { + "CMOR_varname": "dissic", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", + "long_name": "Dissolved Inorganic Carbon Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "clhcalipso_sat": { + "CMOR_varname": "clhcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO High Level Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "qo3v": { + "CMOR_varname": "tro3", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Mole Fraction of O3", + "modeling_realm": "atmos", + "units": "1e-9" + }, + "om_emis_col": { + "CMOR_varname": "emibb", + "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_emission", + "long_name": "Total Emission of Primary Aerosol from Biomass Burning", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "clwc": { + "CMOR_varname": "clwc", + "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Convective Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "1" + }, + "dust_ddep": { + "CMOR_varname": "drydust", + "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of Dust", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "deptho": { + "CMOR_varname": "deptho", + "standard_name": "sea_floor_depth_below_geoid", + "long_name": "Sea Floor Depth", + "modeling_realm": "ocean", + "units": "m" + }, + "tnhusscpbl2": { + "CMOR_varname": "tnhusscpbl", + "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", + "long_name": "Tendency of Specific Humidity due to Stratiform Cloud Condensation and Evaporation", + "modeling_realm": "atmos", + "units": "s-1" + }, + "fprec_melt_heat": { + "CMOR_varname": "hfsnthermds", + "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "o2": { + "CMOR_varname": "o2", + "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", + "long_name": "Dissolved Oxygen Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "z": { + "CMOR_varname": "zfull", + "standard_name": "height_above_reference_ellipsoid", + "long_name": "Altitude of Model Full-Levels", + "modeling_realm": "atmos", + "units": "m" + }, + "mrlsl": { + "CMOR_varname": "mrlsl", + "standard_name": "moisture_content_of_soil_layer", + "long_name": "Water Content of Soil Layer", + "modeling_realm": "land", + "units": "kg m-2" + }, + "tntmp": { + "CMOR_varname": "tntmp", + "standard_name": "tendency_of_air_temperature_due_to_model_physics", + "long_name": "Tendency of Air Temperature due to Diabatic Processes", + "modeling_realm": "atmos", + "units": "K s-1" + }, + "ta700": { + "CMOR_varname": "ta700", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "v_ref": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "modeling_realm": "aerosol", + "units": "m s-1" + }, + "rln": { + "CMOR_varname": "rln", + "standard_name": "net_upward_longwave_flux_in_air", + "long_name": "Net Upward Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "rh_ref_cmip": { + "CMOR_varname": "hurs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "clic": { + "CMOR_varname": "clic", + "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", + "long_name": "Mass Fraction of Convective Cloud Ice", + "modeling_realm": "atmos", + "units": "1" + }, + "cSoilSlow": { + "CMOR_varname": "cSoilSlow", + "standard_name": "slow_soil_pool_carbon_content", + "long_name": "Carbon Mass in Slow Soil Pool", + "modeling_realm": "land", + "units": "kg m-2" + }, + "tossq": { + "CMOR_varname": "tossq", + "standard_name": "square_of_sea_surface_temperature", + "long_name": "Square of Sea Surface Temperature", + "modeling_realm": "ocean", + "units": "K2" + }, + "clcalipso2": { + "CMOR_varname": "clcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "difvso": { + "CMOR_varname": "difvso", + "standard_name": "ocean_vertical_salt_diffusivity", + "long_name": "Ocean Vertical Salt Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "fddtdip": { + "CMOR_varname": "fddtdip", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", + "long_name": "Rate of Change of Net Dissolved Inorganic Phosphate", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "expc": { + "CMOR_varname": "expc", + "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Particulate Organic Carbon Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "albisccp": { + "CMOR_varname": "albisccp", + "standard_name": "cloud_albedo", + "long_name": "ISCCP Mean Cloud Albedo", + "modeling_realm": "atmos", + "units": "1" + }, + "fl_lsrain": { + "CMOR_varname": "prlsprof", + "standard_name": "large_scale_rainfall_flux", + "long_name": "Stratiform Rainfall Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "darag": { + "CMOR_varname": "darag", + "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_dissolution", + "long_name": "Aragonite Dissolution", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "cropFrac": { + "CMOR_varname": "cropFrac", + "standard_name": "area_fraction", + "long_name": "Crop Fraction", + "modeling_realm": "land", + "units": "%" + }, + "physi": { + "CMOR_varname": "physi", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", + "long_name": "Phytoplankton Silica Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "tot_cld_amt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "frc": { + "CMOR_varname": "frc", + "standard_name": "tendency_of_ocean_mole_content_of_carbon_due_to_sedimentation", + "long_name": "Downward Carbon Flux at Ocean Bottom", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "bddtalk": { + "CMOR_varname": "bddtalk", + "standard_name": "tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", + "long_name": "Rate of Change of Alkalinity due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "cfadLidarsr532_sat": { + "CMOR_varname": "cfadLidarsr532", + "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", + "long_name": "CALIPSO Scattering Ratio", + "modeling_realm": "atmos", + "units": "1" + }, + "sphum": { + "CMOR_varname": "husClim", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "modeling_realm": "atmos", + "units": "1" + }, + "cllcalipso_sat": { + "CMOR_varname": "cllcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Low Level Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "rh_ref_cmip_max": { + "CMOR_varname": "rhsmax", + "standard_name": "relative_humidity", + "long_name": "Surface Daily Maximum Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "hfls": { + "CMOR_varname": "hflsClim", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "t_surf": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "modeling_realm": "land", + "units": "K" + }, + "ccice": { + "CMOR_varname": "clic", + "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", + "long_name": "Mass Fraction of Convective Cloud Ice", + "modeling_realm": "atmos", + "units": "1" + }, + "thkcello": { + "CMOR_varname": "thkcello", + "standard_name": "cell_thickness", + "long_name": "Ocean Model Cell Thickness", + "modeling_realm": "ocean", + "units": "m" + }, + "cl": { + "CMOR_varname": "cl", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Cloud Area Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "WVP": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_water_vapor_content", + "long_name": "Water Vapor Path", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "rh_cmip": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "sconcss": { + "CMOR_varname": "sconcss", + "standard_name": "mass_concentration_of_seasalt_dry_aerosol_in_air", + "long_name": "Surface Concentration of Seasalt", + "modeling_realm": "atmos", + "units": "kg m-3" + }, + "zos": { + "CMOR_varname": "zos", + "standard_name": "sea_surface_height_above_geoid", + "long_name": "Sea Surface Height Above Geoid", + "modeling_realm": "ocean", + "units": "m" + }, + "pon": { + "CMOR_varname": "pon", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", + "long_name": "Particulate Organic Nitrogen Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "rsu": { + "CMOR_varname": "rsu", + "standard_name": "upwelling_shortwave_flux_in_air", + "long_name": "Upwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "chlpico": { + "CMOR_varname": "chlpico", + "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water at Surface", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "sfc_salt_flux_ice": { + "CMOR_varname": "sfdsi", + "standard_name": "downward_sea_ice_basal_salt_flux", + "long_name": "Downward Sea Ice Basal Salt Flux", + "modeling_realm": "ocean & seaIce", + "units": "kg m-2 s-1" + }, + "po4": { + "CMOR_varname": "po4", + "standard_name": "mole_concentration_of_phosphate_in_sea_water", + "long_name": "Dissolved Phosphate Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "wt": { + "CMOR_varname": "wo", + "standard_name": "upward_sea_water_velocity", + "long_name": "Upward Sea Water Velocity", + "modeling_realm": "ocean", + "units": "m s-1" + }, + "snoToice": { + "CMOR_varname": "snoToIce", + "standard_name": "tendency_of_sea_ice_amount_due_to_snow_conversion", + "long_name": "Snow-Ice Formation Rate", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_downward_sensible_heat_flux", + "long_name": "Surface Downward Sensible Heat Flux", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "fescav": { + "CMOR_varname": "fescav", + "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_scavenging_by_inorganic_particles", + "long_name": "Nonbiogenic Iron Scavenging", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "strairx": { + "CMOR_varname": "strairx", + "standard_name": "surface_downward_x_stress", + "long_name": "Eastward atmospheric stress on sea ice", + "modeling_realm": "ocean & ice", + "units": "N m-2" + }, + "SO2_ddep_cmip": { + "CMOR_varname": "dryso2", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of SO2", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "snw": { + "CMOR_varname": "snw", + "standard_name": "surface_snow_amount", + "long_name": "Surface Snow Amount", + "modeling_realm": "land_ice", + "units": "kg m-2" + }, + "NH3_ddep_cmip": { + "CMOR_varname": "drynh3", + "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of NH3", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "pp": { + "CMOR_varname": "pp", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", + "long_name": "Primary Carbon Production by Phytoplankton", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "cldnvi": { + "CMOR_varname": "cldnvi", + "standard_name": "atmosphere_number_content_of_cloud_droplets", + "long_name": "Column Integrated Cloud Droplet Number", + "modeling_realm": "atmos", + "units": "m-2" + }, + "water": { + "CMOR_varname": "mrso", + "standard_name": "soil_moisture_content", + "long_name": "Total Soil Moisture Content", + "modeling_realm": "land", + "units": "kg m-2" + }, + "swup_toa_clr": { + "CMOR_varname": "rsutcsClim", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "clis": { + "CMOR_varname": "clis", + "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Ice", + "modeling_realm": "atmos", + "units": "1" + }, + "hfnorthdiff": { + "CMOR_varname": "hfnorthdiff", + "standard_name": "northward_ocean_heat_transport_due_to_diffusion", + "long_name": "Northward Ocean Heat Transport due to Diffusion", + "modeling_realm": "ocean", + "units": "W" + }, + "omlmax": { + "CMOR_varname": "omlmax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", + "long_name": "Monthly Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", + "modeling_realm": "ocean", + "units": "m" + }, + "pbsi": { + "CMOR_varname": "pbsi", + "standard_name": "tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production", + "long_name": "Biogenic Silica Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "tz_trans_sq": { + "CMOR_varname": "wmosq", + "standard_name": "square_of_upward_ocean_mass_transport", + "long_name": "Square of Upward Ocean Mass Transport", + "modeling_realm": "ocean", + "units": "kg2 s-2" + }, + "dem_c": { + "CMOR_varname": "demc", + "standard_name": "convective_cloud_longwave_emissivity", + "long_name": "Convective Cloud Emissivity", + "modeling_realm": "atmos", + "units": "1" + }, + "tauvo": { + "CMOR_varname": "tauvo", + "standard_name": "surface_downward_y_stress", + "long_name": "Surface Downward Y Stress", + "modeling_realm": "ocean", + "units": "N m-2" + }, + "u_ref": { + "CMOR_varname": "uasClim", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "modeling_realm": "aerosol", + "units": "m s-1" + }, + "mld_sq": { + "CMOR_varname": "mlotstsq", + "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", + "modeling_realm": "ocean", + "units": "m2" + }, + "reff_lsclice": { + "CMOR_varname": "reffclis", + "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", + "modeling_realm": "atmos", + "units": "m" + }, + "cld_amt_2d": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "mfo": { + "CMOR_varname": "mfo", + "standard_name": "sea_water_transport_across_line", + "long_name": "Sea Water Transport", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "clisccp": { + "CMOR_varname": "clisccp", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "ISCCP Cloud Area Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "si": { + "CMOR_varname": "si", + "standard_name": "mole_concentration_of_silicate_in_sea_water", + "long_name": "Dissolved Silicate Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "bfe": { + "CMOR_varname": "bfe", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", + "long_name": "Particulate Biogenic Iron Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "pbfe": { + "CMOR_varname": "pbfe", + "standard_name": "tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production", + "long_name": "Biogenic Iron Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "phyn": { + "CMOR_varname": "phyn", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", + "long_name": "Phytoplankton Nitrogen Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "bsi": { + "CMOR_varname": "bsi", + "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", + "long_name": "Particulate Biogenic Silica Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "rsdssi": { + "CMOR_varname": "rsdssi", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Downward Shortwave over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "W m-2" + }, + "rho_dzt": { + "CMOR_varname": "masscello", + "standard_name": "sea_water_mass_per_unit_area", + "long_name": "Sea Water Mass Per Unit Area", + "modeling_realm": "ocean", + "units": "kg m-2" + }, + "dtau_c": { + "CMOR_varname": "dtauc", + "standard_name": "atmosphere_optical_thickness_due_to_convective_cloud", + "long_name": "Convective Cloud Optical Depth", + "modeling_realm": "atmos", + "units": "1" + }, + "sfc_hflux_from_runoff": { + "CMOR_varname": "hfrunoffds", + "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", + "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "eviscu": { + "CMOR_varname": "eviscu", + "standard_name": "atmosphere_momentum_diffusivity", + "long_name": "Eddy Viscosity Coefficients for Momentum", + "modeling_realm": "atmos", + "units": "m2 s-1" + }, + "grFrazil": { + "CMOR_varname": "grFrazil", + "standard_name": "tendency_of_sea_ice_amount_due_to_frazil_ice_accumulation_in_leads", + "long_name": "Frazil Sea Ice Growth (Leads) Rate", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "zossga": { + "CMOR_varname": "zossga", + "standard_name": "global_average_steric_sea_level_change", + "long_name": "Global Average Steric Sea Level Change", + "modeling_realm": "ocean", + "units": "m" + }, + "swup_sfc": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "rsdcs": { + "CMOR_varname": "rsdcs", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "msftyyzba": { + "CMOR_varname": "msftyyzba", + "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_bolus_advection", + "long_name": "Ocean Y Overturning Mass Streamfunction due to Bolus Advection", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "tsnint": { + "CMOR_varname": "tsnint", + "standard_name": "temperature_at_interface_between_sea_ice_and_snow", + "long_name": "Temperature at Interface Between Sea Ice and Snow", + "modeling_realm": "ocean & ice", + "units": "K" + }, + "intpbp": { + "CMOR_varname": "intpbp", + "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", + "long_name": "Phosphorus Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1 " + }, + "pme_river": { + "CMOR_varname": "wfo", + "standard_name": "water_flux_into_sea_water", + "long_name": "Water Flux Into Sea Water", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "concso2": { + "CMOR_varname": "concso2", + "standard_name": "mole_fraction_of_sulfur_dioxide_in_air", + "long_name": "Mole Fraction of SO2", + "modeling_realm": "aerosol", + "units": "1" + }, + "phyfe": { + "CMOR_varname": "phyfe", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", + "long_name": "Phytoplankton Iron Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "fbddtdic": { + "CMOR_varname": "fbddtdic", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "mrsofc": { + "CMOR_varname": "mrsofc", + "standard_name": "soil_moisture_content_at_field_capacity", + "long_name": "Capacity of Soil to Store Water", + "modeling_realm": "land", + "units": "kg m-2" + }, + "concpoa": { + "CMOR_varname": "concpoa", + "standard_name": "mass_concentration_of_primary_particulate_organic_matter_dry_aerosol_in_air", + "long_name": "Concentration of Dry Aerosol Primary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "mrso": { + "CMOR_varname": "mrsoClim", + "standard_name": "soil_moisture_content", + "long_name": "Total Soil Moisture Content", + "modeling_realm": "land", + "units": "kg m-2" + }, + "sfc_po45": { + "CMOR_varname": "po4", + "standard_name": "??", + "long_name": "phosphate", + "modeling_realm": "atmos", + "units": "mol P m-3" + }, + "cfadDbze94_sat": { + "CMOR_varname": "cfadDbze94", + "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", + "long_name": "CloudSat Radar Reflectivity CFAD", + "modeling_realm": "atmos", + "units": "1" + }, + "intpcalcite": { + "CMOR_varname": "intpcalcite", + "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", + "long_name": "Calcite Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "Surface Snow Area Fraction", + "modeling_realm": "ocean & ice", + "units": "%" + }, + "clcalipso2": { + "CMOR_varname": "clcalipso2", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", + "modeling_realm": "atmos", + "units": "%" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "downwelling_shortwave_flux_in_sea_water", + "long_name": "Downwelling Shortwave Radiation in Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "volo": { + "CMOR_varname": "volo", + "standard_name": "sea_water_volume", + "long_name": "Sea Water Volume", + "modeling_realm": "ocean", + "units": "m3" + }, + "cdnc": { + "CMOR_varname": "cdnc", + "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air", + "long_name": "Cloud Droplet Number Concentration", + "modeling_realm": "aerosol", + "units": "m-3" + }, + "epcalc100": { + "CMOR_varname": "epcalc100", + "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Downward Flux of Calcite", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "si": { + "CMOR_varname": "si", + "standard_name": "mole_concentration_of_silicate_in_sea_water", + "long_name": "Dissolved Silicate Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "o2": { + "CMOR_varname": "o2", + "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", + "long_name": "Dissolved Oxygen Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "reff_ccclliq": { + "CMOR_varname": "reffclwc", + "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "m" + }, + "sfc_hflux_from_water_evap": { + "CMOR_varname": "hfevapds", + "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", + "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "tasmin": { + "CMOR_varname": "tasmin", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "rh_ref": { + "CMOR_varname": "rh_ref", + "standard_name": "relative_humidity", + "long_name": "relative humidity at 2 m", + "modeling_realm": "atmos", + "units": "percent" + }, + "wfo": { + "CMOR_varname": "wfo", + "standard_name": "water_flux_into_sea_water", + "long_name": "Water Flux Into Sea Water", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "conv_freq": { + "CMOR_varname": "ciClim", + "standard_name": "convection_time_fraction", + "long_name": "Fraction of Time Convection Occurs", + "modeling_realm": "atmos", + "units": "1" + }, + "hfgeou": { + "CMOR_varname": "hfgeou", + "standard_name": "upward_geothermal_heat_flux_at_sea_floor", + "long_name": "Upward Geothermal Heat Flux at Sea Floor", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "detoc": { + "CMOR_varname": "detoc", + "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", + "long_name": "Detrital Organic Carbon Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "graz": { + "CMOR_varname": "graz", + "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_grazing_of_phytoplankton", + "long_name": "Total Grazing of Phytoplankton by Zooplankton", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "omldamax_mon": { + "CMOR_varname": "omldamax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", + "long_name": "Mean Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", + "modeling_realm": "ocean", + "units": "m" + }, + "concbc": { + "CMOR_varname": "concbc", + "standard_name": "mass_concentration_of_black_carbon_dry_aerosol_in_air", + "long_name": "Concentration of Black Carbon Aerosol", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "dpocdtpico": { + "CMOR_varname": "dpocdtpico", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", + "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Picophytoplankton", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "tntr": { + "CMOR_varname": "tntr", + "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", + "long_name": "Tendency of Air Temperature due to Radiative Heating", + "modeling_realm": "atmos", + "units": "K s-1" + }, + "eparag100": { + "CMOR_varname": "eparag100", + "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Downward Flux of Aragonite", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "SOA_ddep": { + "CMOR_varname": "drysoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of Dry Aerosol Secondary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "mld": { + "CMOR_varname": "mlotst", + "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", + "modeling_realm": "ocean", + "units": "m" + }, + "sea_level": { + "CMOR_varname": "zos", + "standard_name": "sea_surface_height_above_geoid", + "long_name": "Sea Surface Height Above Geoid", + "modeling_realm": "ocean", + "units": "m" + }, + "gridspec": { + "CMOR_varname": "gridspec", + "standard_name": "[gridspec_seaIce]", + "long_name": "Gridspec", + "modeling_realm": "ocean & ice", + "units": "" + }, + "diff_t": { + "CMOR_varname": "edt", + "standard_name": "atmosphere_heat_diffusivity", + "long_name": "Eddy Diffusivity Coefficient for Temperature Variable", + "modeling_realm": "atmos", + "units": "m2 s-1" + }, + "diff_cbt_tides": { + "CMOR_varname": "difvtrto", + "standard_name": "ocean_vertical_tracer_diffusivity_due_to_tides", + "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "temp_global_ave": { + "CMOR_varname": "thetaoga", + "standard_name": "sea_water_potential_temperature", + "long_name": "Global Average Sea Water Potential Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "swup_toa": { + "CMOR_varname": "rsut4co2", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "prec_conv": { + "CMOR_varname": "prcClim", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "msftyrhozba": { + "CMOR_varname": "msftyrhozba", + "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_bolus_advection", + "long_name": "Ocean Y Overturning Mass Streamfunction due to Bolus Advection", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "SWDN": { + "CMOR_varname": "rsds", + "standard_name": "downwelling_shortwave_flux_in_sea_water", + "long_name": "Downwelling Shortwave Radiation in Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "clws": { + "CMOR_varname": "clws", + "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "1" + }, + "sconcso4": { + "CMOR_varname": "sconcso4", + "standard_name": "mass_concentration_of_sulfate_dry_aerosol_in_air", + "long_name": "Surface Concentration of SO4", + "modeling_realm": "atmos", + "units": "kg m-3" + }, + "msftmyz": { + "CMOR_varname": "msftmyz", + "standard_name": "ocean_meridional_overturning_mass_streamfunction", + "long_name": "Ocean Meridional Overturning Mass Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "vmo": { + "CMOR_varname": "vmo", + "standard_name": "ocean_mass_y_transport", + "long_name": "Ocean Mass Y Transport", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "mc_half": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "dpo2": { + "CMOR_varname": "dpo2", + "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Delta PO2", + "modeling_realm": "ocean_biochem", + "units": "Pa" + }, + "hflssi": { + "CMOR_varname": "hflssi", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "W m-2" + }, + "t_ref": { + "CMOR_varname": "tasClim", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "power_diss": { + "CMOR_varname": "tnpeo", + "standard_name": "tendency_of_ocean_potential_energy_content", + "long_name": "Tendency of Ocean Potential Energy Content", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "olr_clr": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "rootd": { + "CMOR_varname": "rootd", + "standard_name": "soil_moisture_content_at_field_capacity", + "long_name": "Capacity of Soil to Store Water", + "modeling_realm": "land", + "units": "kg m-2" + }, + "tauv": { + "CMOR_varname": "tauvClim", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "modeling_realm": "atmos", + "units": "Pa" + }, + "cRoot": { + "CMOR_varname": "cRoot", + "standard_name": "root_carbon_content", + "long_name": "Carbon Mass in Roots", + "modeling_realm": "land", + "units": "kg m-2" + }, + "mrros": { + "CMOR_varname": "mrros", + "standard_name": "surface_runoff_flux", + "long_name": "Surface Runoff", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "snow_tot": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "pnew": { + "CMOR_varname": "pnew", + "standard_name": "tendency_of_mole_concentration_of_organic_carbon_in_sea_water_due_to_net_new_primary_production", + "long_name": "Primary Carbon Production by Phytoplankton Based on NO3 Alone", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "msftmrhoz": { + "CMOR_varname": "msftmrhoz", + "standard_name": "ocean_meridional_overturning_mass_streamfunction", + "long_name": "Ocean Meridional Overturning Mass Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "detoc": { + "CMOR_varname": "detoc", + "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", + "long_name": "Detrital Organic Carbon Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "masso": { + "CMOR_varname": "masso", + "standard_name": "sea_water_mass", + "long_name": "Sea Water Mass", + "modeling_realm": "ocean", + "units": "kg" + }, + "dtau_s": { + "CMOR_varname": "dtaus", + "standard_name": "atmosphere_optical_thickness_due_to_stratiform_cloud", + "long_name": "Stratiform Cloud Optical Depth", + "modeling_realm": "atmos", + "units": "1" + }, + "epn100": { + "CMOR_varname": "epn100", + "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", + "long_name": "Downward Flux of Particulate Organic Nitrogen", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "psiu": { + "CMOR_varname": "msftbarot", + "standard_name": "ocean_barotropic_mass_streamfunction", + "long_name": "Ocean Barotropic Mass Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "fbddtdin": { + "CMOR_varname": "fbddtdin", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "diftrelo": { + "CMOR_varname": "diftrelo", + "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", + "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "SH": { + "CMOR_varname": "hfss", + "standard_name": "surface_downward_sensible_heat_flux", + "long_name": "Surface Downward Sensible Heat Flux", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "lsice": { + "CMOR_varname": "clis", + "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Ice", + "modeling_realm": "atmos", + "units": "1" + }, + "evisct": { + "CMOR_varname": "evisct", + "standard_name": "atmosphere_heat_diffusivity", + "long_name": "Eddy Diffusivity Coefficients for Temperature", + "modeling_realm": "atmos", + "units": "m2 s-1" + }, + "chlmisc": { + "CMOR_varname": "chlmisc", + "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Other Phytoplankton Chlorophyll Mass Concentration", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "fLuc": { + "CMOR_varname": "fLuc", + "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", + "long_name": "Net Carbon Mass Flux into Atmosphere due to Land Use Change", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "swup_toa": { + "CMOR_varname": "rsutClim", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "swdn_sfc_clr": { + "CMOR_varname": "rsdscs", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "tsice": { + "CMOR_varname": "tsice", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature of Sea Ice", + "modeling_realm": "ocean & ice", + "units": "K" + }, + "cldncl": { + "CMOR_varname": "cldncl", + "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", + "long_name": "Cloud Droplet Number Concentration of Cloud Tops", + "modeling_realm": "atmos", + "units": "m-3" + }, + "soga": { + "CMOR_varname": "soga", + "standard_name": "sea_water_salinity", + "long_name": "Global Mean Sea Water Salinity", + "modeling_realm": "ocean", + "units": "psu" + }, + "conv_cld_base": { + "CMOR_varname": "ccbClim", + "standard_name": "air_pressure_at_convective_cloud_base", + "long_name": "Air Pressure at Convective Cloud Base", + "modeling_realm": "atmos", + "units": "Pa" + }, + "tclisccp": { + "CMOR_varname": "cltisccp", + "standard_name": "cloud_area_fraction", + "long_name": "ISCCP Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "tran": { + "CMOR_varname": "tran", + "standard_name": "transpiration_flux", + "long_name": "Transpiration", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "nh4": { + "CMOR_varname": "nh4", + "standard_name": "mole_concentration_of_ammonium_in_sea_water", + "long_name": "Dissolved Ammonium Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "ph": { + "CMOR_varname": "ph", + "standard_name": "sea_water_ph_reported_on_total_scale", + "long_name": "pH at Surface", + "modeling_realm": "ocean_biochem", + "units": "1" + }, + "rh": { + "CMOR_varname": "rh", + "standard_name": "heterotrophic_respiration_carbon_flux", + "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "msftyyz": { + "CMOR_varname": "msftyyz", + "standard_name": "ocean_y_overturning_mass_streamfunction", + "long_name": "Ocean Y Overturning Mass Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "SSH": { + "CMOR_varname": "zos", + "standard_name": "sea_surface_height_above_geoid", + "long_name": "Sea Surface Height Above Geoid", + "modeling_realm": "ocean", + "units": "m" + }, + "ice_calving": { + "CMOR_varname": "ficeberg", + "standard_name": "water_flux_into_sea_water_from_icebergs", + "long_name": "Water Flux into Sea Water From Icebergs", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "cfc_11": { + "CMOR_varname": "cfc11", + "standard_name": "moles_per_unit_mass_of_cfc11_in_sea_water", + "long_name": "Moles Per Unit Mass of CFC-11 in Sea Water", + "modeling_realm": "ocean", + "units": "mol kg-1" + }, + "pfull_cmip": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Full-Levels", + "modeling_realm": "atmos", + "units": "Pa" + }, + "lwdn_sfc": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "cllcalipso": { + "CMOR_varname": "cllcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Low Level Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "omg500": { + "CMOR_varname": "wap500", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "modeling_realm": "atmos", + "units": "Pa s-1" + }, + "usi": { + "CMOR_varname": "usi", + "standard_name": "eastward_sea_ice_velocity", + "long_name": "Eastward Sea Ice Velocity", + "modeling_realm": "seaIce & ocean", + "units": "m s-1" + }, + "tntscpbl2": { + "CMOR_varname": "tntscpbl", + "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", + "long_name": "Tendency of Air Temperature due to Stratiform Cloud Condensation and Evaporation", + "modeling_realm": "atmos", + "units": "K s-1" + }, + "cVeg": { + "CMOR_varname": "cVeg", + "standard_name": "vegetation_carbon_content", + "long_name": "Carbon Mass in Vegetation", + "modeling_realm": "land", + "units": "kg m-2" + }, + "dispkevfo": { + "CMOR_varname": "dispkevfo", + "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_vertical_friction", + "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to Vertical Friction", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "mlotst": { + "CMOR_varname": "mlotst", + "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", + "modeling_realm": "ocean", + "units": "m" + }, + "bddtdisi": { + "CMOR_varname": "bddtdisi", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicate_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "cSoilFast": { + "CMOR_varname": "cSoilFast", + "standard_name": "fast_soil_pool_carbon_content", + "long_name": "Carbon Mass in Fast Soil Pool", + "modeling_realm": "land", + "units": "kg m-2" + }, + "aer_ab_c_vs": { + "CMOR_varname": "abs550aer", + "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol", + "long_name": "Ambient Aerosol Absorption Optical Thickness at 550 nm", + "modeling_realm": "aerosol", + "units": "1" + }, + "bsi": { + "CMOR_varname": "bsi", + "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", + "long_name": "Particulate Biogenic Silica Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "power_diss_back": { + "CMOR_varname": "tnpeotb", + "standard_name": "tendency_of_ocean_potential_energy_content_due_to_background", + "long_name": "Tendency of Ocean Potential Energy Content due to Background", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "cli": { + "CMOR_varname": "cliClim", + "standard_name": "mass_fraction_of_cloud_ice_in_air", + "long_name": "Mass Fraction of Cloud Ice", + "modeling_realm": "atmos", + "units": "1" + }, + "talk": { + "CMOR_varname": "talk", + "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Total Alkalinity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "sconcsoa": { + "CMOR_varname": "sconcsoa", + "standard_name": "mass_concentration_of_secondary_particulate_organic_matter_dry_aerosol_in_air", + "long_name": "Surface Concentration of Dry Aerosol Secondary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "phyp": { + "CMOR_varname": "phyp", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", + "long_name": "Phytoplankton Phosphorus Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "phydiat": { + "CMOR_varname": "phydiat", + "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "mrsos": { + "CMOR_varname": "mrsosClim", + "standard_name": "moisture_content_of_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column", + "modeling_realm": "land", + "units": "kg m-2" + }, + "NH3_emis_cmip2": { + "CMOR_varname": "eminh3", + "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_emission", + "long_name": "Total Emission Rate of NH3", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "VI": { + "CMOR_varname": "vsi", + "standard_name": "northward_sea_ice_velocity", + "long_name": "Northward Sea Ice Velocity", + "modeling_realm": "seaIce & ocean", + "units": "m s-1" + }, + "t_ref_max": { + "CMOR_varname": "tasmax", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "runoff": { + "CMOR_varname": "friver", + "standard_name": "water_flux_into_sea_water_from_rivers", + "long_name": "Water Flux into Sea Water From Rivers", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "soil_T": { + "CMOR_varname": "tsl", + "standard_name": "soil_temperature", + "long_name": "Temperature of Soil", + "modeling_realm": "land", + "units": "K" + }, + "hght": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "modeling_realm": "atmos", + "units": "m" + }, + "sss": { + "CMOR_varname": "sos", + "standard_name": "sea_surface_salinity", + "long_name": "Sea Surface Salinity", + "modeling_realm": "ocean", + "units": "psu" + }, + "msftbarot": { + "CMOR_varname": "msftbarot", + "standard_name": "ocean_barotropic_mass_streamfunction", + "long_name": "Ocean Barotropic Mass Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "intppico": { + "CMOR_varname": "intppico", + "standard_name": "net_primary_mole_productivity_of_carbon_by_picophytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "SOA_col": { + "CMOR_varname": "loadsoa", + "standard_name": "atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol", + "long_name": "Load of Dry Aerosol Secondary Organic Matter", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "aer_ex_c_870": { + "CMOR_varname": "od870aer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol", + "long_name": "Ambient Aerosol Opitical Thickness at 870 nm", + "modeling_realm": "aerosol", + "units": "1" + }, + "fprec": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux where Ice Free Ocean over Sea", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "snm": { + "CMOR_varname": "snmClim", + "standard_name": "surface_snow_melt_flux", + "long_name": "Surface Snow Melt", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "ridgice": { + "CMOR_varname": "ridgice", + "standard_name": "tendency_of_sea_ice_area_fraction_due_to_ridging", + "long_name": "Sea Ice Ridging Rate", + "modeling_realm": "ocean & ice", + "units": "s-1" + }, + "rh_ref_cmip": { + "CMOR_varname": "hursClim", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "temp": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "intdic": { + "CMOR_varname": "intdic", + "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", + "long_name": "Dissolved Inorganic Carbon Content", + "modeling_realm": "ocean_biochem", + "units": "kg m-2 " + }, + "om_ddep": { + "CMOR_varname": "drypoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of Dry Aerosol Primary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "physi": { + "CMOR_varname": "physi", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", + "long_name": "Phytoplankton Silica Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "fHarvest": { + "CMOR_varname": "fHarvest", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting", + "long_name": "Carbon Mass Flux into Atmosphere due to Crop Harvesting", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "expn": { + "CMOR_varname": "expn", + "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", + "long_name": "Sinking Particulate Organic Nitrogen Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "dcalc": { + "CMOR_varname": "dcalc", + "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_dissolution", + "long_name": "Calcite Dissolution", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "olr": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "cfc11": { + "CMOR_varname": "cfc11", + "standard_name": "moles_of_cfc11_per_unit_mass_in_sea_water", + "long_name": "Moles Per Unit Mass of CFC-11 in Sea Water", + "modeling_realm": "ocean", + "units": "mol kg-1" + }, + "vhgm_rho": { + "CMOR_varname": "msftyyzba", + "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_bolus_advection", + "long_name": "Ocean Y Overturning Mass Streamfunction due to Bolus Advection", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "tasmax": { + "CMOR_varname": "tasmaxClim", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "concdms": { + "CMOR_varname": "concdms", + "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", + "long_name": "Mole Fraction of DMS", + "modeling_realm": "aerosol", + "units": "1" + }, + "diff_cbt_back": { + "CMOR_varname": "difvtrbo", + "standard_name": "ocean_vertical_tracer_diffusivity_due_to_background", + "long_name": "Ocean Vertical Tracer Diffusivity due to Background", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "pbo": { + "CMOR_varname": "pbo", + "standard_name": "sea_water_pressure_at_sea_floor", + "long_name": "Sea Water Pressure at Sea floor", + "modeling_realm": "ocean", + "units": "dbar" + }, + "concoa": { + "CMOR_varname": "concoa", + "standard_name": "mass_concentration_of_particulate_organic_matter_dry_aerosol_in_air", + "long_name": "Concentration of Dry Aerosol Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "diff_m": { + "CMOR_varname": "evu", + "standard_name": "atmosphere_momentum_diffusivity", + "long_name": "Eddy Viscosity Coefficient for Momentum Variables", + "modeling_realm": "atmos", + "units": "m2 s-1" + }, + "dissic": { + "CMOR_varname": "dissic", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", + "long_name": "Dissolved Inorganic Carbon Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "t_ref_min": { + "CMOR_varname": "tasmin", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "fddtdic": { + "CMOR_varname": "fddtdic", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", + "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "cli": { + "CMOR_varname": "cli", + "standard_name": "mass_fraction_of_cloud_ice_in_air", + "long_name": "Mass Fraction of Cloud Ice", + "modeling_realm": "atmos", + "units": "1" + }, + "intpmisc": { + "CMOR_varname": "intpmisc", + "standard_name": "net_primary_mole_productivity_of_carbon_by_miscellaneous_phytoplankton", + "long_name": "Primary Organic Carbon Production by Other Phytoplankton", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "lsliq": { + "CMOR_varname": "clws", + "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "1" + }, + "cltcalipso_sat": { + "CMOR_varname": "cltcalipso", + "standard_name": "cloud_area_fraction", + "long_name": "CALIPSO Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "tnhus2": { + "CMOR_varname": "tnhus", + "standard_name": "tendency_of_specific_humidity", + "long_name": "Tendency of Specific Humidity", + "modeling_realm": "atmos", + "units": "s-1" + }, + "tnhusa": { + "CMOR_varname": "tnhusa", + "standard_name": "tendency_of_specific_humidity_due_to_advection", + "long_name": "Tendency of Specific Humidity due to Advection", + "modeling_realm": "atmos", + "units": "s-1" + }, + "sconcnh4": { + "CMOR_varname": "sconcnh4", + "standard_name": "mass_concentration_of_ammonium_dry_aerosol_in_air", + "long_name": "Surface Concentration of NH4", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "hur": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "snw": { + "CMOR_varname": "snwClim", + "standard_name": "surface_snow_amount", + "long_name": "Surface Snow Amount", + "modeling_realm": "land_ice", + "units": "kg m-2" + }, + "swup_sfc": { + "CMOR_varname": "rsusClim", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "simpleDMS_emis_cmip": { + "CMOR_varname": "emidms", + "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_emission", + "long_name": "Total Emission Rate of DMS", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "temp": { + "CMOR_varname": "thetao", + "standard_name": "sea_water_potential_temperature", + "long_name": "Sea Water Potential Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "t_surf": { + "CMOR_varname": "tsClim", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "modeling_realm": "land", + "units": "K" + }, + "mrlso": { + "CMOR_varname": "mrfsoClim", + "standard_name": "soil_frozen_water_content", + "long_name": "Soil Frozen Water Content", + "modeling_realm": "land & landIce", + "units": "kg m-2" + }, + "snow_tot": { + "CMOR_varname": "prsnClim", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "netrad_1_Pa": { + "CMOR_varname": "rtmt", + "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", + "long_name": "Net Downward Flux at Top of Model", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "pcalc": { + "CMOR_varname": "pcalc", + "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_biological_production", + "long_name": "Calcite Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "chldiat": { + "CMOR_varname": "chldiat", + "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", + "long_name": "Diatom Chlorophyll Mass Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_downward_latent_heat_flux", + "long_name": "Surface Downward Latent Heat Flux", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "sconcno3": { + "CMOR_varname": "sconcno3", + "standard_name": "mass_concentration_of_nitrate_dry_aerosol_in_air", + "long_name": "Surface Concentration of NO3", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "t_ref": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature Where Land", + "modeling_realm": "land", + "units": "K" + }, + "cSoil": { + "CMOR_varname": "cSoil", + "standard_name": "soil_carbon_content", + "long_name": "Carbon in Soil Pool", + "modeling_realm": "land", + "units": "kg m-2" + }, + "rsussi": { + "CMOR_varname": "rsussi", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Upward Shortwave over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "W m-2" + }, + "fddtalk": { + "CMOR_varname": "fddtalk", + "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Rate of Change of Alkalinity", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "bddtdip": { + "CMOR_varname": "bddtdip", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphate_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Phosphate due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "modeling_realm": "atmos", + "units": "1" + }, + "parasol_refl_sat": { + "CMOR_varname": "parasolRefl", + "standard_name": "toa_bidirectional_reflectance", + "long_name": "PARASOL Reflectance", + "modeling_realm": "atmos", + "units": "1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "fl_ccsnow": { + "CMOR_varname": "prsnc", + "standard_name": "convective_snowfall_flux", + "long_name": "Convective Snowfall Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "zostoga": { + "CMOR_varname": "zostoga", + "standard_name": "global_average_thermosteric_sea_level_change", + "long_name": "Global Average Thermosteric Sea Level Change", + "modeling_realm": "ocean", + "units": "m" + }, + "evap": { + "CMOR_varname": "evs", + "standard_name": "water_evaporation_flux", + "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "concdust": { + "CMOR_varname": "concdust", + "standard_name": "mass_concentration_ of_dust_dry_aerosol_in_air", + "long_name": "Concentration of Dust", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "strairy": { + "CMOR_varname": "strairy", + "standard_name": "surface_downward_y_stress", + "long_name": "Northward Atmospheric Stress On Sea Ice", + "modeling_realm": "ocean & ice", + "units": "N m-2" + }, + "parag": { + "CMOR_varname": "parag", + "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_biological_production", + "long_name": "Aragonite Production", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "soil_T": { + "CMOR_varname": "tslClim", + "standard_name": "soil_temperature", + "long_name": "Temperature of Soil", + "modeling_realm": "land", + "units": "K" + }, + "fgco2": { + "CMOR_varname": "fgco2", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", + "long_name": "Surface Downward CO2 Flux", + "modeling_realm": "ocean_biochem", + "units": "kg m-2 s-1" + }, + "tau_x": { + "CMOR_varname": "tauu", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "modeling_realm": "atmos", + "units": "Pa" + }, + "tnta": { + "CMOR_varname": "tnta", + "standard_name": "tendency_of_air_temperature_due_to_advection", + "long_name": "Tendency of Air Temperature due to Advection", + "modeling_realm": "atmos", + "units": "K s-1" + }, + "zooc": { + "CMOR_varname": "zooc", + "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Zooplankton Carbon Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "hfydiff": { + "CMOR_varname": "hfydiff", + "standard_name": "ocean_heat_y_transport_due_to_diffusion", + "long_name": "Ocean Heat Y Transport due to Diffussion", + "modeling_realm": "ocean", + "units": "W" + }, + "netrad_1_Pa": { + "CMOR_varname": "rtmtClim", + "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", + "long_name": "Net Downward Flux at Top of Model", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "baresoilFrac": { + "CMOR_varname": "baresoilFrac", + "standard_name": "area_fraction", + "long_name": "Bare Soil Fraction", + "modeling_realm": "land", + "units": "%" + }, + "phypico": { + "CMOR_varname": "phypico", + "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "ucomp": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "SOA_chem_col": { + "CMOR_varname": "chepsoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_due_to_net_chemical_production", + "long_name": "Production Rate of Dry Aerosol Secondary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "u": { + "CMOR_varname": "uo", + "standard_name": "sea_water_x_velocity", + "long_name": "Sea Water X Velocity", + "modeling_realm": "ocean", + "units": "m s-1" + }, + "diftrblo": { + "CMOR_varname": "diftrblo", + "standard_name": "ocean_tracer_bolus_laplacian_diffusivity", + "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "tasmax": { + "CMOR_varname": "tasmax", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "dpco2": { + "CMOR_varname": "dpco2", + "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Delta PCO2", + "modeling_realm": "ocean_biochem", + "units": "Pa" + }, + "dust_emis": { + "CMOR_varname": "emidust", + "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_due_to_emission", + "long_name": "Total Emission Rate of Dust", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "swup_sfc_clr": { + "CMOR_varname": "rsuscsClim", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "SO4_ddep_cmip": { + "CMOR_varname": "dryso4", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of SO4", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "tz_trans": { + "CMOR_varname": "wmo", + "standard_name": "upward_ocean_mass_transport", + "long_name": "Upward Ocean Mass Transport", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "Kd_z": { + "CMOR_varname": "difvso", + "standard_name": "ocean_vertical_salt_diffusivity", + "long_name": "Ocean Vertical Salt Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "nbp": { + "CMOR_varname": "nbp", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", + "long_name": "Carbon Mass Flux out of Atmosphere due to Net Biospheric Production on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "msftmrhozba": { + "CMOR_varname": "msftmrhozba", + "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_bolus_advection", + "long_name": "Ocean Meridional Overturning Mass Streamfunction due to Bolus Advection", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "calc": { + "CMOR_varname": "calc", + "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Calcite Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "hfssi": { + "CMOR_varname": "hfssi", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "W m-2" + }, + "parasolRefl": { + "CMOR_varname": "parasolRefl", + "standard_name": "toa_bidirectional_reflectance", + "long_name": "PARASOL Reflectance", + "modeling_realm": "atmos", + "units": "1" + }, + "aredi": { + "CMOR_varname": "diftrelo", + "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", + "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "conv_cld_top": { + "CMOR_varname": "cct", + "standard_name": "air_pressure_at_convective_cloud_top", + "long_name": "Air Pressure at Convective Cloud Top", + "modeling_realm": "atmos", + "units": "Pa" + }, + "hfyba": { + "CMOR_varname": "hfyba", + "standard_name": "ocean_heat_y_transport_due_to_bolus_advection", + "long_name": "Ocean Heat Y Transport due to Bolus Advection", + "modeling_realm": "ocean", + "units": "W" + }, + "v": { + "CMOR_varname": "vo", + "standard_name": "sea_water_y_velocity", + "long_name": "Sea Water Y Velocity", + "modeling_realm": "ocean", + "units": "m s-1" + }, + "omega": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "modeling_realm": "atmos", + "units": "Pa s-1" + }, + "sftlf": { + "CMOR_varname": "sftlf", + "standard_name": "land_area_fraction", + "long_name": "Land Area Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "olr_clr": { + "CMOR_varname": "rlutcsClim", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "netrad_toa": { + "CMOR_varname": "rtoa", + "standard_name": "toa_net_downward_radiative_flux", + "long_name": "TOA Net Downward Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "om_wet_dep": { + "CMOR_varname": "wetpoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Dry Aerosol Primary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "hfxdiff": { + "CMOR_varname": "hfxdiff", + "standard_name": "ocean_heat_x_transport_due_to_diffusion", + "long_name": "Ocean Heat X Transport due to Diffusion", + "modeling_realm": "ocean", + "units": "W" + }, + "mcd": { + "CMOR_varname": "mcd", + "standard_name": "atmosphere_downdraft_convective_mass_flux", + "long_name": "Downdraught Convective Mass Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "ageice": { + "CMOR_varname": "ageice", + "standard_name": "age_of_sea_ice", + "long_name": "Age of Sea Ice", + "modeling_realm": "ocean & ice", + "units": "years" + }, + "areacello": { + "CMOR_varname": "areacello", + "standard_name": "cell_area", + "long_name": "Ocean Grid-Cell Area", + "modeling_realm": "ocean", + "units": "m-2" + }, + "phyp": { + "CMOR_varname": "phyp", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", + "long_name": "Phytoplankton Phosphorus Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "totNH4_wet_dep": { + "CMOR_varname": "wetnh4", + "standard_name": "tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of NH4+NH3", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "sst_sq": { + "CMOR_varname": "tossq", + "standard_name": "square_of_sea_surface_temperature", + "long_name": "Square of Sea Surface Temperature", + "modeling_realm": "ocean", + "units": "K2" + }, + "gm_eddy_ke_source": { + "CMOR_varname": "tnkebto", + "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", + "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "tnhusmp": { + "CMOR_varname": "tnhusmp", + "standard_name": "tendency_of_specific_humidity_due_to_model_physics", + "long_name": "Tendency of Specific Humidity due to Model Physics", + "modeling_realm": "atmos", + "units": "s-1" + }, + "WP_all_clouds": { + "CMOR_varname": "clwviClim", + "standard_name": "atmosphere_cloud_condensed_water_content", + "long_name": "Condensed Water Path", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "cSoilMedium": { + "CMOR_varname": "cSoilMedium", + "standard_name": "medium_soil_pool_carbon_content", + "long_name": "Carbon Mass in Medium Soil Pool", + "modeling_realm": "land", + "units": "kg m-2" + }, + "lai": { + "CMOR_varname": "lai", + "standard_name": "leaf_area_index", + "long_name": "Leaf Area Index", + "modeling_realm": "land", + "units": "1" + }, + "IWP_all_clouds": { + "CMOR_varname": "clivi", + "standard_name": "atmosphere_cloud_ice_content", + "long_name": "Ice Water Path", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "mrsos": { + "CMOR_varname": "mrsos", + "standard_name": "moisture_content_of_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column", + "modeling_realm": "land", + "units": "kg m-2" + }, + "no3": { + "CMOR_varname": "no3", + "standard_name": "mole_concentration_of_nitrate_in_sea_water", + "long_name": "Dissolved Nitrate Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "zsatarag": { + "CMOR_varname": "zsatarag", + "standard_name": "minimum_depth_of_aragonite_undersaturation_in_sea_water", + "long_name": "Aragonite Saturation Depth", + "modeling_realm": "ocean_biochem", + "units": "m" + }, + "aiso_bih": { + "CMOR_varname": "difmxybo", + "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", + "long_name": "Ocean Momentum XY Biharmonic Diffusivity", + "modeling_realm": "ocean", + "units": "m4 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux where Ice Free Ocean over Sea", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "sens_heat": { + "CMOR_varname": "hfss", + "standard_name": "surface_downward_sensible_heat_flux", + "long_name": "Surface Downward Sensible Heat Flux", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "evspsblsoi": { + "CMOR_varname": "evspsblsoiClim", + "standard_name": "water_evaporation_flux_from_soil", + "long_name": "Water Evaporation from Soil", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "sulfate_col_cmip": { + "CMOR_varname": "loadso4", + "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol", + "long_name": "Load of SO4", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "ccliq": { + "CMOR_varname": "clwc", + "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Convective Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "1" + }, + "clmcalipso_sat": { + "CMOR_varname": "clmcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Mid Level Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "tot_nh4_col": { + "CMOR_varname": "loadnh4", + "standard_name": "atmosphere_mass_content_of_ammonium_dry_aerosol", + "long_name": "Load of NH4", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "pr_ocean": { + "CMOR_varname": "pr", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux where Ice Free Ocean over Sea", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "lw_heat": { + "CMOR_varname": "rlds", + "standard_name": "surface_net_downward_longwave_flux", + "long_name": "Surface Net Downward Longwave Radiation", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "streng": { + "CMOR_varname": "streng", + "standard_name": "compressive_strength_of_sea_ice", + "long_name": "Compressive Sea Ice Strength", + "modeling_realm": "ocean & ice", + "units": "N m-1" + }, + "psl": { + "CMOR_varname": "pslClim", + "standard_name": "air_pressure_at_sea_level", + "long_name": "Sea Level Pressure", + "modeling_realm": "atmos", + "units": "Pa" + }, + "expp": { + "CMOR_varname": "expp", + "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", + "long_name": "Sinking Particulate Organic Phosphorus Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "fddtdin": { + "CMOR_varname": "fddtdin", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", + "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "LH": { + "CMOR_varname": "hfls", + "standard_name": "surface_downward_latent_heat_flux", + "long_name": "Surface Downward Latent Heat Flux", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "snd": { + "CMOR_varname": "snd", + "standard_name": "surface_snow_thickness", + "long_name": "Snow Depth", + "modeling_realm": "ocean & ice", + "units": "m" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Surface Snowfall Rate into the Sea Ice Portion of the Grid Cell", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "conv_cld_base": { + "CMOR_varname": "ccb", + "standard_name": "air_pressure_at_convective_cloud_base", + "long_name": "Air Pressure at Convective Cloud Base", + "modeling_realm": "atmos", + "units": "Pa" + }, + "phypico": { + "CMOR_varname": "phypico", + "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water", + }, + "": { + "CMOR_varname": "ocean_biochem", + "standard_name": "mol m-3", + }, + "phyn": { + "CMOR_varname": "phyn", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", + "long_name": "Phytoplankton Nitrogen Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "hblt_max": { + "CMOR_varname": "omlmax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", + "long_name": "Monthly Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", + "modeling_realm": "ocean", + "units": "m" + }, + "rh_cm": { + "CMOR_varname": "rh", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "modeling_realm": "atmos", + "units": "%" + }, + "emibcv2": { + "CMOR_varname": "emibc", + "standard_name": "tendency_of_atmosphere_mass_content_of_black_carbon_dry_aerosol_due_to_emission", + "long_name": "Emission Rate of Black Carbon Aerosol Mass", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "fl_ccrain": { + "CMOR_varname": "prcprof", + "standard_name": "convective_rainfall_flux", + "long_name": "Convective Rainfall Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "zh": { + "CMOR_varname": "zhalf", + "standard_name": "height_above_reference_ellipsoid", + "long_name": "Altitude of Model Half-Levels", + "modeling_realm": "atmos", + "units": "m" + }, + "evap_hflux": { + "CMOR_varname": "hfevapds", + "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", + "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "co3": { + "CMOR_varname": "co3", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Carbonate expressed as Carbon in Sea Water", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "mrlsl": { + "CMOR_varname": "mrlslClim", + "standard_name": "moisture_content_of_soil_layer", + "long_name": "Water Content of Soil Layer", + "modeling_realm": "land", + "units": "kg m-2" + }, + "sea_level_sq": { + "CMOR_varname": "zossq", + "standard_name": "square_of_sea_surface_height_above_geoid", + "long_name": "Square of Sea Surface Height Above Geoid", + "modeling_realm": "ocean", + "units": "m2" + }, + "treeFrac": { + "CMOR_varname": "treeFrac", + "standard_name": "area_fraction", + "long_name": "Tree Cover Fraction", + "modeling_realm": "land", + "units": "%" + }, + "wetso4": { + "CMOR_varname": "wetso4", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of SO4", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "tot_no3_col": { + "CMOR_varname": "loadno3", + "standard_name": "atmosphere_mass_content_of_nitrate_dry_aerosol", + "long_name": "Load of NO3", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "fsfe": { + "CMOR_varname": "fsfe", + "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", + "long_name": "Surface Downward Net Flux of Iron", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "wind_ref": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Daily-Mean Near-Surface Wind Speed", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "chldiat": { + "CMOR_varname": "chldiat", + "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", + "long_name": "Diatom Chlorophyll Mass Concentration", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "shrubFrac": { + "CMOR_varname": "shrubFrac", + "standard_name": "area_fraction", + "long_name": "Shrub Fraction", + "modeling_realm": "land", + "units": "%" + }, + "tmelt": { + "CMOR_varname": "tmelt", + "standard_name": "rate_of_melt_at_upper_surface_of_sea_ice", + "long_name": "Rate of Melt at Upper Surface of Sea Ice", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "phyc": { + "CMOR_varname": "phyc", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Phytoplankton Carbon Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "zosga": { + "CMOR_varname": "zosga", + "standard_name": "global_average_sea_level_change", + "long_name": "Global Average Sea Level Change", + "modeling_realm": "ocean", + "units": "m" + }, + "clw": { + "CMOR_varname": "clw", + "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Cloud Liquid Water", + "modeling_realm": "atmos", + "units": "1" + }, + "chl": { + "CMOR_varname": "chl", + "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Total Chlorophyll Mass Concentration", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "cMisc": { + "CMOR_varname": "cMisc", + "standard_name": "miscellaneous_living_matter_carbon_content", + "long_name": "Carbon Mass in Other Living Compartments on Land", + "modeling_realm": "land", + "units": "kg m-2" + }, + "conv_cld_top": { + "CMOR_varname": "cctClim", + "standard_name": "air_pressure_at_convective_cloud_top", + "long_name": "Air Pressure at Convective Cloud Top", + "modeling_realm": "atmos", + "units": "Pa" + }, + "swdn_sfc": { + "CMOR_varname": "rsdsClim", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "swdn_toa": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "gridspec": { + "CMOR_varname": "gridspec", + "standard_name": "[gridspec_ocean]", + "long_name": "Gridspec", + "modeling_realm": "ocean", + "units": "" + }, + "POA_col": { + "CMOR_varname": "loadpoa", + "standard_name": "atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol", + "long_name": "Load of Dry Aerosol Primary Organic Matter", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "salt_global_ave": { + "CMOR_varname": "soga", + "standard_name": "sea_water_salinity", + "long_name": "Global Mean Sea Water Salinity", + "modeling_realm": "ocean", + "units": "psu" + }, + "sic_atm": { + "CMOR_varname": "sic", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea Ice Area Fraction", + "modeling_realm": "seaIce & ocean", + "units": "%" + }, + "concsoa": { + "CMOR_varname": "concsoa", + "standard_name": "mass_concentration_of_secondary_particulate_organic_matter_dry_aerosol_in_air", + "long_name": "Concentration of Dry Aerosol Secondary Organic Matter", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "strocnx": { + "CMOR_varname": "strocnx", + "standard_name": "upward_x_stress_at_sea_ice_base", + "long_name": "Eastward Ocean Stress On Sea Ice", + "modeling_realm": "ocean & ice", + "units": "N m-2" + }, + "frn": { + "CMOR_varname": "frn", + "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", + "long_name": "Nitrogen Loss to Sediments and through Denitrification", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "expsi": { + "CMOR_varname": "expsi", + "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", + "long_name": "Sinking Particulate Silica Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "shflx": { + "CMOR_varname": "hfssClim", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "friver": { + "CMOR_varname": "friver", + "standard_name": "water_flux_into_sea_water_from_rivers", + "long_name": "Water Flux into Sea Water From Rivers", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "mrlso": { + "CMOR_varname": "mrfso", + "standard_name": "soil_frozen_water_content", + "long_name": "Soil Frozen Water Content", + "modeling_realm": "land & landIce", + "units": "kg m-2" + }, + "intpdiat": { + "CMOR_varname": "intpdiat", + "standard_name": "net_primary_mole_productivity_of_carbon_by_diatoms", + "long_name": "Primary Organic Carbon Production by Diatoms", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "lat_sat": { + "CMOR_varname": "lat", + "standard_name": "latitude", + "long_name": "Latitude", + "modeling_realm": "atmos", + "units": "degrees_north" + }, + "swdn_tot_dif_clr": { + "CMOR_varname": "rsdscsdiff", + "standard_name": "diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Diffuse Downward Clear Sky Shortwave Radiation", + "modeling_realm": "aerosol & land", + "units": "W m-2" + }, + "fediss": { + "CMOR_varname": "fediss", + "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_dissolution_from_inorganic_particles", + "long_name": "Particle Source of Dissolved Iron", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "tot_NH4_ddep_cmip": { + "CMOR_varname": "drynh4", + "standard_name": "tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of NH4", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "t_ref": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "rhopoto": { + "CMOR_varname": "rhopoto", + "standard_name": "sea_water_potential_density", + "long_name": "Sea Water Potential Density", + "modeling_realm": "ocean", + "units": "kg m-3" + }, + "phyppico": { + "CMOR_varname": "phyppico", + "standard_name": "tendency_of_mole_concentration_of_organic_carbon_in_sea_water_due_to_net_primary_production_by picophytoplankton", + "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Picop", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "tauuo": { + "CMOR_varname": "tauuo", + "standard_name": "surface_downward_x_stress", + "long_name": "Surface Downward X Stress", + "modeling_realm": "ocean", + "units": "N m-2" + }, + "UI": { + "CMOR_varname": "usi", + "standard_name": "eastward_sea_ice_velocity", + "long_name": "Eastward Sea Ice Velocity", + "modeling_realm": "seaIce & ocean", + "units": "m s-1" + }, + "lai": { + "CMOR_varname": "laiClim", + "standard_name": "leaf_area_index", + "long_name": "Leaf Area Index", + "modeling_realm": "land", + "units": "1" + }, + "arag": { + "CMOR_varname": "arag", + "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Aragonite Concentration at Surface", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 " + }, + "tauv": { + "CMOR_varname": "tauv", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "modeling_realm": "atmos", + "units": "Pa" + }, + "phymisc": { + "CMOR_varname": "phymisc", + "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "q_ref": { + "CMOR_varname": "hussClim", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "modeling_realm": "atmos", + "units": "1" + }, + "rldssi": { + "CMOR_varname": "rldssi", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Downward Long Wave over Sea Ice", + "modeling_realm": "ocean & ice", + "units": "W m-2" + }, + "chlpico": { + "CMOR_varname": "chlpico", + "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water", + "modeling_realm": "ocean_biochem", + "units": "kg m-3" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "modeling_realm": "land", + "units": "m" + }, + "swdn_sfc": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_sea_level", + "long_name": "Sea Level Pressure", + "modeling_realm": "atmos", + "units": "Pa" + }, + "mrro": { + "CMOR_varname": "mrroClim", + "standard_name": "runoff_flux", + "long_name": "Total Runoff", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "zsatcalc": { + "CMOR_varname": "zsatcalc", + "standard_name": "minimum_depth_of_calcite_undersaturation_in_sea_water", + "long_name": "Calcite Saturation Depth", + "modeling_realm": "ocean_biochem", + "units": "m" + }, + "dust_wet_dep": { + "CMOR_varname": "wetdust", + "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Dust", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "rrvn2o": { + "CMOR_varname": "n2oglobal", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "Global Mean Mole Fraction of N2O", + "modeling_realm": "atmosChem", + "units": "1e-9" + }, + "intpnitrate": { + "CMOR_varname": "intpnitrate", + "standard_name": "net_primary_mole_productivity_of_carbon_due_to_nitrate_utilization", + "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "sfdsi": { + "CMOR_varname": "sfdsi", + "standard_name": "downward_sea_ice_basal_salt_flux", + "long_name": "Downward Sea Ice Basal Salt Flux", + "modeling_realm": "ocean & seaIce", + "units": "kg m-2 s-1" + }, + "snm": { + "CMOR_varname": "snm", + "standard_name": "surface_snow_melt_flux", + "long_name": "Surface Snow Melt", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "arag": { + "CMOR_varname": "arag", + "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Aragonite Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "ec550aer": { + "CMOR_varname": "ec550aer", + "standard_name": "optical_thickness_of_atmosphere_layer_due_to_ambient_aerosol", + "long_name": "Ambient Aerosol Extinction Optical Thickness at 550 nm", + "modeling_realm": "aerosol", + "units": "m-1" + }, + "lwup_sfc": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "evspsblsoi": { + "CMOR_varname": "evspsblsoi", + "standard_name": "water_evaporation_flux_from_soil", + "long_name": "Water Evaporation from Soil", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "mrso": { + "CMOR_varname": "mrso", + "standard_name": "soil_moisture_content", + "long_name": "Total Soil Moisture Content", + "modeling_realm": "land", + "units": "kg m-2" + }, + "cWood": { + "CMOR_varname": "cWood", + "standard_name": "wood_carbon_content", + "long_name": "Carbon Mass in Wood", + "modeling_realm": "land", + "units": "kg m-2" + }, + "gpp": { + "CMOR_varname": "gpp", + "standard_name": "gross_primary_productivity_of_carbon", + "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "swup_sfc_clr": { + "CMOR_varname": "rsuscs", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "fGrazing": { + "CMOR_varname": "fGrazing", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_grazing", + "long_name": "Carbon Mass Flux into Atmosphere due to Grazing on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "cls": { + "CMOR_varname": "cls", + "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", + "long_name": "Stratiform Cloud Area Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "hfnorth": { + "CMOR_varname": "hfnorth", + "standard_name": "northward_ocean_heat_transport", + "long_name": "Northward Ocean Heat Transport", + "modeling_realm": "ocean", + "units": "W" + }, + "grLateral": { + "CMOR_varname": "grLateral", + "standard_name": "lateral_sea_ice_growth_rate", + "long_name": "Lateral Sea Ice Growth Rate", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "sst_sq": { + "CMOR_varname": "tsosq", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", + "long_name": "Mean Square of Sea Surface Temperature", + "modeling_realm": "aerosol", + "units": "K2" + }, + "mrro": { + "CMOR_varname": "mrro", + "standard_name": "runoff_flux", + "long_name": "Total Runoff", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "snoToIce": { + "CMOR_varname": "snoToIce", + "standard_name": "tendency_of_sea_ice_amount_due_to_snow_conversion", + "long_name": "Snow-Ice Formation Rate", + "modeling_realm": "ocean & ice", + "units": "kg m-2 s-1" + }, + "2d_cld_amt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "modeling_realm": "atmos", + "units": "%" + }, + "bfe": { + "CMOR_varname": "bfe", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", + "long_name": "Particulate Biogenic Iron Concentration", + "modeling_realm": "ocean_biochem", + "units": "mol m-3" + }, + "aer_ex_c_vs": { + "CMOR_varname": "od550aer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol", + "long_name": "Ambient Aerosol Opitical Thickness at 550 nm", + "modeling_realm": "aerosol", + "units": "1" + }, + "sfc_salt_flux_runoff": { + "CMOR_varname": "sfriver", + "standard_name": "salt_flux_into_sea_water_from_rivers", + "long_name": "Salt Flux into Sea Water from Rivers", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "pso": { + "CMOR_varname": "pso", + "standard_name": "sea_water_pressure_at_sea_water_surface", + "long_name": "Sea Water Pressure at Sea Water Surface", + "modeling_realm": "ocean", + "units": "dbar" + }, + "evs": { + "CMOR_varname": "evs", + "standard_name": "water_evaporation_flux", + "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", + "modeling_realm": "ocean", + "units": "kg m-2 s-1" + }, + "expcfe": { + "CMOR_varname": "expcfe", + "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", + "long_name": "Sinking Particulate Iron Flux", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "fsc": { + "CMOR_varname": "fsc", + "standard_name": "tendency_of_ocean_mole_content_of_carbon_due_to_runoff_and_sediment_dissolution", + "long_name": "Flux of Carbon Into Ocean Surface by Runoff and Sediment Dissolution", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "msftyrhoz": { + "CMOR_varname": "msftyrhoz", + "standard_name": "ocean_y_overturning_mass_streamfunction", + "long_name": "Ocean Y Overturning Mass Streamfunction", + "modeling_realm": "ocean", + "units": "kg s-1" + }, + "transifs": { + "CMOR_varname": "transifs", + "standard_name": "sea_ice_transport_across_line", + "long_name": "Sea Ice Mass Transport Through Fram Strait", + "modeling_realm": "ocean & ice", + "units": "kg s-1" + }, + "ssi": { + "CMOR_varname": "ssi", + "standard_name": "sea_ice_salinity", + "long_name": "Sea Ice Salinity", + "modeling_realm": "ocean & ice", + "units": "psu" + }, + "wind_ref_max": { + "CMOR_varname": "sfcWindmax", + "standard_name": "wind_speed", + "long_name": "Daily Maximum Near-Surface Wind Speed", + "modeling_realm": "atmos", + "units": "m s-1" + }, + "reffclwtop": { + "CMOR_varname": "reffclwtop", + "standard_name": "effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top", + "long_name": "Cloud-Top Effective Droplet Radius", + "modeling_realm": "aerosol", + "units": "m" + }, + "pm25_ex_c_vs": { + "CMOR_varname": "od550lt1aer", + "standard_name": "atmosphere_optical_thickness_due_to_pm1_ambient_aerosol", + "long_name": "Ambient Fine Aerosol Opitical Thickness at 550 nm", + "modeling_realm": "aerosol", + "units": "1" + }, + "ssalt_ddep": { + "CMOR_varname": "dryss", + "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_due_to_dry_deposition", + "long_name": "Dry Deposition Rate of Seasalt", + "modeling_realm": "aerosol", + "units": "kg m-2 s-1" + }, + "swdn_toa": { + "CMOR_varname": "rsdtClim", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "lon_sat": { + "CMOR_varname": "lon", + "standard_name": "longitude", + "long_name": "Longitude", + "modeling_realm": "atmos", + "units": "degrees_east" + }, + "tos": { + "CMOR_varname": "tos", + "standard_name": "sea_surface_temperature", + "long_name": "Sea Surface Temperature", + "modeling_realm": "ocean", + "units": "K" + }, + "swdn_sfc_clr": { + "CMOR_varname": "rsdscsClim", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "LWSs": { + "CMOR_varname": "lwsnl", + "standard_name": "liquid_water_content_of_snow_layer", + "long_name": "Liquid Water Content of Snow Layer", + "modeling_realm": "land_ice", + "units": "kg m-2" + }, + "reff_ccclice": { + "CMOR_varname": "reffclic", + "standard_name": "effective_radius_of_convective_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", + "modeling_realm": "atmos", + "units": "m" + }, + "olr": { + "CMOR_varname": "rlutClim", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "omega": { + "CMOR_varname": "wapClim", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "modeling_realm": "atmos", + "units": "Pa s-1" + }, + "c4PftFrac": { + "CMOR_varname": "c4PftFrac", + "standard_name": "area_fraction", + "long_name": "Total C4 PFT Cover Fraction", + "modeling_realm": "land", + "units": "%" + }, + "lwdn_sfc": { + "CMOR_varname": "rldsClim", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "rsd": { + "CMOR_varname": "rsd", + "standard_name": "downwelling_shortwave_flux_in_air", + "long_name": "Downwelling Shortwave Radiation", + "modeling_realm": "atmos", + "units": "W m-2" + }, + "hfds": { + "CMOR_varname": "hfds", + "standard_name": "surface_downward_heat_flux_in_sea_water", + "long_name": "Downward Heat Flux at Sea Water Surface", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "mc_full": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "concnh4": { + "CMOR_varname": "concnh4", + "standard_name": "mass_concentration_of_ammonium_dry_aerosol_in_air", + "long_name": "Concentration of NH4", + "modeling_realm": "aerosol", + "units": "kg m-3" + }, + "basin": { + "CMOR_varname": "basin", + "standard_name": "region", + "long_name": "Region Selection Index", + "modeling_realm": "ocean", + "units": "1" + }, + "fddtdife": { + "CMOR_varname": "fddtdife", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", + "long_name": "Rate of Change of Net Dissolved Inorganic Iron", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "phalf_cmip": { + "CMOR_varname": "phalf", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Half-Levels", + "modeling_realm": "aerosol", + "units": "Pa" + }, + "wmosq": { + "CMOR_varname": "wmosq", + "standard_name": "square_of_upward_ocean_mass_transport", + "long_name": "Square of Upward Ocean Mass Transport", + "modeling_realm": "ocean", + "units": "kg2 s-2" + }, + "bddtdin": { + "CMOR_varname": "bddtdin", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_nitrogen_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Nitrogen Nutrient due to Biological Activity", + "modeling_realm": "ocean_biochem", + "units": "mol m-3 s-1" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux where Ice Free Ocean over Sea", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "v_ref": { + "CMOR_varname": "vasClim", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "modeling_realm": "aerosol", + "units": "m s-1" + }, + "npp": { + "CMOR_varname": "npp", + "standard_name": "net_primary_productivity_of_carbon", + "long_name": "Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land", + "modeling_realm": "land", + "units": "kg m-2 s-1" + }, + "fddtdisi": { + "CMOR_varname": "fddtdisi", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", + "long_name": "Rate of Change of Net Dissolved Inorganic Silicate", + "modeling_realm": "ocean_biochem", + "units": "mol m-2 s-1" + }, + "rsntds": { + "CMOR_varname": "rsntds", + "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", + "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", + "modeling_realm": "ocean", + "units": "W m-2" + }, + "T": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "modeling_realm": "atmos", + "units": "K" + }, + "mcu": { + "CMOR_varname": "mcu", + "standard_name": "atmosphere_updraft_convective_mass_flux", + "long_name": "Updraught Convective Mass Flux", + "modeling_realm": "atmos", + "units": "kg m-2 s-1" + }, + "WP_all_clouds": { + "CMOR_varname": "clwvi", + "standard_name": "atmosphere_cloud_condensed_water_content", + "long_name": "Condensed Water Path", + "modeling_realm": "atmos", + "units": "kg m-2" + }, + "visc_cbu_back": { + "CMOR_varname": "difvmbo", + "standard_name": "ocean_vertical_momentum_diffusivity_due_to_background", + "long_name": "Ocean Vertical Momentum Diffusivity due to Background", + "modeling_realm": "ocean", + "units": "m2 s-1" + }, + "tau_y": { + "CMOR_varname": "tauv", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "modeling_realm": "atmos", + "units": "Pa" + } +} \ No newline at end of file diff --git a/data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json b/data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json new file mode 100644 index 000000000..4e84be508 --- /dev/null +++ b/data/gfdl-cmor-tables/gfdl_to_cmip6_vars.json @@ -0,0 +1,14478 @@ +{ + "jno2": { + "CMOR_varname": "jno2", + "standard_name": "photolysis_rate_of_nitrogen_dioxide", + "long_name": "photolysis rate of NO2", + "mipTable": "AERmon", + "units": "s-1" + }, + "pod0": { + "CMOR_varname": "pod0", + "standard_name": "integral_wrt_time_of_mole_stomatal_uptake_of_ozone", + "long_name": "Phytotoxic ozone dose", + "mipTable": "AERmon", + "units": "mol m-2" + }, + "tntrs": { + "CMOR_varname": "tntrs", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", + "long_name": "Shortwave heating rate", + "mipTable": "AERmon", + "units": "K s-1" + }, + "tntrl": { + "CMOR_varname": "tntrl", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", + "long_name": "Longwave heating rate", + "mipTable": "AERmon", + "units": "K s-1" + }, + "cltc": { + "CMOR_varname": "cltc", + "standard_name": "convective_cloud_area_fraction", + "long_name": "Convective Cloud Area Fraction", + "mipTable": "AERmon", + "units": "%" + }, + "pfull": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Air Pressure", + "mipTable": "AERmon", + "units": "Pa" + }, + "bldep": { + "CMOR_varname": "bldep", + "standard_name": "atmosphere_boundary_layer_thickness", + "long_name": "Boundary Layer Depth", + "mipTable": "AERmon", + "units": "m" + }, + "phalf": { + "CMOR_varname": "phalf", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Half-Levels", + "mipTable": "AERmon", + "units": "Pa" + }, + "od550csaer": { + "CMOR_varname": "od550csaer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "ambient aerosol optical thickness at 550 nm", + "mipTable": "AERmon", + "units": "1" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Surface Temperature", + "mipTable": "AERhr", + "units": "K" + }, + "volcello": { + "CMOR_varname": "volcello", + "standard_name": "ocean_volume", + "long_name": "Ocean Grid-Cell Volume", + "mipTable": "Odec", + "units": "m3" + }, + "zfull": { + "CMOR_varname": "zfull", + "standard_name": "height_above_reference_ellipsoid", + "long_name": "Altitude of Model Full-Levels", + "mipTable": "fx", + "units": "m" + }, + "zg500": { + "CMOR_varname": "zg500", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height at 500 hPa", + "mipTable": "AERday", + "units": "m" + }, + "od550soa": { + "CMOR_varname": "od550soa", + "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol_particles", + "long_name": "soa aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "tntrl": { + "CMOR_varname": "tntrl", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", + "long_name": "Longwave heating rate", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tntrs": { + "CMOR_varname": "tntrs", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", + "long_name": "Shortwave heating rate", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tntrlcs": { + "CMOR_varname": "tntrlcs", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", + "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tntrscs": { + "CMOR_varname": "tntrscs", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", + "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tntc": { + "CMOR_varname": "tntc", + "standard_name": "tendency_of_air_temperature_due_to_convection", + "long_name": "Tendency of Air Temperature due to Convection", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tntscp": { + "CMOR_varname": "tntscp", + "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation", + "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tasmaxCrop": { + "CMOR_varname": "tasmaxCrop", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature over Crop Tile", + "mipTable": "Emon", + "units": "K" + }, + "tasminCrop": { + "CMOR_varname": "tasminCrop", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature over Crop Tile", + "mipTable": "Emon", + "units": "K" + }, + "prCrop": { + "CMOR_varname": "prCrop", + "standard_name": "precipitation_flux", + "long_name": "Precipitation over Crop Tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "tsnIs": { + "CMOR_varname": "tsnIs", + "standard_name": "temperature_in_surface_snow", + "long_name": "Ice Sheet Snow Internal Temperature", + "mipTable": "LImon", + "units": "K" + }, + "sblIs": { + "CMOR_varname": "sblIs", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Ice Sheet Surface Snow and Ice Sublimation Flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "snmIs": { + "CMOR_varname": "snmIs", + "standard_name": "surface_snow_melt_flux", + "long_name": "Ice Sheet Surface Snow Melt", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "mrroIs": { + "CMOR_varname": "mrroIs", + "standard_name": "runoff_flux", + "long_name": "Ice Sheet Total Run-off", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "sncIs": { + "CMOR_varname": "sncIs", + "standard_name": "surface_snow_area_fraction", + "long_name": "Ice Sheet Snow Cover Percentage", + "mipTable": "LImon", + "units": "%" + }, + "bigthetao": { + "CMOR_varname": "bigthetao", + "standard_name": "sea_water_conservative_temperature", + "long_name": "Sea Water Convervative Temperature", + "mipTable": "Odec", + "units": "degC" + }, + "toz": { + "CMOR_varname": "toz", + "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", + "long_name": "Total Column Ozone", + "mipTable": "AERday", + "units": "m" + }, + "cod": { + "CMOR_varname": "cod", + "standard_name": "atmosphere_optical_thickness_due_to_cloud", + "long_name": "cloud optical depth", + "mipTable": "AERday", + "units": "1" + }, + "zg10": { + "CMOR_varname": "zg10", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height at 10 hPa", + "mipTable": "AERday", + "units": "m" + }, + "maxpblz": { + "CMOR_varname": "maxpblz", + "standard_name": "atmosphere_boundary_layer_thickness", + "long_name": "maximum PBL height", + "mipTable": "AERday", + "units": "m" + }, + "minpblz": { + "CMOR_varname": "minpblz", + "standard_name": "atmosphere_boundary_layer_thickness", + "long_name": "minimum PBL height", + "mipTable": "AERday", + "units": "m" + }, + "ua10": { + "CMOR_varname": "ua10", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind at 10 hPa", + "mipTable": "AERday", + "units": "m s-1" + }, + "zg1000": { + "CMOR_varname": "zg1000", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height at 1000 hPa", + "mipTable": "AERday", + "units": "m" + }, + "zg100": { + "CMOR_varname": "zg100", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height at 100 hPa", + "mipTable": "AERday", + "units": "m" + }, + "c3h6": { + "CMOR_varname": "c3h6", + "standard_name": "mole_fraction_of_propene_in_air", + "long_name": "C3H6 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "hcho": { + "CMOR_varname": "hcho", + "standard_name": "mole_fraction_of_formaldehyde_in_air", + "long_name": "Formaldehyde volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "wetnh4": { + "CMOR_varname": "wetnh4", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of NH4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "c3h8": { + "CMOR_varname": "c3h8", + "standard_name": "mole_fraction_of_propane_in_air", + "long_name": "C3H8 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "wetnh3": { + "CMOR_varname": "wetnh3", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonia_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of NH3", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "wetso2": { + "CMOR_varname": "wetso2", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of SO2", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "wetso4": { + "CMOR_varname": "wetso4", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of SO4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "mmrpm1": { + "CMOR_varname": "mmrpm1", + "standard_name": "mass_fraction_of_pm1_dry_aerosol_particles_in_air", + "long_name": "PM1.0 mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "photo1d": { + "CMOR_varname": "photo1d", + "standard_name": "photolysis_rate_of_ozone_to_1D_oxygen_atom", + "long_name": "photolysis rate of O3 to O1d", + "mipTable": "AERmon", + "units": "s-1" + }, + "no2": { + "CMOR_varname": "no2", + "standard_name": "mole_fraction_of_nitrogen_dioxide_in_air", + "long_name": "NO2 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "ptp": { + "CMOR_varname": "ptp", + "standard_name": "tropopause_air_pressure", + "long_name": "Tropopause Air Pressure", + "mipTable": "AERmon", + "units": "Pa" + }, + "mmrno3": { + "CMOR_varname": "mmrno3", + "standard_name": "mass_fraction_of_nitrate_dry_aerosol_particles_in_air", + "long_name": "NO3 aerosol mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "ch3coch3": { + "CMOR_varname": "ch3coch3", + "standard_name": "mole_fraction_of_acetone_in_air", + "long_name": "CH3COCH3 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "cdnc": { + "CMOR_varname": "cdnc", + "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air", + "long_name": "Cloud Liquid Droplet Number Concentration", + "mipTable": "AERmon", + "units": "m-3" + }, + "ztp": { + "CMOR_varname": "ztp", + "standard_name": "tropopause_altitude", + "long_name": "Tropopause Altitude above Geoid", + "mipTable": "AERmon", + "units": "m" + }, + "emidust": { + "CMOR_varname": "emidust", + "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission", + "long_name": "total emission rate of dust", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "od550lt1aer": { + "CMOR_varname": "od550lt1aer", + "standard_name": "atmosphere_optical_thickness_due_to_pm1_ambient_aerosol_particles", + "long_name": "ambient fine mode aerosol optical thickness at 550 nm", + "mipTable": "AERmon", + "units": "1" + }, + "c2h6": { + "CMOR_varname": "c2h6", + "standard_name": "mole_fraction_of_ethane_in_air", + "long_name": "C2H6 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "c2h2": { + "CMOR_varname": "c2h2", + "standard_name": "mole_fraction_of_ethyne_in_air", + "long_name": "C2H2 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "wetdust": { + "CMOR_varname": "wetdust", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_wet_deposition", + "long_name": "wet deposition rate of dust", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "o3prod": { + "CMOR_varname": "o3prod", + "standard_name": "tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_production", + "long_name": "O3 production rate", + "mipTable": "AERmon", + "units": "mol m-3 s-1" + }, + "mmrpm2p5": { + "CMOR_varname": "mmrpm2p5", + "standard_name": "mass_fraction_of_pm2p5_dry_aerosol_particles_in_air", + "long_name": "PM2.5 mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "emibc": { + "CMOR_varname": "emibc", + "standard_name": "tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_emission", + "long_name": "emission rate of black carbon aerosol mass", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "ttop": { + "CMOR_varname": "ttop", + "standard_name": "air_temperature_at_cloud_top", + "long_name": "air temperature at cloud top", + "mipTable": "AERmon", + "units": "K" + }, + "od550bb": { + "CMOR_varname": "od550bb", + "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol_particles", + "long_name": "bb aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "AERmon", + "units": "m" + }, + "mmrso4": { + "CMOR_varname": "mmrso4", + "standard_name": "mass_fraction_of_sulfate_dry_aerosol_particles_in_air", + "long_name": "Aerosol sulfate mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "wetnoy": { + "CMOR_varname": "wetnoy", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of NOy including Aerosol Nitrate", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "co2": { + "CMOR_varname": "co2", + "standard_name": "mole_fraction_of_carbon_dioxide_in_air", + "long_name": "CO2 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "dryo3": { + "CMOR_varname": "dryo3", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ozone_due_to_dry_deposition", + "long_name": "dry deposition rate of o3", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "abs550aer": { + "CMOR_varname": "abs550aer", + "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "ambient aerosol absorption optical thickness at 550 nm", + "mipTable": "AERmon", + "units": "1" + }, + "od550ss": { + "CMOR_varname": "od550ss", + "standard_name": "atmosphere_optical_thickness_due_to_sea_salt_ambient_aerosol_particles", + "long_name": "sea salt aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "o3loss": { + "CMOR_varname": "o3loss", + "standard_name": "tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_destruction", + "long_name": "O3 destruction rate", + "mipTable": "AERmon", + "units": "mol m-3 s-1" + }, + "mmrss": { + "CMOR_varname": "mmrss", + "standard_name": "mass_fraction_of_sea_salt_dry_aerosol_particles_in_air", + "long_name": "Sea Salt mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "chepsoa": { + "CMOR_varname": "chepsoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production", + "long_name": "chemical production of dry aerosol secondary organic matter", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "mmrdust": { + "CMOR_varname": "mmrdust", + "standard_name": "mass_fraction_of_dust_dry_aerosol_particles_in_air", + "long_name": "Dust aerosol mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "o3": { + "CMOR_varname": "o3", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Ozone volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "hcl": { + "CMOR_varname": "hcl", + "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", + "long_name": "HCl volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "emioa": { + "CMOR_varname": "emioa", + "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission", + "long_name": "primary emission and chemical production of dry aerosol organic matter", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "airmass": { + "CMOR_varname": "airmass", + "standard_name": "atmosphere_mass_of_air_per_unit_area", + "long_name": "Vertically integrated mass content of air in layer", + "mipTable": "AERmon", + "units": "kg m-2" + }, + "od440aer": { + "CMOR_varname": "od440aer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "ambient aerosol optical thickness at 440 nm", + "mipTable": "AERmon", + "units": "1" + }, + "wa": { + "CMOR_varname": "wa", + "standard_name": "upward_air_velocity", + "long_name": "Upward Air Velocity", + "mipTable": "AERmon", + "units": "m s-1" + }, + "reffclwtop": { + "CMOR_varname": "reffclwtop", + "standard_name": "effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top", + "long_name": "cloud-top effective droplet radius", + "mipTable": "AERmon", + "units": "m" + }, + "emiso4": { + "CMOR_varname": "emiso4", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_emission", + "long_name": "total direct emission rate of so4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "isop": { + "CMOR_varname": "isop", + "standard_name": "mole_fraction_of_isoprene_in_air", + "long_name": "Isoprene volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "mmrsoa": { + "CMOR_varname": "mmrsoa", + "standard_name": "mass_fraction_of_secondary_particulate_organic_matter_dry_aerosol_particles_in_air", + "long_name": "Secondary organic aerosol mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "toz": { + "CMOR_varname": "toz", + "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", + "long_name": "Total Ozone Column", + "mipTable": "AERmon", + "units": "m" + }, + "od550so4": { + "CMOR_varname": "od550so4", + "standard_name": "atmosphere_optical_thickness_due_to_sulfate_ambient_aerosol_particles", + "long_name": "sulfate aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "oh": { + "CMOR_varname": "oh", + "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", + "long_name": "OH volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "mmrbc": { + "CMOR_varname": "mmrbc", + "standard_name": "mass_fraction_of_elemental_carbon_dry_aerosol_particles_in_air", + "long_name": "Elemental carbon mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "cod": { + "CMOR_varname": "cod", + "standard_name": "atmosphere_optical_thickness_due_to_cloud", + "long_name": "cloud optical depth", + "mipTable": "AERmon", + "units": "1" + }, + "dryoa": { + "CMOR_varname": "dryoa", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_dry_deposition", + "long_name": "dry deposition rate of dry aerosol total organic matter", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "emiss": { + "CMOR_varname": "emiss", + "standard_name": "tendency_of_atmosphere_mass_content_of_sea_salt_dry_aerosol_particles_due_to_emission", + "long_name": "total emission rate of seasalt", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "wetoa": { + "CMOR_varname": "wetoa", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Dry Aerosol Total Organic Matter", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "emibvoc": { + "CMOR_varname": "emibvoc", + "standard_name": "tendency_of_atmosphere_mass_content_of_biogenic_nmvoc_expressed_as_carbon_due_to_emission", + "long_name": "total emission rate of biogenic nmvoc", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "co": { + "CMOR_varname": "co", + "standard_name": "mole_fraction_of_carbon_monoxide_in_air", + "long_name": "CO volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "dryso4": { + "CMOR_varname": "dryso4", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_dry_deposition", + "long_name": "dry deposition rate of so4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "dryso2": { + "CMOR_varname": "dryso2", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", + "long_name": "dry deposition rate of so2", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "wetbc": { + "CMOR_varname": "wetbc", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_wet_deposition", + "long_name": "wet deposition rate of black carbon aerosol mass", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "lwp": { + "CMOR_varname": "lwp", + "standard_name": "atmosphere_mass_content_of_cloud_liquid_water", + "long_name": "liquid water path", + "mipTable": "AERmon", + "units": "kg m-2" + }, + "drybc": { + "CMOR_varname": "drybc", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_dry_deposition", + "long_name": "dry deposition rate of black carbon aerosol mass", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "hno3": { + "CMOR_varname": "hno3", + "standard_name": "mole_fraction_of_nitric_acid_in_air", + "long_name": "HNO3 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "chepasoa": { + "CMOR_varname": "chepasoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production", + "long_name": "total net production of anthropogenic secondary organic aerosol", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "tatp": { + "CMOR_varname": "tatp", + "standard_name": "tropopause_air_temperature", + "long_name": "Tropopause Air Temperature", + "mipTable": "AERmon", + "units": "K" + }, + "drynh3": { + "CMOR_varname": "drynh3", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonia_due_to_dry_deposition", + "long_name": "dry deposition rate of nh3", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "od550bc": { + "CMOR_varname": "od550bc", + "standard_name": "atmosphere_optical_thickness_due_to_black_carbon_ambient_aerosol", + "long_name": "black carbon aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "drynh4": { + "CMOR_varname": "drynh4", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_dry_deposition", + "long_name": "dry deposition rate of nh4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "od550dust": { + "CMOR_varname": "od550dust", + "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", + "long_name": "dust aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "emianox": { + "CMOR_varname": "emianox", + "standard_name": "tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission", + "long_name": "anthropogenic emission rate of nox", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "mmrnh4": { + "CMOR_varname": "mmrnh4", + "standard_name": "mass_fraction_of_ammonium_dry_aerosol_particles_in_air", + "long_name": "NH4 mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "so2": { + "CMOR_varname": "so2", + "standard_name": "mole_fraction_of_sulfur_dioxide_in_air", + "long_name": "SO2 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "emiaoa": { + "CMOR_varname": "emiaoa", + "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission", + "long_name": "total emission of anthropogenic organic aerosol", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "emiaco": { + "CMOR_varname": "emiaco", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission", + "long_name": "total emission rate of anthropogenic co", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "chegpso4": { + "CMOR_varname": "chegpso4", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_gaseous_phase_net_chemical_production", + "long_name": "Gas-phase production rate of SO4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "emilnox": { + "CMOR_varname": "emilnox", + "standard_name": "tendency_of_atmosphere_moles_of_nox_expressed_as_nitrogen", + "long_name": "layer-integrated lightning production of NOx", + "mipTable": "AERmon", + "units": "mol s-1" + }, + "eminox": { + "CMOR_varname": "eminox", + "standard_name": "tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission", + "long_name": "total emission rate of nox", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "dms": { + "CMOR_varname": "dms", + "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", + "long_name": "DMS volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "ch4": { + "CMOR_varname": "ch4", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "CH4 volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "AERmon", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "AERmon", + "units": "m s-1" + }, + "n2o": { + "CMOR_varname": "n2o", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "N2O volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "mmroa": { + "CMOR_varname": "mmroa", + "standard_name": "mass_fraction_of_particulate_organic_matter_dry_aerosol_particles_in_air", + "long_name": "Total organic aerosol mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "od550no3": { + "CMOR_varname": "od550no3", + "standard_name": "atmosphere_optical_thickness_due_to_nitrate_ambient_aerosol_particles", + "long_name": "nitrate aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "drynoy": { + "CMOR_varname": "drynoy", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_dry_deposition", + "long_name": "dry deposition rate of noy", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "emico": { + "CMOR_varname": "emico", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission", + "long_name": "total emission rate of co", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "no": { + "CMOR_varname": "no", + "standard_name": "mole_fraction_of_nitrogen_monoxide_in_air", + "long_name": "NO volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "tropoz": { + "CMOR_varname": "tropoz", + "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", + "long_name": "Tropospheric Ozone Column", + "mipTable": "AERmon", + "units": "m" + }, + "h2o": { + "CMOR_varname": "h2o", + "standard_name": "mass_fraction_of_water_in_air", + "long_name": "Mass Fraction of Water", + "mipTable": "AERmon", + "units": "1" + }, + "mmrpm10": { + "CMOR_varname": "mmrpm10", + "standard_name": "mass_fraction_of_pm10_ambient_aerosol_particles_in_air", + "long_name": "PM10 mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "emidms": { + "CMOR_varname": "emidms", + "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_emission", + "long_name": "total emission rate of dms", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "dryss": { + "CMOR_varname": "dryss", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sea_salt_dry_aerosol_particles_due_to_dry_deposition", + "long_name": "dry deposition rate of seasalt", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "pan": { + "CMOR_varname": "pan", + "standard_name": "mole_fraction_of_peroxyacetyl_nitrate_in_air", + "long_name": "PAN volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "od550aer": { + "CMOR_varname": "od550aer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "ambient aerosol optical thickness at 550 nm", + "mipTable": "AERmon", + "units": "1" + }, + "emiso2": { + "CMOR_varname": "emiso2", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_emission", + "long_name": "total emission rate of so2", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "cheaqpso4": { + "CMOR_varname": "cheaqpso4", + "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_aqueous_phase_net_chemical_production", + "long_name": "Aqueous-phase production rate of SO4", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "od550aerh2o": { + "CMOR_varname": "od550aerh2o", + "standard_name": "atmosphere_optical_thickness_due_to_water_in_ambient_aerosol_particles", + "long_name": "aerosol water aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "od550oa": { + "CMOR_varname": "od550oa", + "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol_particles", + "long_name": "total organic aerosol aod@550nm", + "mipTable": "AERmon", + "units": "1" + }, + "emiisop": { + "CMOR_varname": "emiisop", + "standard_name": "tendency_of_atmosphere_mass_content_of_isoprene_due_to_emission", + "long_name": "total emission rate of isoprene", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "mmraerh2o": { + "CMOR_varname": "mmraerh2o", + "standard_name": "mass_fraction_of_water_in_ambient_aerosol_particles_in_air", + "long_name": "Aerosol water mass mixing ratio", + "mipTable": "AERmon", + "units": "kg kg-1" + }, + "od870aer": { + "CMOR_varname": "od870aer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "ambient aerosol optical thickness at 870 nm", + "mipTable": "AERmon", + "units": "1" + }, + "ccn": { + "CMOR_varname": "ccn", + "standard_name": "number_concentration_of_cloud_condensation_nuclei_at_stp_in_air", + "long_name": "cloud condensation nuclei concentration at liquid cloud top", + "mipTable": "AERmon", + "units": "m-3" + }, + "eminh3": { + "CMOR_varname": "eminh3", + "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_emission", + "long_name": "total emission rate of nh3", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "wetss": { + "CMOR_varname": "wetss", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_sea_salt_dry_aerosol_particles_due_to_wet_deposition", + "long_name": "Wet Deposition Rate of Seasalt", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "drydust": { + "CMOR_varname": "drydust", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_dry_deposition", + "long_name": "dry deposition rate of dust", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "emivoc": { + "CMOR_varname": "emivoc", + "standard_name": "tendency_of_atmosphere_mass_content_of_nmvoc_due_to_emission", + "long_name": "total emission rate of nmvoc", + "mipTable": "AERmon", + "units": "kg m-2 s-1" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface pressure", + "mipTable": "AERhr", + "units": "Pa" + }, + "sfpm25": { + "CMOR_varname": "sfpm25", + "standard_name": "mass_fraction_of_pm2p5_ambient_aerosol_particles_in_air", + "long_name": "PM2.5 mass mixing ratio in lowest model layer", + "mipTable": "AERhr", + "units": "kg kg-1" + }, + "sfno2": { + "CMOR_varname": "sfno2", + "standard_name": "mole_fraction_of_nitrogen_dioxide_in_air", + "long_name": "NO2 volume mixing ratio in lowest model layer", + "mipTable": "AERhr", + "units": "mol mol-1" + }, + "sfo3": { + "CMOR_varname": "sfo3", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "O3 volume mixing ratio in lowest model layer", + "mipTable": "AERhr", + "units": "mol mol-1" + }, + "sossq": { + "CMOR_varname": "sossq", + "standard_name": "square_of_sea_surface_salinity", + "long_name": "Square of Sea Surface Salinity", + "mipTable": "Oday", + "units": "1e-06" + }, + "sosga": { + "CMOR_varname": "sosga", + "standard_name": "sea_surface_salinity", + "long_name": "Global Average Sea Surface Salinity", + "mipTable": "Omon", + "units": "0.001" + }, + "sossq": { + "CMOR_varname": "sossq", + "standard_name": "square_of_sea_surface_salinity", + "long_name": "Square of Sea Surface Salinity", + "mipTable": "Omon", + "units": "1e-06" + }, + "mlotstmax": { + "CMOR_varname": "mlotstmax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Maximum Ocean Mixed Layer Thickness Defined by Sigma T", + "mipTable": "Omon", + "units": "m" + }, + "mlotstmin": { + "CMOR_varname": "mlotstmin", + "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Minimum Ocean Mixed Layer Thickness Defined by Sigma T", + "mipTable": "Omon", + "units": "m" + }, + "obvfsq": { + "CMOR_varname": "obvfsq", + "standard_name": "square_of_brunt_vaisala_frequency_in_sea_water", + "long_name": "Square of Brunt Vaisala Frequency in Sea Water", + "mipTable": "Omon", + "units": "s-2" + }, + "wo": { + "CMOR_varname": "wo", + "standard_name": "upward_sea_water_velocity", + "long_name": "Sea Water Z Velocity", + "mipTable": "Omon", + "units": "m s-1" + }, + "opottempmint": { + "CMOR_varname": "opottempmint", + "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_potential_temperature", + "long_name": "integral wrt depth of product of sea water density and potential temperature", + "mipTable": "Oyr", + "units": "degC kg m-2" + }, + "ocontempmint": { + "CMOR_varname": "ocontempmint", + "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_conservative_temperature", + "long_name": "integral wrt depth of product of sea water density and conservative temperature", + "mipTable": "Oyr", + "units": "degC kg m-2" + }, + "somint": { + "CMOR_varname": "somint", + "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_salinity", + "long_name": "integral wrt depth of product of sea water density and salinity", + "mipTable": "Oyr", + "units": "1e-3 kg m-2" + }, + "rsdoabsorb": { + "CMOR_varname": "rsdoabsorb", + "standard_name": "net_rate_of_absorption_of_shortwave_energy_in_ocean_layer", + "long_name": "net rate of absorption of shortwave energy in ocean layer", + "mipTable": "Oyr", + "units": "W m-2" + }, + "opottemprmadvect": { + "CMOR_varname": "opottemprmadvect", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_residual_mean_advection", + "long_name": "tendency of sea water potential temperature expressed as heat content due to residual mean advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "ocontemprmadvect": { + "CMOR_varname": "ocontemprmadvect", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_residual_mean_advection", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to residual mean (sum of Eulerian + parameterized) advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "osaltrmadvect": { + "CMOR_varname": "osaltrmadvect", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_residual_mean_advection", + "long_name": "tendency of sea water salinity expressed as salt content due to residual mean advection", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "CF3hr", + "units": "Pa" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "E3hrPt", + "units": "Pa" + }, + "rlntds": { + "CMOR_varname": "rlntds", + "standard_name": "surface_net_downward_longwave_flux", + "long_name": "Surface Net Downward Longwave Radiation", + "mipTable": "Omon", + "units": "W m-2" + }, + "clisccp": { + "CMOR_varname": "clisccp", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "ISCCP Percentage Cloud Area", + "mipTable": "CFmon", + "units": "%" + }, + "clisccp": { + "CMOR_varname": "clisccp", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "ISCCP Cloud Area Fraction", + "mipTable": "CFday", + "units": "%" + }, + "tasmaxCrop": { + "CMOR_varname": "tasmaxCrop", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature over Crop Tile", + "mipTable": "Eday", + "units": "K" + }, + "tasminCrop": { + "CMOR_varname": "tasminCrop", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature over Crop Tile", + "mipTable": "Eday", + "units": "K" + }, + "prCrop": { + "CMOR_varname": "prCrop", + "standard_name": "precipitation_flux", + "long_name": "Precipitation over Crop Tile", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "meanage": { + "CMOR_varname": "meanage", + "standard_name": "age_of_stratospheric_air", + "long_name": "Mean Age of Stratospheric Air", + "mipTable": "AERmonZ", + "units": "yr" + }, + "nh50": { + "CMOR_varname": "nh50", + "standard_name": "mole_fraction_of_artificial_tracer_with_fixed_lifetime_in_air", + "long_name": "Artificial tracer with 50 day lifetime", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "aoanh": { + "CMOR_varname": "aoanh", + "standard_name": "tracer_lifetime", + "long_name": "Tracer age of air Northern Hemisphere", + "mipTable": "AERmon", + "units": "yr" + }, + "zfullo": { + "CMOR_varname": "zfullo", + "standard_name": "depth_below_geoid", + "long_name": "Depth Below Geoid of Ocean Layer", + "mipTable": "Oclim", + "units": "m" + }, + "zhalfo": { + "CMOR_varname": "zhalfo", + "standard_name": "depth_below_geoid", + "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", + "mipTable": "Oclim", + "units": "m" + }, + "mrso": { + "CMOR_varname": "mrso", + "standard_name": "mass_content_of_water_in_soil", + "long_name": "Total Soil Moisture Content", + "mipTable": "day", + "units": "kg m-2" + }, + "irrLut": { + "CMOR_varname": "irrLut", + "standard_name": "surface_downward_mass_flux_of_water_due_to_irrigation", + "long_name": "Irrigation flux including any irrigation for crops", + "mipTable": "trees", + "units": "pasture" + }, + "fahLut": { + "CMOR_varname": "fahLut", + "standard_name": "surface_upward_heat_flux_due_to_anthropogenic_energy_consumption", + "long_name": "Anthropogenic heat flux generated from non-renewable human primary energy consumption", + "mipTable": "including energy use by vehicles", + "units": "commercial and residential buildings" + }, + "fProductDecompLut": { + "CMOR_varname": "fProductDecompLut", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products", + "long_name": "flux from wood and agricultural product pools on land use tile into atmosphere", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fLulccProductLut": { + "CMOR_varname": "fLulccProductLut", + "standard_name": "carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", + "long_name": "carbon harvested due to land-use or land-cover change process that enters anthropogenic product pools on tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fLulccResidueLut": { + "CMOR_varname": "fLulccResidueLut", + "standard_name": "carbon_mass_flux_into_soil_and_litter_due_to_anthropogenic_land_use_or_land_cover_change", + "long_name": "carbon transferred to soil or litter pools due to land-use or land-cover change processes on tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fLulccAtmLut": { + "CMOR_varname": "fLulccAtmLut", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_land_use_or_land_cover_change_excluding_forestry_and_agricultural_products", + "long_name": "carbon transferred directly to atmosphere due to any land-use or land-cover change activities including deforestation or agricultural fire", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "cProductLut": { + "CMOR_varname": "cProductLut", + "standard_name": "carbon_mass_content_of_forestry_and_agricultural_products", + "long_name": "wood and agricultural product pool carbon associated with land use tiles; examples of products include paper", + "mipTable": "cardboard", + "units": "timber for construction" + }, + "cProduct": { + "CMOR_varname": "cProduct", + "standard_name": "carbon_mass_content_of_forestry_and_agricultural_products", + "long_name": "Carbon Mass in Products of Land Use Change", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "AERmon", + "units": "Pa" + }, + "masso": { + "CMOR_varname": "masso", + "standard_name": "sea_water_mass", + "long_name": "Sea Water Mass", + "mipTable": "Odec", + "units": "kg" + }, + "volo": { + "CMOR_varname": "volo", + "standard_name": "sea_water_volume", + "long_name": "Sea Water Volume", + "mipTable": "Odec", + "units": "m3" + }, + "thkcello": { + "CMOR_varname": "thkcello", + "standard_name": "cell_thickness", + "long_name": "Ocean Model Cell Thickness", + "mipTable": "Odec", + "units": "m" + }, + "thetao": { + "CMOR_varname": "thetao", + "standard_name": "sea_water_potential_temperature", + "long_name": "Sea Water Potential Temperature", + "mipTable": "Odec", + "units": "degC" + }, + "thetaoga": { + "CMOR_varname": "thetaoga", + "standard_name": "sea_water_potential_temperature", + "long_name": "Global Average Sea Water Potential Temperature", + "mipTable": "Odec", + "units": "degC" + }, + "bigthetaoga": { + "CMOR_varname": "bigthetaoga", + "standard_name": "sea_water_conservative_temperature", + "long_name": "Global Average Sea Water Conservative Temperature", + "mipTable": "Odec", + "units": "degC" + }, + "tos": { + "CMOR_varname": "tos", + "standard_name": "sea_surface_temperature", + "long_name": "Sea Surface Temperature", + "mipTable": "Odec", + "units": "degC" + }, + "tosga": { + "CMOR_varname": "tosga", + "standard_name": "sea_surface_temperature", + "long_name": "Global Average Sea Surface Temperature", + "mipTable": "Odec", + "units": "degC" + }, + "so": { + "CMOR_varname": "so", + "standard_name": "sea_water_salinity", + "long_name": "Sea Water Salinity", + "mipTable": "Odec", + "units": "0.001" + }, + "soga": { + "CMOR_varname": "soga", + "standard_name": "sea_water_salinity", + "long_name": "Global Mean Sea Water Salinity", + "mipTable": "Odec", + "units": "0.001" + }, + "sos": { + "CMOR_varname": "sos", + "standard_name": "sea_surface_salinity", + "long_name": "Sea Surface Salinity", + "mipTable": "Odec", + "units": "0.001" + }, + "sosga": { + "CMOR_varname": "sosga", + "standard_name": "sea_surface_salinity", + "long_name": "Global Average Sea Surface Salinity", + "mipTable": "Odec", + "units": "0.001" + }, + "agessc": { + "CMOR_varname": "agessc", + "standard_name": "sea_water_age_since_surface_contact", + "long_name": "Sea Water Age Since Surface Contact", + "mipTable": "Odec", + "units": "yr" + }, + "uo": { + "CMOR_varname": "uo", + "standard_name": "sea_water_x_velocity", + "long_name": "Sea Water X Velocity", + "mipTable": "Odec", + "units": "m s-1" + }, + "vo": { + "CMOR_varname": "vo", + "standard_name": "sea_water_y_velocity", + "long_name": "Sea Water Y Velocity", + "mipTable": "Odec", + "units": "m s-1" + }, + "wo": { + "CMOR_varname": "wo", + "standard_name": "upward_sea_water_velocity", + "long_name": "Sea Water Z Velocity", + "mipTable": "Odec", + "units": "m s-1" + }, + "msftmz": { + "CMOR_varname": "msftmz", + "standard_name": "ocean_meridional_overturning_mass_streamfunction", + "long_name": "Ocean Meridional Overturning Mass Streamfunction", + "mipTable": "Odec", + "units": "kg s-1" + }, + "hfbasin": { + "CMOR_varname": "hfbasin", + "standard_name": "northward_ocean_heat_transport", + "long_name": "Northward Ocean Heat Transport", + "mipTable": "Odec", + "units": "W" + }, + "wfo": { + "CMOR_varname": "wfo", + "standard_name": "water_flux_into_sea_water", + "long_name": "Water Flux into Sea Water", + "mipTable": "Odec", + "units": "kg m-2 s-1" + }, + "sfdsi": { + "CMOR_varname": "sfdsi", + "standard_name": "downward_sea_ice_basal_salt_flux", + "long_name": "Downward Sea Ice Basal Salt Flux", + "mipTable": "Odec", + "units": "kg m-2 s-1" + }, + "sfriver": { + "CMOR_varname": "sfriver", + "standard_name": "salt_flux_into_sea_water_from_rivers", + "long_name": "Salt Flux into Sea Water from Rivers", + "mipTable": "Odec", + "units": "kg m-2 s-1" + }, + "dmso": { + "CMOR_varname": "dmso", + "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", + "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "ugrid": { + "CMOR_varname": "ugrid", + "standard_name": "longitude", + "long_name": "UGRID Grid Information", + "mipTable": "Ofx", + "units": "" + }, + "o3": { + "CMOR_varname": "o3", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Mole Fraction of O3", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "o3Clim": { + "CMOR_varname": "o3Clim", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Mole Fraction of O3", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "hurs": { + "CMOR_varname": "hurs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "mipTable": "day", + "units": "%" + }, + "hursmin": { + "CMOR_varname": "hursmin", + "standard_name": "relative_humidity", + "long_name": "Surface Daily Minimum Relative Humidity", + "mipTable": "day", + "units": "%" + }, + "hursmax": { + "CMOR_varname": "hursmax", + "standard_name": "relative_humidity", + "long_name": "Surface Daily Maximum Relative Humidity", + "mipTable": "day", + "units": "%" + }, + "epc100": { + "CMOR_varname": "epc100", + "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", + "long_name": "Downward Flux of Particulate Organic Carbon", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "epfe100": { + "CMOR_varname": "epfe100", + "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", + "long_name": "Downward Flux of Particulate Iron", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "epsi100": { + "CMOR_varname": "epsi100", + "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", + "long_name": "Downward Flux of Particulate Silicon", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "epcalc100": { + "CMOR_varname": "epcalc100", + "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Downward Flux of Calcite", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "eparag100": { + "CMOR_varname": "eparag100", + "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Downward Flux of Aragonite", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "zfullo": { + "CMOR_varname": "zfullo", + "standard_name": "depth_below_geoid", + "long_name": "Depth Below Geoid of Ocean Layer", + "mipTable": "Omon", + "units": "m" + }, + "zhalfo": { + "CMOR_varname": "zhalfo", + "standard_name": "depth_below_geoid", + "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", + "mipTable": "Omon", + "units": "m" + }, + "tntmp": { + "CMOR_varname": "tntmp", + "standard_name": "tendency_of_air_temperature_due_to_model_physics", + "long_name": "Tendency of Air Temperature due to Model Physics", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "E3hrPt", + "units": "1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "loaddust": { + "CMOR_varname": "loaddust", + "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol_particles", + "long_name": "Load of Dust", + "mipTable": "Emon", + "units": "kg m-2" + }, + "concdust": { + "CMOR_varname": "concdust", + "standard_name": "mass_concentration_of_dust_dry_aerosol_particles_in_air", + "long_name": "Concentration of Dust", + "mipTable": "Emon", + "units": "kg m-3" + }, + "utendogw": { + "CMOR_varname": "utendogw", + "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", + "long_name": "u-tendency orographic gravity wave drag", + "mipTable": "Emon", + "units": "m s-2" + }, + "utendnogw": { + "CMOR_varname": "utendnogw", + "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "u-tendency nonorographic gravity wave drag", + "mipTable": "Emon", + "units": "m s-2" + }, + "diabdrag": { + "CMOR_varname": "diabdrag", + "standard_name": "tendency_of_eastward_wind_due_to_numerical_artefacts", + "long_name": "Tendency of Eastward Wind from Numerical Artefacts", + "mipTable": "Emon", + "units": "m s-2" + }, + "conccmcn": { + "CMOR_varname": "conccmcn", + "standard_name": "number_concentration_of_coarse_mode_ambient_aerosol_particles_in_air", + "long_name": "Number Concentration Coarse Mode Aerosol", + "mipTable": "Emon", + "units": "m-3" + }, + "concnmcn": { + "CMOR_varname": "concnmcn", + "standard_name": "number_concentration_of_nucleation_mode_ambient_aerosol_particles_in_air", + "long_name": "Number Concentration of Nucleation Mode Aerosol", + "mipTable": "Emon", + "units": "m-3" + }, + "conccn": { + "CMOR_varname": "conccn", + "standard_name": "number_concentration_of_ambient_aerosol_particles_in_air", + "long_name": "Aerosol Number Concentration", + "mipTable": "Emon", + "units": "m-3" + }, + "ec550aer": { + "CMOR_varname": "ec550aer", + "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", + "long_name": "Aerosol extinction coefficient", + "mipTable": "Emon", + "units": "m-1" + }, + "rsdsdiff": { + "CMOR_varname": "rsdsdiff", + "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", + "long_name": "Surface Diffuse Downwelling Shortwave Radiation", + "mipTable": "Emon", + "units": "W m-2" + }, + "cldnci": { + "CMOR_varname": "cldnci", + "standard_name": "number_concentration_of_ice_crystals_in_air_at_ice_cloud_top", + "long_name": "Ice Crystal Number Concentration of Cloud Tops", + "mipTable": "Emon", + "units": "m-3" + }, + "sconcso4": { + "CMOR_varname": "sconcso4", + "standard_name": "mass_concentration_of_sulfate_dry_aerosol_particles_in_air", + "long_name": "Surface Concentration of SO4", + "mipTable": "Emon", + "units": "kg m-3" + }, + "cldncl": { + "CMOR_varname": "cldncl", + "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", + "long_name": "Cloud Droplet Number Concentration of Cloud Tops", + "mipTable": "Emon", + "units": "m-3" + }, + "cldnvi": { + "CMOR_varname": "cldnvi", + "standard_name": "atmosphere_number_content_of_cloud_droplets", + "long_name": "Column Integrated Cloud Droplet Number", + "mipTable": "Emon", + "units": "m-2" + }, + "sconcss": { + "CMOR_varname": "sconcss", + "standard_name": "mass_concentration_of_sea_salt_dry_aerosol_particles_in_air", + "long_name": "Surface Concentration of Seasalt", + "mipTable": "Emon", + "units": "kg m-3" + }, + "sconcdust": { + "CMOR_varname": "sconcdust", + "standard_name": "mass_concentration_of_dust_dry_aerosol_particles_in_air", + "long_name": "Surface Concentration of Dust", + "mipTable": "Emon", + "units": "kg m-3" + }, + "loadso4": { + "CMOR_varname": "loadso4", + "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol_particles", + "long_name": "Load of SO4", + "mipTable": "Emon", + "units": "kg m-2" + }, + "loadss": { + "CMOR_varname": "loadss", + "standard_name": "atmosphere_mass_content_of_sea_salt_dry_aerosol_particles", + "long_name": "Load of Seasalt", + "mipTable": "Emon", + "units": "kg m-2" + }, + "pr18O": { + "CMOR_varname": "pr18O", + "standard_name": "precipitation_flux_containing_18O", + "long_name": "Precipitation Flux of Water containing Oxygen-18 (H2 18O)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "prsn18O": { + "CMOR_varname": "prsn18O", + "standard_name": "solid_precipitation_flux_containing_18O", + "long_name": "Precipitation Flux of Snow and Ice containing Oxygen-18 (H2 18O)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "pr2h": { + "CMOR_varname": "pr2h", + "standard_name": "precipitation_flux_containing_single_2H", + "long_name": "Precipitation Flux of Water containing Deuterium (1H 2H O)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "prsn2h": { + "CMOR_varname": "prsn2h", + "standard_name": "solid_precipitation_flux_containing_single_2H", + "long_name": "Precipitation Flux of Snow and Ice containing Deuterium (1H 2H O)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "pr17O": { + "CMOR_varname": "pr17O", + "standard_name": "precipitation_flux_containing_17O", + "long_name": "Precipitation Flux of Water containing Oxygen-17 (H2 17O)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "prsn17O": { + "CMOR_varname": "prsn17O", + "standard_name": "solid_precipitation_flux_containing_17O", + "long_name": "Precipitation Flux of Snow and Ice containing Oxygen-17 (H2 17O)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "O18wv": { + "CMOR_varname": "O18wv", + "standard_name": "isotope_ratio_of_18O_to_16O_in_sea_water_excluding_solutes_and_solids", + "long_name": "O18 in water vapor", + "mipTable": "Emon", + "units": "1" + }, + "prw17O": { + "CMOR_varname": "prw17O", + "standard_name": "mass_content_of_water_vapor_containing_17O_in_atmosphere_layer", + "long_name": "Mass of Water containing Oxygen-17 (H2 17O) in Layer", + "mipTable": "Emon", + "units": "kg m-2" + }, + "prw2H": { + "CMOR_varname": "prw2H", + "standard_name": "mass_content_of_water_vapor_containing_single_2H_in_atmosphere_layer", + "long_name": "Mass of Water containing Deuterium (1H 2H O) in Layer", + "mipTable": "Emon", + "units": "kg m-2" + }, + "evspsblpot": { + "CMOR_varname": "evspsblpot", + "standard_name": "water_potential_evaporation_flux", + "long_name": "Potential Evapotranspiration", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rss": { + "CMOR_varname": "rss", + "standard_name": "surface_net_downward_shortwave_flux", + "long_name": "Net Shortwave Surface Radiation", + "mipTable": "Emon", + "units": "W m-2" + }, + "tdps": { + "CMOR_varname": "tdps", + "standard_name": "dew_point_temperature", + "long_name": "2m dewpoint temperature", + "mipTable": "Emon", + "units": "K" + }, + "intuaw": { + "CMOR_varname": "intuaw", + "standard_name": "eastward_atmosphere_water_transport_across_unit_distance", + "long_name": "Vertically integrated Eastward moisture transport (Mass_weighted_vertical integral of the product of eastward wind by total water mass per unit mass)", + "mipTable": "Emon", + "units": "kg m-1 s-1" + }, + "intvaw": { + "CMOR_varname": "intvaw", + "standard_name": "northward_atmosphere_water_transport_across_unit_distance", + "long_name": "Vertically integrated Northward moisture transport (Mass_weighted_vertical integral of the product of northward wind by total water mass per unit mass)", + "mipTable": "Emon", + "units": "kg m-1 s-1" + }, + "intuadse": { + "CMOR_varname": "intuadse", + "standard_name": "eastward_atmosphere_dry_static_energy_transport_across_unit_distance", + "long_name": "Vertically integrated Eastward dry transport (cp.T +zg).u (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit)", + "mipTable": "Emon", + "units": "1.e6 J m-1 s-1" + }, + "intvadse": { + "CMOR_varname": "intvadse", + "standard_name": "northward_atmosphere_dry_static_energy_transport_across_unit_distance", + "long_name": "Vertically integrated Northward dry transport (cp.T +zg).v (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit)", + "mipTable": "Emon", + "units": "1.e6 J m-1 s-1" + }, + "flashrate": { + "CMOR_varname": "flashrate", + "standard_name": "frequency_of_lightning_flashes_per_unit_area", + "long_name": "Lightning Flash Rate", + "mipTable": "Emon", + "units": "km-2 s-1" + }, + "prw18O": { + "CMOR_varname": "prw18O", + "standard_name": "mass_content_of_water_vapor_containing_18O_in_atmosphere_layer", + "long_name": "Isotopic Ratio of Oxygen-18 in Sea Water", + "mipTable": "Emon", + "units": "kg m-2" + }, + "thetaot": { + "CMOR_varname": "thetaot", + "standard_name": "sea_water_potential_temperature", + "long_name": "Vertically Averaged Sea Water Potential Temperature", + "mipTable": "Emon", + "units": "degC" + }, + "mrsll": { + "CMOR_varname": "mrsll", + "standard_name": "liquid_water_content_of_soil_layer", + "long_name": "Liquid water content of soil layer", + "mipTable": "Emon", + "units": "kg m-2" + }, + "mrtws": { + "CMOR_varname": "mrtws", + "standard_name": "land_water_amount", + "long_name": "Total water storage in a grid cell", + "mipTable": "Emon", + "units": "kg m-2" + }, + "vegFrac": { + "CMOR_varname": "vegFrac", + "standard_name": "area_fraction", + "long_name": "Total vegetated percentage cover", + "mipTable": "Emon", + "units": "%" + }, + "treeFracNdlEvg": { + "CMOR_varname": "treeFracNdlEvg", + "standard_name": "area_fraction", + "long_name": "Needleleaf evergreen tree area percentage", + "mipTable": "Emon", + "units": "%" + }, + "treeFracNdlDcd": { + "CMOR_varname": "treeFracNdlDcd", + "standard_name": "area_fraction", + "long_name": "Needleleaf deciduous tree area percentage", + "mipTable": "Emon", + "units": "%" + }, + "treeFracBdlEvg": { + "CMOR_varname": "treeFracBdlEvg", + "standard_name": "area_fraction", + "long_name": "Broadleaf evergreen tree area percentage", + "mipTable": "Emon", + "units": "%" + }, + "treeFracBdlDcd": { + "CMOR_varname": "treeFracBdlDcd", + "standard_name": "area_fraction", + "long_name": "Broadleaf deciduous tree area percentage", + "mipTable": "Emon", + "units": "%" + }, + "cropFracC4": { + "CMOR_varname": "cropFracC4", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by C4 Crops", + "mipTable": "Emon", + "units": "%" + }, + "vegHeight": { + "CMOR_varname": "vegHeight", + "standard_name": "canopy_height", + "long_name": "canopy height", + "mipTable": "Emon", + "units": "m" + }, + "vegHeightTree": { + "CMOR_varname": "vegHeightTree", + "standard_name": "canopy_height", + "long_name": "Vegetation height averaged over the tree fraction of a grid cell.", + "mipTable": "Emon", + "units": "m" + }, + "wetlandFrac": { + "CMOR_varname": "wetlandFrac", + "standard_name": "area_fraction", + "long_name": "Wetland Percentage Cover", + "mipTable": "Emon", + "units": "%" + }, + "c14Veg": { + "CMOR_varname": "c14Veg", + "standard_name": "vegetation_mass_content_of_14C", + "long_name": "Mass of 14C in Vegetation", + "mipTable": "Emon", + "units": "kg m-2" + }, + "c13Soil": { + "CMOR_varname": "c13Soil", + "standard_name": "soil_mass_content_of_13C", + "long_name": "Mass of 13C in Soil Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nVeg": { + "CMOR_varname": "nVeg", + "standard_name": "vegetation_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Vegetation", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nLitter": { + "CMOR_varname": "nLitter", + "standard_name": "litter_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Litter Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nLand": { + "CMOR_varname": "nLand", + "standard_name": "mass_content_of_nitrogen_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", + "long_name": "Total nitrogen in all terrestrial nitrogen pools", + "mipTable": "Emon", + "units": "kg m-2" + }, + "wetlandCH4": { + "CMOR_varname": "wetlandCH4", + "standard_name": "surface_net_upward_mass_flux_of_methane_due_to_emission_from_wetland_biological_processes", + "long_name": "Grid averaged methane emissions from wetlands", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rac14": { + "CMOR_varname": "rac14", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_plant_respiration", + "long_name": "Mass Flux of 14C into Atmosphere due to Autotrophic (Plant) Respiration on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhc14": { + "CMOR_varname": "rhc14", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_heterotrophic_respiration", + "long_name": "Mass Flux of 14C into Atmosphere due to Heterotrophic Respiration on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rac13": { + "CMOR_varname": "rac13", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_plant_respiration", + "long_name": "Mass Flux of 13C into Atmosphere due to Autotrophic (Plant) Respiration on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "netAtmosLandC13Flux": { + "CMOR_varname": "netAtmosLandC13Flux", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_all_land_processes", + "long_name": "Net Mass Flux of 13C between atmosphere and land (positive into land) as a result of all processes.", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fN2O": { + "CMOR_varname": "fN2O", + "standard_name": "surface_upward_mass_flux_of_nitrous_oxide_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", + "long_name": "Total land N2O flux", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "od550aerso": { + "CMOR_varname": "od550aerso", + "standard_name": "stratosphere_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "Stratospheric Optical depth at 550 nm (all aerosols) 2D-field (here we limit the computation of OD to the stratosphere only)", + "mipTable": "Emon", + "units": "1" + }, + "od550so4so": { + "CMOR_varname": "od550so4so", + "standard_name": "stratosphere_optical_thickness_due_to_sulfate_ambient_aerosol_particles", + "long_name": "Stratospheric Optical depth at 550 nm (sulphate only) 2D-field (here we limit the computation of OD to the stratosphere only)", + "mipTable": "Emon", + "units": "1" + }, + "mmrno3": { + "CMOR_varname": "mmrno3", + "standard_name": "mass_fraction_of_nitrate_dry_aerosol_particles_in_air", + "long_name": "NO3 aerosol mass mixing ratio", + "mipTable": "Emon", + "units": "kg kg-1" + }, + "depdust": { + "CMOR_varname": "depdust", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_deposition", + "long_name": "Total Deposition Rate of Dust", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "sedustCI": { + "CMOR_varname": "sedustCI", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_insoluble_dust_dry_aerosol_particles_due_to_deposition", + "long_name": "Sedimentation Flux of dust mode coarse insoluble", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "md": { + "CMOR_varname": "md", + "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission", + "long_name": "Wet diameter mode coarse insoluble", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "od443dust": { + "CMOR_varname": "od443dust", + "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", + "long_name": "Optical thickness at 443 nm Dust", + "mipTable": "Emon", + "units": "1" + }, + "od865dust": { + "CMOR_varname": "od865dust", + "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", + "long_name": "Optical thickness at 865 nm Dust", + "mipTable": "Emon", + "units": "1" + }, + "lwtoacsdust": { + "CMOR_varname": "lwtoacsdust", + "standard_name": "toa_longwave_dust_ambient_aerosol_particles_direct_radiative_effect_assuming_clear_sky", + "long_name": "Clear-sky TOA Longwave radiative flux due to Dust", + "mipTable": "Emon", + "units": "W m-2" + }, + "swsrfcsdust": { + "CMOR_varname": "swsrfcsdust", + "standard_name": "surface_net_downward_shortwave_dust_ambient_aerosol_particles_direct_radiative_effect_assuming_clear_sky", + "long_name": "Clear-sky Surface Shortwave radiative flux due to Dust", + "mipTable": "Emon", + "units": "W m-2" + }, + "swsrfasdust": { + "CMOR_varname": "swsrfasdust", + "standard_name": "surface_net_downward_shortwave_dust_ambient_aerosol_particles_direct_radiative_effect", + "long_name": "All-sky Surface Shortwave radiative flux due to Dust", + "mipTable": "Emon", + "units": "W m-2" + }, + "lwsrfcsdust": { + "CMOR_varname": "lwsrfcsdust", + "standard_name": "surface_net_downward_longwave_dust_ambient_aerosol_particles_direct_radiative_effect_assuming_clear_sky", + "long_name": "Clear-sky Surface Longwave radiative flux due to Dust", + "mipTable": "Emon", + "units": "W m-2" + }, + "lwsrfasdust": { + "CMOR_varname": "lwsrfasdust", + "standard_name": "surface_net_downward_longwave_dust_ambient_aerosol_particles_direct_radiative_effect", + "long_name": "All-sky Surface Longwave radiative flux due to Dust", + "mipTable": "Emon", + "units": "W m-2" + }, + "zmla": { + "CMOR_varname": "zmla", + "standard_name": "atmosphere_boundary_layer_thickness", + "long_name": "Height of Boundary Layer", + "mipTable": "Eday", + "units": "m" + }, + "hus850": { + "CMOR_varname": "hus850", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "Eday", + "units": "1" + }, + "ta500": { + "CMOR_varname": "ta500", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "Eday", + "units": "K" + }, + "simassacrossline": { + "CMOR_varname": "simassacrossline", + "standard_name": "sea_ice_transport_across_line", + "long_name": "Sea mass area flux through straits", + "mipTable": "SImon", + "units": "kg s-1" + }, + "sipr": { + "CMOR_varname": "sipr", + "standard_name": "rainfall_flux", + "long_name": "Rainfall rate over sea ice", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siflswdbot": { + "CMOR_varname": "siflswdbot", + "standard_name": "downwelling_shortwave_flux_in_sea_water_at_sea_ice_base", + "long_name": "Downwelling shortwave flux under sea ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "sifllwdtop": { + "CMOR_varname": "sifllwdtop", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Downwelling longwave flux over sea ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "siflswutop": { + "CMOR_varname": "siflswutop", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Upwelling Shortwave Flux over Sea Ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "siflfwbot": { + "CMOR_varname": "siflfwbot", + "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", + "long_name": "Freshwater flux from sea ice", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siforcetilty": { + "CMOR_varname": "siforcetilty", + "standard_name": "sea_ice_y_force_per_unit_area_due_to_sea_surface_tilt", + "long_name": "Sea-surface tilt term in force balance (y-component)", + "mipTable": "SImon", + "units": "N m-2" + }, + "sitemptop": { + "CMOR_varname": "sitemptop", + "standard_name": "sea_ice_surface_temperature", + "long_name": "Surface temperature of sea ice", + "mipTable": "SImon", + "units": "K" + }, + "sndmassdyn": { + "CMOR_varname": "sndmassdyn", + "standard_name": "tendency_of_surface_snow_amount_due_to_sea_ice_dynamics", + "long_name": "Snow Mass Rate of Change through Avection by Sea-ice Dynamics", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siflfwdrain": { + "CMOR_varname": "siflfwdrain", + "standard_name": "water_flux_into_sea_water_due_to_surface_drainage", + "long_name": "Freshwater flux from sea-ice surface", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sisnconc": { + "CMOR_varname": "sisnconc", + "standard_name": "surface_snow_area_fraction", + "long_name": "Snow area fraction", + "mipTable": "SImon", + "units": "%" + }, + "siforceintstry": { + "CMOR_varname": "siforceintstry", + "standard_name": "sea_ice_y_internal_stress", + "long_name": "Internal stress term in force balance (y-component)", + "mipTable": "SImon", + "units": "N m-2" + }, + "sisali": { + "CMOR_varname": "sisali", + "standard_name": "sea_ice_salinity", + "long_name": "Sea ice salinity", + "mipTable": "SImon", + "units": "0.001" + }, + "sistrxdtop": { + "CMOR_varname": "sistrxdtop", + "standard_name": "surface_downward_x_stress", + "long_name": "X-component of atmospheric stress on sea ice", + "mipTable": "SImon", + "units": "N m-2" + }, + "siitdsnconc": { + "CMOR_varname": "siitdsnconc", + "standard_name": "surface_snow_area_fraction", + "long_name": "Snow area fractions in thickness categories", + "mipTable": "SImon", + "units": "%" + }, + "siflcondtop": { + "CMOR_varname": "siflcondtop", + "standard_name": "surface_downward_sensible_heat_flux", + "long_name": "Net conductive heat flux in ice at the surface", + "mipTable": "SImon", + "units": "W m-2" + }, + "sicompstren": { + "CMOR_varname": "sicompstren", + "standard_name": "compressive_strength_of_sea_ice", + "long_name": "Compressive sea ice strength", + "mipTable": "SImon", + "units": "N m-1" + }, + "hus7h": { + "CMOR_varname": "hus7h", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "simpmass": { + "CMOR_varname": "simpmass", + "standard_name": "sea_ice_melt_pond_thickness", + "long_name": "Meltpond Mass per Unit Area", + "mipTable": "SImon", + "units": "kg m-2" + }, + "sistrxubot": { + "CMOR_varname": "sistrxubot", + "standard_name": "upward_x_stress_at_sea_ice_base", + "long_name": "X-component of ocean stress on sea ice", + "mipTable": "SImon", + "units": "N m-2" + }, + "siconca": { + "CMOR_varname": "siconca", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea Ice Area Fraction (Atmospheric Grid)", + "mipTable": "SImon", + "units": "%" + }, + "sidmassgrowthbot": { + "CMOR_varname": "sidmassgrowthbot", + "standard_name": "tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation", + "long_name": "sea-ice mass change through basal growth", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sistresave": { + "CMOR_varname": "sistresave", + "standard_name": "sea_ice_average_normal_horizontal_stress", + "long_name": "Average normal stress in sea ice", + "mipTable": "SImon", + "units": "N m-1" + }, + "siitdconc": { + "CMOR_varname": "siitdconc", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea-ice area fractions in thickness categories", + "mipTable": "SImon", + "units": "%" + }, + "simprefrozen": { + "CMOR_varname": "simprefrozen", + "standard_name": "thickness_of_ice_on_sea_ice_melt_pond", + "long_name": "Thickness of Refrozen Ice on Melt Pond", + "mipTable": "SImon", + "units": "m" + }, + "wbptemp7h": { + "CMOR_varname": "wbptemp7h", + "standard_name": "wet_bulb_potential_temperature", + "long_name": "wet_bulb_potential_temperature", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "sidmassdyn": { + "CMOR_varname": "sidmassdyn", + "standard_name": "tendency_of_sea_ice_amount_due_to_sea_ice_dynamics", + "long_name": "sea-ice mass change from dynamics", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sidconcth": { + "CMOR_varname": "sidconcth", + "standard_name": "tendency_of_sea_ice_area_fraction_due_to_thermodynamics", + "long_name": "sea-ice area fraction change from thermodynamics", + "mipTable": "SImon", + "units": "s-1" + }, + "sitempsnic": { + "CMOR_varname": "sitempsnic", + "standard_name": "sea_ice_surface_temperature", + "long_name": "Temperature at snow-ice interface", + "mipTable": "SImon", + "units": "K" + }, + "sidragtop": { + "CMOR_varname": "sidragtop", + "standard_name": "surface_drag_coefficient_for_momentum_in_air", + "long_name": "Atmospheric drag coefficient", + "mipTable": "SImon", + "units": "1" + }, + "sivols": { + "CMOR_varname": "sivols", + "standard_name": "sea_ice_volume", + "long_name": "Sea ice volume South", + "mipTable": "SImon", + "units": "1e3 km3" + }, + "siflsensupbot": { + "CMOR_varname": "siflsensupbot", + "standard_name": "upward_sea_ice_basal_heat_flux", + "long_name": "Net upward sensible heat flux under sea ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "sndmasswindrif": { + "CMOR_varname": "sndmasswindrif", + "standard_name": "tendency_of_surface_snow_amount_due_to_drifting_into_sea", + "long_name": "Snow Mass Rate of Change through Wind Drift of Snow", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siforcetiltx": { + "CMOR_varname": "siforcetiltx", + "standard_name": "sea_ice_x_force_per_unit_area_due_to_sea_surface_tilt", + "long_name": "Sea-surface tilt term in force balance (x-component)", + "mipTable": "SImon", + "units": "N m-2" + }, + "siv": { + "CMOR_varname": "siv", + "standard_name": "sea_ice_y_velocity", + "long_name": "Y-component of sea ice velocity", + "mipTable": "SImon", + "units": "m s-1" + }, + "simpconc": { + "CMOR_varname": "simpconc", + "standard_name": "area_fraction", + "long_name": "Percentage Cover of Sea-Ice by Meltpond", + "mipTable": "SImon", + "units": "%" + }, + "siareaacrossline": { + "CMOR_varname": "siareaacrossline", + "standard_name": "sea_ice_area_transport_across_line", + "long_name": "Sea ice area flux through straits", + "mipTable": "SImon", + "units": "m2 s-1" + }, + "sidmassmelttop": { + "CMOR_varname": "sidmassmelttop", + "standard_name": "tendency_of_sea_ice_amount_due_to_surface_melting", + "long_name": "sea-ice mass change through surface melting", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sidmasslat": { + "CMOR_varname": "sidmasslat", + "standard_name": "tendency_of_sea_ice_amount_due_to_lateral_melting", + "long_name": "Lateral sea ice melt rate", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siareas": { + "CMOR_varname": "siareas", + "standard_name": "sea_ice_area", + "long_name": "Sea ice area South", + "mipTable": "SImon", + "units": "1e6 km2" + }, + "sidmassth": { + "CMOR_varname": "sidmassth", + "standard_name": "tendency_of_sea_ice_amount_due_to_sea_ice_thermodynamics", + "long_name": "sea-ice mass change from thermodynamics", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sifllatstop": { + "CMOR_varname": "sifllatstop", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Net latent heat flux over sea ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "sivol": { + "CMOR_varname": "sivol", + "standard_name": "sea_ice_thickness", + "long_name": "Sea-ice volume per area", + "mipTable": "SImon", + "units": "m" + }, + "sidmassmeltbot": { + "CMOR_varname": "sidmassmeltbot", + "standard_name": "tendency_of_sea_ice_amount_due_to_basal_melting", + "long_name": "sea-ice mass change through bottom melting", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siitdthick": { + "CMOR_varname": "siitdthick", + "standard_name": "sea_ice_thickness", + "long_name": "Sea-ice thickness in thickness categories", + "mipTable": "SImon", + "units": "m" + }, + "siforcecorioly": { + "CMOR_varname": "siforcecorioly", + "standard_name": "sea_ice_y_force_per_unit_area_due_to_coriolis_effect", + "long_name": "Coriolis force term in force balance (y-component)", + "mipTable": "SImon", + "units": "N m-2" + }, + "sivoln": { + "CMOR_varname": "sivoln", + "standard_name": "sea_ice_volume", + "long_name": "Sea ice volume North", + "mipTable": "SImon", + "units": "1e3 km3" + }, + "siflsenstop": { + "CMOR_varname": "siflsenstop", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Net upward sensible heat flux over sea ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "siage": { + "CMOR_varname": "siage", + "standard_name": "age_of_sea_ice", + "long_name": "Age of sea ice", + "mipTable": "SImon", + "units": "s" + }, + "snmassacrossline": { + "CMOR_varname": "snmassacrossline", + "standard_name": "snow_transport_across_line_due_to_sea_ice_dynamics", + "long_name": "Snow mass flux through straits", + "mipTable": "SImon", + "units": "kg s-1" + }, + "sndmasssubl": { + "CMOR_varname": "sndmasssubl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Snow Mass Rate of Change through Evaporation or Sublimation", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sidmassgrowthwat": { + "CMOR_varname": "sidmassgrowthwat", + "standard_name": "tendency_of_sea_ice_amount_due_to_frazil_ice_accumulation_in_leads", + "long_name": "sea-ice mass change through growth in supercooled open water (aka frazil)", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sistryubot": { + "CMOR_varname": "sistryubot", + "standard_name": "upward_y_stress_at_sea_ice_base", + "long_name": "Y-component of ocean stress on sea ice", + "mipTable": "SImon", + "units": "N m-2" + }, + "siarean": { + "CMOR_varname": "siarean", + "standard_name": "sea_ice_area", + "long_name": "Sea ice area North", + "mipTable": "SImon", + "units": "1e6 km2" + }, + "sirdgconc": { + "CMOR_varname": "sirdgconc", + "standard_name": "area_fraction", + "long_name": "Percentage Cover of Sea-Ice by Ridging", + "mipTable": "SImon", + "units": "1" + }, + "sishevel": { + "CMOR_varname": "sishevel", + "standard_name": "maximum_over_coordinate_rotation_of_sea_ice_horizontal_shear_strain_rate", + "long_name": "Maximum shear of sea-ice velocity field", + "mipTable": "SImon", + "units": "s-1" + }, + "sidmasstranx": { + "CMOR_varname": "sidmasstranx", + "standard_name": "sea_ice_x_transport", + "long_name": "X-component of sea-ice mass transport", + "mipTable": "SImon", + "units": "kg s-1" + }, + "ta7h": { + "CMOR_varname": "ta7h", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "siextentn": { + "CMOR_varname": "siextentn", + "standard_name": "sea_ice_extent", + "long_name": "Sea ice extent North", + "mipTable": "SImon", + "units": "1e6 km2" + }, + "sistrydtop": { + "CMOR_varname": "sistrydtop", + "standard_name": "surface_downward_y_stress", + "long_name": "Y-component of atmospheric stress on sea ice", + "mipTable": "SImon", + "units": "N m-2" + }, + "sidmassevapsubl": { + "CMOR_varname": "sidmassevapsubl", + "standard_name": "water_evapotranspiration_flux", + "long_name": "sea-ice mass change through evaporation and sublimation", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siflswdtop": { + "CMOR_varname": "siflswdtop", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Downwelling shortwave flux over sea ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "sisaltmass": { + "CMOR_varname": "sisaltmass", + "standard_name": "sea_ice_mass_content_of_salt", + "long_name": "Mass of salt in sea ice per area", + "mipTable": "SImon", + "units": "kg m-2" + }, + "sisnmass": { + "CMOR_varname": "sisnmass", + "standard_name": "liquid_water_content_of_surface_snow", + "long_name": "Snow mass per area", + "mipTable": "SImon", + "units": "kg m-2" + }, + "ua7h": { + "CMOR_varname": "ua7h", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "siitdsnthick": { + "CMOR_varname": "siitdsnthick", + "standard_name": "surface_snow_thickness", + "long_name": "Snow thickness in thickness categories", + "mipTable": "SImon", + "units": "m" + }, + "va7h": { + "CMOR_varname": "va7h", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "sndmasssnf": { + "CMOR_varname": "sndmasssnf", + "standard_name": "snowfall_flux", + "long_name": "snow mass change through snow fall", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "siflcondbot": { + "CMOR_varname": "siflcondbot", + "standard_name": "basal_downward_heat_flux_in_sea_ice", + "long_name": "Net conductive heat fluxes in ice at the bottom", + "mipTable": "SImon", + "units": "W m-2" + }, + "sndmassmelt": { + "CMOR_varname": "sndmassmelt", + "standard_name": "surface_snow_melt_flux", + "long_name": "Snow Mass Rate of Change through Melt", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sidragbot": { + "CMOR_varname": "sidragbot", + "standard_name": "sea_ice_basal_drag_coefficient_for_momentum_in_sea_water", + "long_name": "Ocean drag coefficient", + "mipTable": "SImon", + "units": "1" + }, + "sitimefrac": { + "CMOR_varname": "sitimefrac", + "standard_name": "fraction_of_time_with_sea_ice_area_fraction_above_threshold", + "long_name": "Fraction of time steps with sea ice", + "mipTable": "SImon", + "units": "1" + }, + "sfdsi": { + "CMOR_varname": "sfdsi", + "standard_name": "downward_sea_ice_basal_salt_flux", + "long_name": "Salt flux from sea ice", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sispeed": { + "CMOR_varname": "sispeed", + "standard_name": "sea_ice_speed", + "long_name": "Sea-ice speed", + "mipTable": "SImon", + "units": "m s-1" + }, + "sidivvel": { + "CMOR_varname": "sidivvel", + "standard_name": "divergence_of_sea_ice_velocity", + "long_name": "Divergence of the sea-ice velocity field", + "mipTable": "SImon", + "units": "s-1" + }, + "sifllwutop": { + "CMOR_varname": "sifllwutop", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Upwelling Longwave Flux over Sea Ice", + "mipTable": "SImon", + "units": "W m-2" + }, + "siextents": { + "CMOR_varname": "siextents", + "standard_name": "sea_ice_extent", + "long_name": "Sea ice extent South", + "mipTable": "SImon", + "units": "1e6 km2" + }, + "sifb": { + "CMOR_varname": "sifb", + "standard_name": "sea_ice_freeboard", + "long_name": "Sea-ice freeboard", + "mipTable": "SImon", + "units": "m" + }, + "siu": { + "CMOR_varname": "siu", + "standard_name": "sea_ice_x_velocity", + "long_name": "X-component of sea ice velocity", + "mipTable": "SImon", + "units": "m s-1" + }, + "siforceintstrx": { + "CMOR_varname": "siforceintstrx", + "standard_name": "sea_ice_x_internal_stress", + "long_name": "Internal stress term in force balance (x-component)", + "mipTable": "SImon", + "units": "N m-2" + }, + "sistremax": { + "CMOR_varname": "sistremax", + "standard_name": "maximum_over_coordinate_rotation_of_sea_ice_horizontal_shear_stress", + "long_name": "Maximum shear stress in sea ice", + "mipTable": "SImon", + "units": "N m-1" + }, + "sihc": { + "CMOR_varname": "sihc", + "standard_name": "sea_ice_temperature_expressed_as_heat_content", + "long_name": "Sea-ice heat content per unit area", + "mipTable": "SImon", + "units": "J m-2" + }, + "sidmasstrany": { + "CMOR_varname": "sidmasstrany", + "standard_name": "sea_ice_y_transport", + "long_name": "Y-component of sea-ice mass transport", + "mipTable": "SImon", + "units": "kg s-1" + }, + "siforcecoriolx": { + "CMOR_varname": "siforcecoriolx", + "standard_name": "sea_ice_x_force_per_unit_area_due_to_coriolis_effect", + "long_name": "Coriolis force term in force balance (x-component)", + "mipTable": "SImon", + "units": "N m-2" + }, + "simass": { + "CMOR_varname": "simass", + "standard_name": "sea_ice_amount", + "long_name": "Sea-ice mass per area", + "mipTable": "SImon", + "units": "kg m-2" + }, + "sitempbot": { + "CMOR_varname": "sitempbot", + "standard_name": "sea_ice_basal_temperature", + "long_name": "Temperature at ice-ocean interface", + "mipTable": "SImon", + "units": "K" + }, + "sirdgthick": { + "CMOR_varname": "sirdgthick", + "standard_name": "sea_ice_thickness", + "long_name": "Ridged ice thickness", + "mipTable": "SImon", + "units": "m" + }, + "sidconcdyn": { + "CMOR_varname": "sidconcdyn", + "standard_name": "tendency_of_sea_ice_area_fraction_due_to_dynamics", + "long_name": "sea-ice area fraction change from dynamics", + "mipTable": "SImon", + "units": "s-1" + }, + "sndmasssi": { + "CMOR_varname": "sndmasssi", + "standard_name": "tendency_of_surface_snow_amount_due_to_conversion_of_snow_to_sea_ice", + "long_name": "Snow Mass Rate of Change through Snow-to-Ice Conversion", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "sisnhc": { + "CMOR_varname": "sisnhc", + "standard_name": "thermal_energy_content_of_surface_snow", + "long_name": "Snow-heat content per unit area", + "mipTable": "SImon", + "units": "J m-2" + }, + "sisnthick": { + "CMOR_varname": "sisnthick", + "standard_name": "surface_snow_thickness", + "long_name": "Snow thickness", + "mipTable": "SImon", + "units": "m" + }, + "sidmasssi": { + "CMOR_varname": "sidmasssi", + "standard_name": "tendency_of_sea_ice_amount_due_to_conversion_of_snow_to_sea_ice", + "long_name": "sea-ice mass change through snow-to-ice conversion", + "mipTable": "SImon", + "units": "kg m-2 s-1" + }, + "rsdscsdiff": { + "CMOR_varname": "rsdscsdiff", + "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", + "mipTable": "Emon", + "units": "W m-2" + }, + "clwvic": { + "CMOR_varname": "clwvic", + "standard_name": "atmosphere_mass_content_of_convective_cloud_condensed_water", + "long_name": "Convective Condensed Water Path", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nudgincsm": { + "CMOR_varname": "nudgincsm", + "standard_name": "nudging_increment_in_mass_content_of_water_in_soil", + "long_name": "Nudging Increment of Water in Soil Mositure", + "mipTable": "Eday", + "units": "kg m-2" + }, + "nudgincswe": { + "CMOR_varname": "nudgincswe", + "standard_name": "nudging_increment_in_snow_and_ice_amount_on_land", + "long_name": "Nudging Increment of Water in Snow", + "mipTable": "Eday", + "units": "kg m-2" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Near-Surface Wind Speed", + "mipTable": "E3hr", + "units": "m s-1" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "mipTable": "E3hr", + "units": "m s-1" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "mipTable": "E3hr", + "units": "m s-1" + }, + "prra": { + "CMOR_varname": "prra", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "prrc": { + "CMOR_varname": "prrc", + "standard_name": "convective_rainfall_flux", + "long_name": "Convective Rainfall rate", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "prsnc": { + "CMOR_varname": "prsnc", + "standard_name": "convective_snowfall_flux", + "long_name": "Convective Snowfall Flux", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "albdiffbnd": { + "CMOR_varname": "albdiffbnd", + "standard_name": "surface_diffuse_shortwave_hemispherical_reflectance", + "long_name": "Diffuse surface albedo for each band", + "mipTable": "E3hrPt", + "units": "1" + }, + "albdirbnd": { + "CMOR_varname": "albdirbnd", + "standard_name": "surface_direct_shortwave_hemispherical_reflectance", + "long_name": "Direct surface albedo for each band", + "mipTable": "E3hrPt", + "units": "1" + }, + "solbnd": { + "CMOR_varname": "solbnd", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "Top-of-Atmosphere Solar Insolation for each band", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "aeroptbnd": { + "CMOR_varname": "aeroptbnd", + "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "Aerosol level extinction optical depth for each band", + "mipTable": "E3hrPt", + "units": "1" + }, + "aerssabnd": { + "CMOR_varname": "aerssabnd", + "standard_name": "single_scattering_albedo_in_air_due_to_ambient_aerosol_particles", + "long_name": "Aerosol level single-scattering albedo for each band", + "mipTable": "E3hrPt", + "units": "1" + }, + "aerasymbnd": { + "CMOR_varname": "aerasymbnd", + "standard_name": "asymmetry_factor_of_ambient_aerosol_particles", + "long_name": "Aerosol level asymmetry parameter for each band", + "mipTable": "E3hrPt", + "units": "1" + }, + "rsutcsbnd": { + "CMOR_varname": "rsutcsbnd", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation for each band", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsdscsbnd": { + "CMOR_varname": "rsdscsbnd", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation for each band", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsuscsbnd": { + "CMOR_varname": "rsuscsbnd", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation for each band", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsucsbnd": { + "CMOR_varname": "rsucsbnd", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Shortwave Radiation at each level for each band", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsdcsbnd": { + "CMOR_varname": "rsdcsbnd", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Shortwave Radiation at each level for each band", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "sza": { + "CMOR_varname": "sza", + "standard_name": "solar_zenith_angle", + "long_name": "Solar Zenith Angle", + "mipTable": "E3hrPt", + "units": "degree" + }, + "rsucs": { + "CMOR_varname": "rsucs", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsdcs": { + "CMOR_varname": "rsdcs", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "ch4": { + "CMOR_varname": "ch4", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "CH4 volume mixing ratio", + "mipTable": "E3hrPt", + "units": "mol mol-1" + }, + "co2": { + "CMOR_varname": "co2", + "standard_name": "mole_fraction_of_carbon_dioxide_in_air", + "long_name": "CO2 volume mixing ratio", + "mipTable": "E3hrPt", + "units": "mol mol-1" + }, + "n2o": { + "CMOR_varname": "n2o", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "N2O volume mixing ratio", + "mipTable": "E3hrPt", + "units": "mol mol-1" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "CF3hr", + "units": "K" + }, + "prra": { + "CMOR_varname": "prra", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux where Ice Free Ocean over Sea", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "rv850": { + "CMOR_varname": "rv850", + "standard_name": "atmosphere_relative_vorticity", + "long_name": "Relative Vorticity at 850 hPa", + "mipTable": "6hrPlevPt", + "units": "s-1" + }, + "zg500": { + "CMOR_varname": "zg500", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height at 500 hPa", + "mipTable": "6hrPlevPt", + "units": "m" + }, + "cldnci": { + "CMOR_varname": "cldnci", + "standard_name": "number_concentration_of_ice_crystals_in_air_at_ice_cloud_top", + "long_name": "Ice Crystal Number Concentration of Cloud Tops", + "mipTable": "Eday", + "units": "m-3" + }, + "rsdsdiff": { + "CMOR_varname": "rsdsdiff", + "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", + "long_name": "Surface Diffuse Downwelling Shortwave Radiation", + "mipTable": "Eday", + "units": "W m-2" + }, + "rsdscsdiff": { + "CMOR_varname": "rsdscsdiff", + "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", + "mipTable": "Eday", + "units": "W m-2" + }, + "cldnvi": { + "CMOR_varname": "cldnvi", + "standard_name": "atmosphere_number_content_of_cloud_droplets", + "long_name": "Column Integrated Cloud Droplet Number", + "mipTable": "Eday", + "units": "m-2" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "mipTable": "Emon", + "units": "m" + }, + "zg7h": { + "CMOR_varname": "zg7h", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "6hrPlevPt", + "units": "m" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "mipTable": "Emon", + "units": "Pa" + }, + "hfdsl": { + "CMOR_varname": "hfdsl", + "standard_name": "surface_downward_heat_flux_in_air", + "long_name": "Downward Heat Flux at Land Surface", + "mipTable": "Eday", + "units": "W m-2" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature", + "mipTable": "CFsubhr", + "units": "K" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "CFsubhr", + "units": "K" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "mipTable": "CFsubhr", + "units": "m s-1" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "mipTable": "CFsubhr", + "units": "m s-1" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Near-Surface Wind Speed", + "mipTable": "CFsubhr", + "units": "m s-1" + }, + "hurs": { + "CMOR_varname": "hurs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "mipTable": "CFsubhr", + "units": "%" + }, + "huss": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "mipTable": "CFsubhr", + "units": "1" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "evspsbl": { + "CMOR_varname": "evspsbl", + "standard_name": "water_evapotranspiration_flux", + "long_name": "Evaporation including Sublimation and Transpiration", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "tauu": { + "CMOR_varname": "tauu", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "tauv": { + "CMOR_varname": "tauv", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsdscs": { + "CMOR_varname": "rsdscs", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsuscs": { + "CMOR_varname": "rsuscs", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rldscs": { + "CMOR_varname": "rldscs", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rlutcs": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsutcs": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "prw": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_mass_content_of_water_vapor", + "long_name": "Water Vapor Path", + "mipTable": "CFsubhr", + "units": "kg m-2" + }, + "clt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "mipTable": "CFsubhr", + "units": "%" + }, + "clwvi": { + "CMOR_varname": "clwvi", + "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", + "long_name": "Condensed Water Path", + "mipTable": "CFsubhr", + "units": "kg m-2" + }, + "clivi": { + "CMOR_varname": "clivi", + "standard_name": "atmosphere_mass_content_of_cloud_ice", + "long_name": "Ice Water Path", + "mipTable": "CFsubhr", + "units": "kg m-2" + }, + "rtmt": { + "CMOR_varname": "rtmt", + "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", + "long_name": "Net Downward Flux at Top of Model", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "ccb": { + "CMOR_varname": "ccb", + "standard_name": "air_pressure_at_convective_cloud_base", + "long_name": "Air Pressure at Convective Cloud Base", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "cct": { + "CMOR_varname": "cct", + "standard_name": "air_pressure_at_convective_cloud_top", + "long_name": "Air Pressure at Convective Cloud Top", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "ci": { + "CMOR_varname": "ci", + "standard_name": "convection_time_fraction", + "long_name": "Fraction of Time Convection Occurs", + "mipTable": "CFsubhr", + "units": "1" + }, + "sci": { + "CMOR_varname": "sci", + "standard_name": "shallow_convection_time_fraction", + "long_name": "Fraction of Time Shallow Convection Occurs", + "mipTable": "CFsubhr", + "units": "1" + }, + "fco2antt": { + "CMOR_varname": "fco2antt", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", + "long_name": "Carbon Mass Flux into Atmosphere Due to All Anthropogenic Emissions of CO2", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "fco2fos": { + "CMOR_varname": "fco2fos", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", + "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "fco2nat": { + "CMOR_varname": "fco2nat", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources", + "long_name": "Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "dissicos": { + "CMOR_varname": "dissicos", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", + "long_name": "Surface Dissolved Inorganic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "fg13co2": { + "CMOR_varname": "fg13co2", + "standard_name": "surface_downward_mass_flux_of_13C_dioxide_abiotic_analogue_expressed_as_13C", + "long_name": "Surface Downward Flux of Abiotic 13CO2", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "msftmrho": { + "CMOR_varname": "msftmrho", + "standard_name": "ocean_meridional_overturning_mass_streamfunction", + "long_name": "Ocean Meridional Overturning Mass Streamfunction", + "mipTable": "Odec", + "units": "kg s-1" + }, + "tasIs": { + "CMOR_varname": "tasIs", + "standard_name": "air_temperature", + "long_name": "Ice Sheet Near-Surface Air Temperature", + "mipTable": "LImon", + "units": "K" + }, + "tsIs": { + "CMOR_varname": "tsIs", + "standard_name": "surface_temperature", + "long_name": "Ice Sheet Surface Temperature", + "mipTable": "LImon", + "units": "K" + }, + "litemptopIs": { + "CMOR_varname": "litemptopIs", + "standard_name": "temperature_at_top_of_ice_sheet_model", + "long_name": "Ice Sheet Temperature at top of ice sheet model", + "mipTable": "LImon", + "units": "K" + }, + "acabfIs": { + "CMOR_varname": "acabfIs", + "standard_name": "land_ice_surface_specific_mass_balance_flux", + "long_name": "Ice Sheet Surface Mass Balance flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "prsnIs": { + "CMOR_varname": "prsnIs", + "standard_name": "snowfall_flux", + "long_name": "Ice Sheet Snowfall Flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "prraIs": { + "CMOR_varname": "prraIs", + "standard_name": "rainfall_flux", + "long_name": "Ice Sheet Rainfall rate", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "snicemIs": { + "CMOR_varname": "snicemIs", + "standard_name": "surface_snow_and_ice_melt_flux", + "long_name": "Ice Sheet Surface Snow and Ice Melt Flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "icemIs": { + "CMOR_varname": "icemIs", + "standard_name": "land_ice_surface_melt_flux", + "long_name": "Ice Sheet Surface Ice Melt Flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "snicefreezIs": { + "CMOR_varname": "snicefreezIs", + "standard_name": "surface_snow_and_ice_refreezing_flux", + "long_name": "Ice Sheet Surface Snow and Ice Refreeze Flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "orogIs": { + "CMOR_varname": "orogIs", + "standard_name": "surface_altitude", + "long_name": "Ice Sheet Surface Altitude", + "mipTable": "LImon", + "units": "m" + }, + "hflsIs": { + "CMOR_varname": "hflsIs", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Ice Sheet Surface Upward Latent Heat Flux", + "mipTable": "LImon", + "units": "W m-2" + }, + "hfssIs": { + "CMOR_varname": "hfssIs", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Ice Sheet Surface Upward Sensible Heat Flux", + "mipTable": "LImon", + "units": "W m-2" + }, + "rsdsIs": { + "CMOR_varname": "rsdsIs", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Ice Sheet Surface Downwelling Shortwave Radiation", + "mipTable": "LImon", + "units": "W m-2" + }, + "rsusIs": { + "CMOR_varname": "rsusIs", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Ice Sheet Surface Upwelling Shortwave Radiation", + "mipTable": "LImon", + "units": "W m-2" + }, + "rldsIs": { + "CMOR_varname": "rldsIs", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Ice Sheet Surface Downwelling Longwave Radiation", + "mipTable": "LImon", + "units": "W m-2" + }, + "rlusIs": { + "CMOR_varname": "rlusIs", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Ice Sheet Surface Upwelling Longwave Radiation", + "mipTable": "LImon", + "units": "W m-2" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "6hrPlevPt", + "units": "Pa" + }, + "mlotst": { + "CMOR_varname": "mlotst", + "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", + "mipTable": "Eday", + "units": "m" + }, + "utendnogw": { + "CMOR_varname": "utendnogw", + "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "u-tendency nonorographic gravity wave drag", + "mipTable": "EmonZ", + "units": "m s-2" + }, + "vtendnogw": { + "CMOR_varname": "vtendnogw", + "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "v-tendency nonorographic gravity wave drag", + "mipTable": "EmonZ", + "units": "m s-2" + }, + "utendnogw27": { + "CMOR_varname": "utendnogw27", + "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "u-tendency nonorographic gravity wave drag", + "mipTable": "E1hr", + "units": "m s-2" + }, + "vtendnogw27": { + "CMOR_varname": "vtendnogw27", + "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "v-tendency nonorographic gravity wave drag", + "mipTable": "E1hr", + "units": "m s-2" + }, + "clayfrac": { + "CMOR_varname": "clayfrac", + "standard_name": "volume_fraction_of_clay_in_soil", + "long_name": "Clay Fraction", + "mipTable": "Efx", + "units": "1" + }, + "siltfrac": { + "CMOR_varname": "siltfrac", + "standard_name": "volume_fraction_of_silt_in_soil", + "long_name": "Silt Fraction", + "mipTable": "Efx", + "units": "1" + }, + "sandfrac": { + "CMOR_varname": "sandfrac", + "standard_name": "volume_fraction_of_sand_in_soil", + "long_name": "Sand Fraction", + "mipTable": "Efx", + "units": "1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "Emon", + "units": "1" + }, + "areacellr": { + "CMOR_varname": "areacellr", + "standard_name": "cell_area", + "long_name": "Grid-Cell Area for River Model Variables", + "mipTable": "fx", + "units": "m2" + }, + "siconc": { + "CMOR_varname": "siconc", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea Ice Area Fraction (Ocean Grid)", + "mipTable": "SIday", + "units": "%" + }, + "siconc": { + "CMOR_varname": "siconc", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea Ice Area Fraction (Ocean Grid)", + "mipTable": "SImon", + "units": "%" + }, + "masscello": { + "CMOR_varname": "masscello", + "standard_name": "sea_water_mass_per_unit_area", + "long_name": "Sea Water Mass Per Unit Area", + "mipTable": "Odec", + "units": "kg m-2" + }, + "cSoil": { + "CMOR_varname": "cSoil", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon Mass in Soil Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cLand": { + "CMOR_varname": "cLand", + "standard_name": "mass_content_of_carbon_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", + "long_name": "Total Carbon in All Terrestrial Carbon Pools", + "mipTable": "Emon", + "units": "kg m-2" + }, + "netAtmosLandCO2Flux": { + "CMOR_varname": "netAtmosLandCO2Flux", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", + "long_name": "Net flux of CO2 between atmosphere and land (positive into land) as a result of all processes.", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "c14Litter": { + "CMOR_varname": "c14Litter", + "standard_name": "litter_mass_content_of_14C", + "long_name": "Mass of 14C in Litter Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "c14Soil": { + "CMOR_varname": "c14Soil", + "standard_name": "soil_mass_content_of_14C", + "long_name": "Mass of 14C in Soil Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "c14Land": { + "CMOR_varname": "c14Land", + "standard_name": "mass_content_of_14C_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", + "long_name": "Mass of 14C in all terrestrial carbon pools", + "mipTable": "Emon", + "units": "kg m-2" + }, + "c13Veg": { + "CMOR_varname": "c13Veg", + "standard_name": "vegetation_mass_content_of_13C", + "long_name": "Mass of 13C in Vegetation", + "mipTable": "Emon", + "units": "kg m-2" + }, + "c13Litter": { + "CMOR_varname": "c13Litter", + "standard_name": "litter_mass_content_of_13C", + "long_name": "Mass of 13C in Litter Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "c13Land": { + "CMOR_varname": "c13Land", + "standard_name": "mass_content_of_13C_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", + "long_name": "Mass of 13C in all terrestrial carbon pools", + "mipTable": "Emon", + "units": "kg m-2" + }, + "gppc14": { + "CMOR_varname": "gppc14", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_14C", + "long_name": "Mass Flux of 14C out of Atmosphere due to Gross Primary Production on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "netAtmosLandC14Flux": { + "CMOR_varname": "netAtmosLandC14Flux", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_14C_due_to_all_land_processes", + "long_name": "Net Mass Flux of 14C between atmosphere and land (positive into land) as a result of all processes.", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "gppc13": { + "CMOR_varname": "gppc13", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_13C", + "long_name": "Mass Flux of 13C out of Atmosphere due to Gross Primary Production on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhc13": { + "CMOR_varname": "rhc13", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_13C_due_to_heterotrophic_respiration", + "long_name": "Mass Flux of 13C into Atmosphere due to Heterotrophic Respiration on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "dissi14c": { + "CMOR_varname": "dissi14c", + "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", + "long_name": "Concentration of DI14C", + "mipTable": "Emon", + "units": "mol m-3" + }, + "fg14co2": { + "CMOR_varname": "fg14co2", + "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Total air-sea flux of 14CO2", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "gpp": { + "CMOR_varname": "gpp", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "ra": { + "CMOR_varname": "ra", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", + "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "rh": { + "CMOR_varname": "rh", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", + "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "lai": { + "CMOR_varname": "lai", + "standard_name": "leaf_area_index", + "long_name": "Leaf Area Index", + "mipTable": "Eday", + "units": "1" + }, + "mrsol": { + "CMOR_varname": "mrsol", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Total water content of soil layer", + "mipTable": "Eday", + "units": "kg m-2" + }, + "mrsll": { + "CMOR_varname": "mrsll", + "standard_name": "liquid_water_content_of_soil_layer", + "long_name": "Liquid water content of soil layer", + "mipTable": "Eday", + "units": "kg m-2" + }, + "mrsfl": { + "CMOR_varname": "mrsfl", + "standard_name": "frozen_water_content_of_soil_layer", + "long_name": "Frozen water content of soil layer", + "mipTable": "Eday", + "units": "kg m-2" + }, + "mrlso": { + "CMOR_varname": "mrlso", + "standard_name": "liquid_water_content_of_soil_layer", + "long_name": "Soil Liquid Water Content", + "mipTable": "Emon", + "units": "kg m-2" + }, + "mrsol": { + "CMOR_varname": "mrsol", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Total water content of soil layer", + "mipTable": "Emon", + "units": "kg m-2" + }, + "mrsfl": { + "CMOR_varname": "mrsfl", + "standard_name": "frozen_water_content_of_soil_layer", + "long_name": "Frozen water content of soil layer", + "mipTable": "Emon", + "units": "kg m-2" + }, + "fCLandToOcean": { + "CMOR_varname": "fCLandToOcean", + "standard_name": "mass_flux_of_carbon_into_sea_water_from_rivers", + "long_name": "Lateral transfer of carbon out of gridcell that eventually goes into ocean", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fFireNat": { + "CMOR_varname": "fFireNat", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_fires", + "long_name": "Carbon Mass Flux into Atmosphere due to CO2 Emission from natural Fire", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fProductDecomp": { + "CMOR_varname": "fProductDecomp", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products", + "long_name": "decomposition out of product pools to CO2 in atmos", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fAnthDisturb": { + "CMOR_varname": "fAnthDisturb", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", + "long_name": "Carbon Mass Flux from Vegetation", + "mipTable": "Litter or Soil Pools into the Atmosphere due to Any Human Activity", + "units": "Emon" + }, + "fDeforestToProduct": { + "CMOR_varname": "fDeforestToProduct", + "standard_name": "carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", + "long_name": "Deforested biomass that goes into product pool as a result of anthropogenic land use change", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fHarvestToProduct": { + "CMOR_varname": "fHarvestToProduct", + "standard_name": "mass_flux_of_carbon_into_forestry_and_agricultural_products_due_to_crop_harvesting", + "long_name": "Harvested biomass that goes into product pool", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nSoil": { + "CMOR_varname": "nSoil", + "standard_name": "soil_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Soil Pool", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nProduct": { + "CMOR_varname": "nProduct", + "standard_name": "nitrogen_mass_content_of_forestry_and_agricultural_products", + "long_name": "Nitrogen Mass in Products of Land Use Change", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nMineral": { + "CMOR_varname": "nMineral", + "standard_name": "soil_mass_content_of_inorganic_nitrogen_expressed_as_nitrogen", + "long_name": "Mineral nitrogen in the soil", + "mipTable": "Emon", + "units": "kg m-2" + }, + "fNloss": { + "CMOR_varname": "fNloss", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", + "long_name": "Total N lost (including NHx", + "mipTable": "NOx", + "units": "N2O" + }, + "fNdep": { + "CMOR_varname": "fNdep", + "standard_name": "minus_tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_deposition", + "long_name": "Dry and Wet Deposition of Reactive Nitrogen onto Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fBNF": { + "CMOR_varname": "fBNF", + "standard_name": "tendency_of_soil_and_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation", + "long_name": "biological nitrogen fixation", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNup": { + "CMOR_varname": "fNup", + "standard_name": "tendency_of_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation", + "long_name": "total plant nitrogen uptake (sum of ammonium and nitrate)", + "mipTable": "irrespective of the source of nitrogen", + "units": "Emon" + }, + "fNnetmin": { + "CMOR_varname": "fNnetmin", + "standard_name": "mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_litter_and_soil_due_to_immobilisation_and_remineralization", + "long_name": "Net nitrogen release from soil and litter as the outcome of nitrogen immobilisation and gross mineralisation", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNVegLitter": { + "CMOR_varname": "fNVegLitter", + "standard_name": "nitrogen_mass_flux_into_litter_from_vegetation", + "long_name": "Total Nitrogen Mass Flux from Vegetation to Litter", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNLandToOcean": { + "CMOR_varname": "fNLandToOcean", + "standard_name": "mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_into_sea_from_rivers", + "long_name": "Lateral transfer of nitrogen out of gridcell that eventually goes into ocean", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNLitterSoil": { + "CMOR_varname": "fNLitterSoil", + "standard_name": "nitrogen_mass_flux_into_soil_from_litter", + "long_name": "Total Nitrogen Mass Flux from Litter to Soil", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNVegSoil": { + "CMOR_varname": "fNVegSoil", + "standard_name": "nitrogen_mass_flux_into_soil_from_vegetation_excluding_litter", + "long_name": "Total Nitrogen Mass Flux from Vegetation Directly to Soil", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNProduct": { + "CMOR_varname": "fNProduct", + "standard_name": "nitrogen_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", + "long_name": "Deforested or harvested biomass as a result of anthropogenic land use or change", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "grassFracC3": { + "CMOR_varname": "grassFracC3", + "standard_name": "area_fraction", + "long_name": "C3 Grass Area Percentage", + "mipTable": "Emon", + "units": "%" + }, + "grassFracC4": { + "CMOR_varname": "grassFracC4", + "standard_name": "area_fraction", + "long_name": "C4 Grass Area Percentage", + "mipTable": "Emon", + "units": "%" + }, + "cropFracC3": { + "CMOR_varname": "cropFracC3", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by C3 Crops", + "mipTable": "Emon", + "units": "%" + }, + "cStem": { + "CMOR_varname": "cStem", + "standard_name": "stem_mass_content_of_carbon", + "long_name": "Carbon Mass in Stem", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cOther": { + "CMOR_varname": "cOther", + "standard_name": "miscellaneous_living_matter_mass_content_of_carbon", + "long_name": "Carbon Mass in Vegetation Components other than Leaves", + "mipTable": "Stems and Roots", + "units": "Emon" + }, + "cLitterCwd": { + "CMOR_varname": "cLitterCwd", + "standard_name": "wood_debris_mass_content_of_carbon", + "long_name": "Carbon Mass in Coarse Woody Debris", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cLitterSurf": { + "CMOR_varname": "cLitterSurf", + "standard_name": "surface_litter_mass_content_of_carbon", + "long_name": "Carbon Mass in Above-Ground Litter", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cLitterSubSurf": { + "CMOR_varname": "cLitterSubSurf", + "standard_name": "subsurface_litter_mass_content_of_carbon", + "long_name": "Carbon Mass in Below-Ground Litter", + "mipTable": "Emon", + "units": "kg m-2" + }, + "fVegFire": { + "CMOR_varname": "fVegFire", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_vegetation_in_fires", + "long_name": "Carbon Mass Flux from Vegetation into Atmosphere due to CO2 Emission from all Fire", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fLitterFire": { + "CMOR_varname": "fLitterFire", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_litter_in_fires", + "long_name": "Carbon Mass Flux from Litter", + "mipTable": "CWD or any non-living pool into Atmosphere due to CO2 Emission from all Fire", + "units": "Emon" + }, + "fFireAll": { + "CMOR_varname": "fFireAll", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires", + "long_name": "Carbon Mass Flux into Atmosphere due to CO2 emissions from Fire resulting from all sources including natural", + "mipTable": "anthropogenic and land use change.", + "units": "Emon" + }, + "fVegLitterSenescence": { + "CMOR_varname": "fVegLitterSenescence", + "standard_name": "mass_flux_of_carbon_into_litter_from_vegetation_due_to_senescence", + "long_name": "Total Carbon Mass Flux from Vegetation to Litter as a Result of Leaf", + "mipTable": "Branch", + "units": "and Root Senescence" + }, + "fVegLitterMortality": { + "CMOR_varname": "fVegLitterMortality", + "standard_name": "mass_flux_of_carbon_into_litter_from_vegetation_due_to_mortality", + "long_name": "Total Carbon Mass Flux from Vegetation to Litter as a Result of Mortality", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raRoot": { + "CMOR_varname": "raRoot", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_roots", + "long_name": "Total Respiration from Roots", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raStem": { + "CMOR_varname": "raStem", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_stems", + "long_name": "Total Respiration from Stem", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raLeaf": { + "CMOR_varname": "raLeaf", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_leaves", + "long_name": "Total respiration from leaves", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhLitter": { + "CMOR_varname": "rhLitter", + "standard_name": "surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_litter", + "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration from Litter on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhSoil": { + "CMOR_varname": "rhSoil", + "standard_name": "surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_soil", + "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration from Soil on Land", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fHarvestToAtmos": { + "CMOR_varname": "fHarvestToAtmos", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting", + "long_name": "Harvested biomass that goes straight into atmosphere", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fDeforestToAtmos": { + "CMOR_varname": "fDeforestToAtmos", + "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", + "long_name": "Deforested biomass that goes into atmosphere as a result of anthropogenic land use change", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "vegHeightGrass": { + "CMOR_varname": "vegHeightGrass", + "standard_name": "canopy_height", + "long_name": "Vegetation height averaged over the grass fraction of a grid cell.", + "mipTable": "Emon", + "units": "m" + }, + "vegHeightShrub": { + "CMOR_varname": "vegHeightShrub", + "standard_name": "canopy_height", + "long_name": "Vegetation height averaged over the shrub fraction of a grid cell.", + "mipTable": "Emon", + "units": "m" + }, + "vegHeightCrop": { + "CMOR_varname": "vegHeightCrop", + "standard_name": "canopy_height", + "long_name": "Vegetation height averaged over the crop fraction of a grid cell.", + "mipTable": "Emon", + "units": "m" + }, + "wtd": { + "CMOR_varname": "wtd", + "standard_name": "water_table_depth", + "long_name": "Water table depth from surface.", + "mipTable": "Emon", + "units": "m" + }, + "nLeaf": { + "CMOR_varname": "nLeaf", + "standard_name": "leaf_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Leaves", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nStem": { + "CMOR_varname": "nStem", + "standard_name": "stem_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Stem", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nRoot": { + "CMOR_varname": "nRoot", + "standard_name": "root_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Roots", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nOther": { + "CMOR_varname": "nOther", + "standard_name": "miscellaneous_living_matter_mass_content_of_nitrogen", + "long_name": "Nitrogen mass in vegetation components other than leaves", + "mipTable": "stem and root", + "units": "Emon" + }, + "nLitterCwd": { + "CMOR_varname": "nLitterCwd", + "standard_name": "wood_debris_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in Coarse Woody Debris", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nMineralNH4": { + "CMOR_varname": "nMineralNH4", + "standard_name": "soil_mass_content_of_inorganic_ammonium_expressed_as_nitrogen", + "long_name": "Mineral ammonium in the soil", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nMineralNO3": { + "CMOR_varname": "nMineralNO3", + "standard_name": "soil_mass_content_of_inorganic_nitrate_expressed_as_nitrogen", + "long_name": "Mineral nitrate in the soil", + "mipTable": "Emon", + "units": "kg m-2" + }, + "wetlandCH4prod": { + "CMOR_varname": "wetlandCH4prod", + "standard_name": "surface_upward_mass_flux_of_methane_due_to_emission_from_wetland_biological_production", + "long_name": "Grid averaged methane production (methanogenesis) from wetlands", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "wetlandCH4cons": { + "CMOR_varname": "wetlandCH4cons", + "standard_name": "surface_downward_mass_flux_of_methane_due_to_wetland_biological_consumption", + "long_name": "Grid averaged methane consuption (methanotrophy) from wetlands", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNleach": { + "CMOR_varname": "fNleach", + "standard_name": "mass_flux_of_carbon_out_of_soil_due_to_leaching_and_runoff", + "long_name": "Total N loss to leaching or runoff (sum of ammonium", + "mipTable": "nitrite and nitrate)", + "units": "Emon" + }, + "fNgas": { + "CMOR_varname": "fNgas", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen", + "long_name": "Total Nitrogen lost to the atmosphere (sum of NHx", + "mipTable": "NOx", + "units": "N2O" + }, + "fNgasNonFire": { + "CMOR_varname": "fNgasNonFire", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_all_land_processes_excluding_fires", + "long_name": "Total N lost to the atmosphere (including NHx", + "mipTable": "NOx", + "units": "N2O" + }, + "fNgasFire": { + "CMOR_varname": "fNgasFire", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_emission_from_fires", + "long_name": "Total N lost to the atmosphere (including NHx", + "mipTable": "NOx", + "units": "N2O" + }, + "fNOx": { + "CMOR_varname": "fNOx", + "standard_name": "surface_upward_mass_flux_of_nox_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", + "long_name": "Total land NOx flux", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "tntrlcs": { + "CMOR_varname": "tntrlcs", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", + "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", + "mipTable": "Emon", + "units": "K s-1" + }, + "tntrscs": { + "CMOR_varname": "tntrscs", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", + "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", + "mipTable": "Emon", + "units": "K s-1" + }, + "tntd": { + "CMOR_varname": "tntd", + "standard_name": "tendency_of_air_temperature_due_to_diffusion", + "long_name": "Tendency of Air Temperature due to Numerical Diffusion", + "mipTable": "Emon", + "units": "K s-1" + }, + "tntpbl": { + "CMOR_varname": "tntpbl", + "standard_name": "tendency_of_air_temperature_due_to_boundary_layer_mixing", + "long_name": "Tendency of Air Temperature Due to Boundary Layer Mixing", + "mipTable": "Emon", + "units": "K s-1" + }, + "tntscp": { + "CMOR_varname": "tntscp", + "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation", + "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", + "mipTable": "Emon", + "units": "K s-1" + }, + "tnhuspbl": { + "CMOR_varname": "tnhuspbl", + "standard_name": "tendency_of_specific_humidity_due_to_boundary_layer_mixing", + "long_name": "Tendency of Specific Humidity Due to Boundary Layer Mixing", + "mipTable": "Emon", + "units": "s-1" + }, + "tnhusscp": { + "CMOR_varname": "tnhusscp", + "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation", + "long_name": "Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation", + "mipTable": "Emon", + "units": "s-1" + }, + "reffclws": { + "CMOR_varname": "reffclws", + "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", + "mipTable": "Emon", + "units": "m" + }, + "reffclis": { + "CMOR_varname": "reffclis", + "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", + "mipTable": "Emon", + "units": "m" + }, + "reffclwc": { + "CMOR_varname": "reffclwc", + "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", + "mipTable": "Emon", + "units": "m" + }, + "reffclic": { + "CMOR_varname": "reffclic", + "standard_name": "effective_radius_of_convective_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", + "mipTable": "Emon", + "units": "m" + }, + "tntrl": { + "CMOR_varname": "tntrl", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", + "long_name": "Longwave heating rate", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tntrs": { + "CMOR_varname": "tntrs", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", + "long_name": "Shortwave heating rate", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tntrlcs": { + "CMOR_varname": "tntrlcs", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", + "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tntrscs": { + "CMOR_varname": "tntrscs", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", + "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tntd": { + "CMOR_varname": "tntd", + "standard_name": "tendency_of_air_temperature_due_to_diffusion", + "long_name": "Tendency of Air Temperature due to Numerical Diffusion", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tntpbl": { + "CMOR_varname": "tntpbl", + "standard_name": "tendency_of_air_temperature_due_to_boundary_layer_mixing", + "long_name": "Tendency of Air Temperature Due to Boundary Layer Mixing", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tntscp": { + "CMOR_varname": "tntscp", + "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation", + "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tnhuspbl": { + "CMOR_varname": "tnhuspbl", + "standard_name": "tendency_of_specific_humidity_due_to_boundary_layer_mixing", + "long_name": "Tendency of Specific Humidity Due to Boundary Layer Mixing", + "mipTable": "Esubhr", + "units": "s-1" + }, + "tnhusscp": { + "CMOR_varname": "tnhusscp", + "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation", + "long_name": "Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation", + "mipTable": "Esubhr", + "units": "s-1" + }, + "reffclws": { + "CMOR_varname": "reffclws", + "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", + "mipTable": "Esubhr", + "units": "m" + }, + "reffclis": { + "CMOR_varname": "reffclis", + "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", + "mipTable": "Esubhr", + "units": "m" + }, + "reffclwc": { + "CMOR_varname": "reffclwc", + "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", + "mipTable": "Esubhr", + "units": "m" + }, + "reffclic": { + "CMOR_varname": "reffclic", + "standard_name": "effective_radius_of_convective_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", + "mipTable": "Esubhr", + "units": "m" + }, + "clwvic": { + "CMOR_varname": "clwvic", + "standard_name": "atmosphere_mass_content_of_convective_cloud_condensed_water", + "long_name": "Convective Condensed Water Path", + "mipTable": "Eday", + "units": "kg m-2" + }, + "clivic": { + "CMOR_varname": "clivic", + "standard_name": "atmosphere_mass_content_of_convective_cloud_ice", + "long_name": "Convective Ice Water Path", + "mipTable": "Eday", + "units": "kg m-2" + }, + "cfadDbze94": { + "CMOR_varname": "cfadDbze94", + "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", + "long_name": "CloudSat Radar Reflectivity", + "mipTable": "Emon", + "units": "1" + }, + "cfadLidarsr532": { + "CMOR_varname": "cfadLidarsr532", + "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", + "long_name": "CALIPSO Scattering Ratio", + "mipTable": "Emon", + "units": "1" + }, + "clmisr": { + "CMOR_varname": "clmisr", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", + "mipTable": "Emon", + "units": "%" + }, + "parasolRefl": { + "CMOR_varname": "parasolRefl", + "standard_name": "toa_bidirectional_reflectance", + "long_name": "PARASOL Reflectance", + "mipTable": "Emon", + "units": "1" + }, + "jpdftaureliqmodis": { + "CMOR_varname": "jpdftaureliqmodis", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "MODIS Optical Thickness-Particle Size joint distribution", + "mipTable": "liquid", + "units": "Emon" + }, + "jpdftaureicemodis": { + "CMOR_varname": "jpdftaureicemodis", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "MODIS Optical Thickness-Particle Size joint distribution", + "mipTable": "ice", + "units": "Emon" + }, + "clwmodis": { + "CMOR_varname": "clwmodis", + "standard_name": "liquid_water_cloud_area_fraction", + "long_name": "MODIS Liquid Cloud Fraction", + "mipTable": "Emon", + "units": "%" + }, + "climodis": { + "CMOR_varname": "climodis", + "standard_name": "ice_cloud_area_fraction", + "long_name": "MODIS Ice Cloud Area Percentage", + "mipTable": "Emon", + "units": "%" + }, + "cltmodis": { + "CMOR_varname": "cltmodis", + "standard_name": "cloud_area_fraction", + "long_name": "MODIS Total Cloud Cover Percentage", + "mipTable": "Emon", + "units": "%" + }, + "clcalipsoliq": { + "CMOR_varname": "clcalipsoliq", + "standard_name": "liquid_water_cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO liquid cloud Fraction", + "mipTable": "Emon", + "units": "%" + }, + "parasolRefl": { + "CMOR_varname": "parasolRefl", + "standard_name": "toa_bidirectional_reflectance", + "long_name": "PARASOL Reflectance", + "mipTable": "Eday", + "units": "1" + }, + "jpdftaureliqmodis": { + "CMOR_varname": "jpdftaureliqmodis", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "MODIS Optical Thickness-Particle Size joint distribution", + "mipTable": "liquid", + "units": "Eday" + }, + "jpdftaureicemodis": { + "CMOR_varname": "jpdftaureicemodis", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "MODIS Optical Thickness-Particle Size joint distribution", + "mipTable": "ice", + "units": "Eday" + }, + "clcalipso": { + "CMOR_varname": "clcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction", + "mipTable": "E3hrPt", + "units": "%" + }, + "cfadDbze94": { + "CMOR_varname": "cfadDbze94", + "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", + "long_name": "CloudSat Radar Reflectivity", + "mipTable": "E3hrPt", + "units": "1" + }, + "cfadLidarsr532": { + "CMOR_varname": "cfadLidarsr532", + "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", + "long_name": "CALIPSO Scattering Ratio", + "mipTable": "E3hrPt", + "units": "1" + }, + "parasolRefl": { + "CMOR_varname": "parasolRefl", + "standard_name": "toa_bidirectional_reflectance", + "long_name": "PARASOL Reflectance", + "mipTable": "E3hrPt", + "units": "1" + }, + "cltcalipso": { + "CMOR_varname": "cltcalipso", + "standard_name": "cloud_area_fraction", + "long_name": "CALIPSO Total Cloud Fraction", + "mipTable": "E3hrPt", + "units": "%" + }, + "cllcalipso": { + "CMOR_varname": "cllcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Percentage Low Level Cloud", + "mipTable": "E3hrPt", + "units": "%" + }, + "clmcalipso": { + "CMOR_varname": "clmcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Mid Level Cloud Fraction", + "mipTable": "E3hrPt", + "units": "%" + }, + "clhcalipso": { + "CMOR_varname": "clhcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO High Level Cloud Fraction", + "mipTable": "E3hrPt", + "units": "%" + }, + "loadoa": { + "CMOR_varname": "loadoa", + "standard_name": "atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles", + "long_name": "Load of Dry Aerosol Organic Matter", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadpoa": { + "CMOR_varname": "loadpoa", + "standard_name": "atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol_particles", + "long_name": "Load of Dry Aerosol Primary Organic Matter", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadsoa": { + "CMOR_varname": "loadsoa", + "standard_name": "atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles", + "long_name": "Load of Dry Aerosol Secondary Organic Matter", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadbc": { + "CMOR_varname": "loadbc", + "standard_name": "atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles", + "long_name": "Load of Black Carbon Aerosol", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadso4": { + "CMOR_varname": "loadso4", + "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol_particles", + "long_name": "Load of SO4", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loaddust": { + "CMOR_varname": "loaddust", + "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol_particles", + "long_name": "Load of Dust", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadss": { + "CMOR_varname": "loadss", + "standard_name": "atmosphere_mass_content_of_sea_salt_dry_aerosol_particles", + "long_name": "Load of Seasalt", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadno3": { + "CMOR_varname": "loadno3", + "standard_name": "atmosphere_mass_content_of_nitrate_dry_aerosol_particles", + "long_name": "Load of NO3", + "mipTable": "Eday", + "units": "kg m-2" + }, + "loadnh4": { + "CMOR_varname": "loadnh4", + "standard_name": "atmosphere_mass_content_of_ammonium_dry_aerosol_particles", + "long_name": "Load of NH4", + "mipTable": "Eday", + "units": "kg m-2" + }, + "reffsclwtop": { + "CMOR_varname": "reffsclwtop", + "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle_at_stratiform_liquid_water_cloud_top", + "long_name": "Cloud-Top Effective Droplet Radius In Stratiform Cloud", + "mipTable": "Eday", + "units": "m" + }, + "reffcclwtop": { + "CMOR_varname": "reffcclwtop", + "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle_at_convective_liquid_water_cloud_top", + "long_name": "Cloud-Top Effective Droplet Radius In Convective Cloud", + "mipTable": "Eday", + "units": "m" + }, + "scldncl": { + "CMOR_varname": "scldncl", + "standard_name": "number_concentration_of_stratiform_cloud_liquid_water_particle_at_stratiform_liquid_water_cloud_top", + "long_name": "Cloud Droplet Number Concentration of Stratiform Cloud Tops", + "mipTable": "Eday", + "units": "m-3" + }, + "ccldncl": { + "CMOR_varname": "ccldncl", + "standard_name": "number_concentration_of_convective_cloud_liquid_water_particle_at_convective_liquid_water_cloud_top", + "long_name": "Cloud Droplet Number Concentration of Convective Cloud Tops", + "mipTable": "Eday", + "units": "m-3" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "E1hrClimMon", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", + "mipTable": "E1hrClimMon", + "units": "W m-2" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "E1hrClimMon", + "units": "W m-2" + }, + "rsutcs": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "mipTable": "E1hrClimMon", + "units": "W m-2" + }, + "rlutcs": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-sky Longwave Radiation", + "mipTable": "E1hrClimMon", + "units": "W m-2" + }, + "jo3": { + "CMOR_varname": "jo3", + "standard_name": "photolysis_rate_of_ozone", + "long_name": "photoloysis rate of O3", + "mipTable": "EmonZ", + "units": "s-1" + }, + "jo2": { + "CMOR_varname": "jo2", + "standard_name": "photolysis_rate_of_molecular_oxygen", + "long_name": "photoloysis rate of O2", + "mipTable": "EmonZ", + "units": "s-1" + }, + "oxprod": { + "CMOR_varname": "oxprod", + "standard_name": "tendency_of_mole_concentration_of_ox_in_air_due_to_chemical_and_photolytic_production", + "long_name": "total Ox production rate", + "mipTable": "EmonZ", + "units": "mol m-3 s-1" + }, + "oxloss": { + "CMOR_varname": "oxloss", + "standard_name": "tendency_of_mole_concentration_of_ox_in_air_due_to_chemical_destruction", + "long_name": "total Ox loss rate", + "mipTable": "EmonZ", + "units": "mol m-3 s-1" + }, + "vmrox": { + "CMOR_varname": "vmrox", + "standard_name": "mole_fraction_of_ox_in_air", + "long_name": "mole fraction of o and o3 and o1d", + "mipTable": "EmonZ", + "units": "mol mol-1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "EdayZ", + "units": "K" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "EdayZ", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "EdayZ", + "units": "m s-1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "EdayZ", + "units": "1" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "Eday", + "units": "m" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "Eday", + "units": "K" + }, + "prw": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_mass_content_of_water_vapor", + "long_name": "Water Vapor Path", + "mipTable": "Eday", + "units": "kg m-2" + }, + "ta850": { + "CMOR_varname": "ta850", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "Eday", + "units": "K" + }, + "prhmax": { + "CMOR_varname": "prhmax", + "standard_name": "precipitation_flux", + "long_name": "Maximum Hourly Precipitation Rate", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "zg1000": { + "CMOR_varname": "zg1000", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height at 1000 hPa", + "mipTable": "6hrPlev", + "units": "m" + }, + "rv850": { + "CMOR_varname": "rv850", + "standard_name": "atmosphere_relative_vorticity", + "long_name": "Relative Vorticity at 850 hPa", + "mipTable": "6hrPlev", + "units": "s-1" + }, + "rls": { + "CMOR_varname": "rls", + "standard_name": "surface_net_downward_longwave_flux", + "long_name": "Net Longwave Surface Radiation", + "mipTable": "Emon", + "units": "W m-2" + }, + "t20d": { + "CMOR_varname": "t20d", + "standard_name": "depth_of_isosurface_of_sea_water_potential_temperature", + "long_name": "20C isotherm depth", + "mipTable": "Emon", + "units": "m" + }, + "thetaot300": { + "CMOR_varname": "thetaot300", + "standard_name": "sea_water_potential_temperature", + "long_name": "Depth average potential temperature of upper 300m", + "mipTable": "Emon", + "units": "degC" + }, + "thetaot700": { + "CMOR_varname": "thetaot700", + "standard_name": "sea_water_potential_temperature", + "long_name": "Depth average potential temperature of upper 700m", + "mipTable": "Emon", + "units": "degC" + }, + "thetaot2000": { + "CMOR_varname": "thetaot2000", + "standard_name": "sea_water_potential_temperature", + "long_name": "Depth average potential temperature of upper 2000m", + "mipTable": "Emon", + "units": "degC" + }, + "co2s": { + "CMOR_varname": "co2s", + "standard_name": "mole_fraction_of_carbon_dioxide_in_air", + "long_name": "Atmosphere CO2", + "mipTable": "Emon", + "units": "1e-06" + }, + "tdps": { + "CMOR_varname": "tdps", + "standard_name": "dew_point_temperature", + "long_name": "2m dewpoint temperature", + "mipTable": "Eday", + "units": "K" + }, + "t20d": { + "CMOR_varname": "t20d", + "standard_name": "depth_of_isosurface_of_sea_water_potential_temperature", + "long_name": "20C isotherm depth", + "mipTable": "Eday", + "units": "m" + }, + "tntogw": { + "CMOR_varname": "tntogw", + "standard_name": "tendency_of_air_temperature_due_to_dissipation_of_orographic_gravity_waves", + "long_name": "temperature tendency orographic gravity wave dissipation", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "tntnogw": { + "CMOR_varname": "tntnogw", + "standard_name": "tendency_of_air_temperature_due_to_dissipation_of_nonorographic_gravity_waves", + "long_name": "temperature tendency nonorographic gravity wave dissipation", + "mipTable": "EmonZ", + "units": "K s-1" + }, + "epfz": { + "CMOR_varname": "epfz", + "standard_name": "upward_eliassen_palm_flux_in_air", + "long_name": "Upward Component of the Eliassen-Palm Flux", + "mipTable": "EmonZ", + "units": "m3 s-2" + }, + "vtendogw": { + "CMOR_varname": "vtendogw", + "standard_name": "tendency_of_northward_wind_due_to_orographic_gravity_wave_drag", + "long_name": "v-tendency orographic gravity wave drag", + "mipTable": "Emon", + "units": "m s-2" + }, + "vtendnogw": { + "CMOR_varname": "vtendnogw", + "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "v-tendency nonorographic gravity wave drag", + "mipTable": "Emon", + "units": "m s-2" + }, + "vtem": { + "CMOR_varname": "vtem", + "standard_name": "northward_transformed_eulerian_mean_air_velocity", + "long_name": "Transformed Eulerian Mean northward wind", + "mipTable": "EdayZ", + "units": "m s-1" + }, + "wtem": { + "CMOR_varname": "wtem", + "standard_name": "upward_transformed_eulerian_mean_air_velocity", + "long_name": "Transformed Eulerian Mean upward wind", + "mipTable": "EdayZ", + "units": "m s-1" + }, + "epfy": { + "CMOR_varname": "epfy", + "standard_name": "northward_eliassen_palm_flux_in_air", + "long_name": "Northward Component of the Eliassen-Palm Flux", + "mipTable": "EdayZ", + "units": "m3 s-2" + }, + "epfz": { + "CMOR_varname": "epfz", + "standard_name": "upward_eliassen_palm_flux_in_air", + "long_name": "Upward Component of the Eliassen-Palm Flux", + "mipTable": "EdayZ", + "units": "m3 s-2" + }, + "utendepfd": { + "CMOR_varname": "utendepfd", + "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", + "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", + "mipTable": "EdayZ", + "units": "m s-2" + }, + "utendogw": { + "CMOR_varname": "utendogw", + "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", + "long_name": "u-tendency orographic gravity wave drag", + "mipTable": "EdayZ", + "units": "m s-2" + }, + "utendnogw": { + "CMOR_varname": "utendnogw", + "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", + "long_name": "u-tendency nonorographic gravity wave drag", + "mipTable": "EdayZ", + "units": "m s-2" + }, + "psitem": { + "CMOR_varname": "psitem", + "standard_name": "atmosphere_transformed_eulerian_mean_meridional_overturning_mass_streamfunction", + "long_name": "Transformed Eulerian Mean mass stramfunction", + "mipTable": "EdayZ", + "units": "kg s-1" + }, + "utendvtem": { + "CMOR_varname": "utendvtem", + "standard_name": "tendency_of_eastward_wind_due_to_advection_by_northward_transformed_eulerian_mean_air_velocity", + "long_name": "Tendency of eastward wind due to TEM northward advection and Coriolis term", + "mipTable": "EdayZ", + "units": "m s-1 d-1" + }, + "utendwtem": { + "CMOR_varname": "utendwtem", + "standard_name": "tendency_of_eastward_wind_due_to_advection_by_upward_transformed_eulerian_mean_air_velocity", + "long_name": "Tendency of eastward wind due to TEM upward advection", + "mipTable": "EdayZ", + "units": "m s-1 d-1" + }, + "tauupbl": { + "CMOR_varname": "tauupbl", + "standard_name": "surface_downward_eastward_stress_due_to_boundary_layer_mixing", + "long_name": "eastward surface stress from planetary boundary layer scheme", + "mipTable": "Eday", + "units": "Pa" + }, + "tauvpbl": { + "CMOR_varname": "tauvpbl", + "standard_name": "surface_downward_northward_stress_due_to_boundary_layer_mixing", + "long_name": "northward surface stress from planetary boundary layer scheme", + "mipTable": "Eday", + "units": "Pa" + }, + "tauu": { + "CMOR_varname": "tauu", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "mipTable": "Eday", + "units": "Pa" + }, + "tauv": { + "CMOR_varname": "tauv", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "mipTable": "Eday", + "units": "Pa" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "Eday", + "units": "1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "Eday", + "units": "K" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "Eday", + "units": "Pa s-1" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "EdayZ", + "units": "m" + }, + "somint": { + "CMOR_varname": "somint", + "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_salinity", + "long_name": "integral wrt depth of product of sea water density and salinity", + "mipTable": "Emon", + "units": "1e-3 kg m-2" + }, + "opottempmint": { + "CMOR_varname": "opottempmint", + "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_potential_temperature", + "long_name": "integral wrt depth of product of sea water density and potential temperature", + "mipTable": "Emon", + "units": "degC kg m-2" + }, + "ocontempmint": { + "CMOR_varname": "ocontempmint", + "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_conservative_temperature", + "long_name": "integral wrt depth of product of sea water density and conservative temperature", + "mipTable": "Emon", + "units": "degC kg m-2" + }, + "pathetao": { + "CMOR_varname": "pathetao", + "standard_name": "sea_water_added_potential_temperature", + "long_name": "Sea Water Additional Potential Temperature", + "mipTable": "Emon", + "units": "degC" + }, + "prthetao": { + "CMOR_varname": "prthetao", + "standard_name": "sea_water_redistributed_potential_temperature", + "long_name": "Sea Water Resdistributed Potential Temperature", + "mipTable": "Emon", + "units": "degC" + }, + "pabigthetao": { + "CMOR_varname": "pabigthetao", + "standard_name": "sea_water_added_conservative_temperature", + "long_name": "Sea Water Added Conservative Temperature", + "mipTable": "Emon", + "units": "degC" + }, + "prbigthetao": { + "CMOR_varname": "prbigthetao", + "standard_name": "sea_water_redistributed_conservative_temperature", + "long_name": "Sea Water Redistributed Conservative Temperature", + "mipTable": "Emon", + "units": "degC" + }, + "opottemptend": { + "CMOR_varname": "opottemptend", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content", + "long_name": "tendency of sea water potential temperature expressed as heat content", + "mipTable": "Emon", + "units": "W m-2" + }, + "opottemprmadvect": { + "CMOR_varname": "opottemprmadvect", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_residual_mean_advection", + "long_name": "tendency of sea water potential temperature expressed as heat content due to residual mean advection", + "mipTable": "Emon", + "units": "W m-2" + }, + "opottemppadvect": { + "CMOR_varname": "opottemppadvect", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized eddy advection", + "mipTable": "Emon", + "units": "W m-2" + }, + "opottemppmdiff": { + "CMOR_varname": "opottemppmdiff", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized mesoscale diffusion", + "mipTable": "Emon", + "units": "W m-2" + }, + "opottemppsmadvect": { + "CMOR_varname": "opottemppsmadvect", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized submesoscale advection", + "mipTable": "Emon", + "units": "W m-2" + }, + "opottempdiff": { + "CMOR_varname": "opottempdiff", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized dianeutral mixing", + "mipTable": "Emon", + "units": "W m-2" + }, + "ocontemptend": { + "CMOR_varname": "ocontemptend", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content", + "long_name": "tendency of sea water conservative temperature expressed as heat content", + "mipTable": "Emon", + "units": "W m-2" + }, + "ocontemprmadvect": { + "CMOR_varname": "ocontemprmadvect", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_residual_mean_advection", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to residual mean (sum of Eulerian + parameterized) advection", + "mipTable": "Emon", + "units": "W m-2" + }, + "ocontemppadvect": { + "CMOR_varname": "ocontemppadvect", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized eddy advection", + "mipTable": "Emon", + "units": "W m-2" + }, + "ocontemppmdiff": { + "CMOR_varname": "ocontemppmdiff", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized mesoscale diffusion", + "mipTable": "Emon", + "units": "W m-2" + }, + "ocontemppsmadvect": { + "CMOR_varname": "ocontemppsmadvect", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized submesoscale advection", + "mipTable": "Emon", + "units": "W m-2" + }, + "ocontempdiff": { + "CMOR_varname": "ocontempdiff", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized dianeutral mixing", + "mipTable": "Emon", + "units": "W m-2" + }, + "osalttend": { + "CMOR_varname": "osalttend", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content", + "long_name": "tendency of sea water salinity expressed as salt content", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "osaltrmadvect": { + "CMOR_varname": "osaltrmadvect", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_residual_mean_advection", + "long_name": "tendency of sea water salinity expressed as salt content due to residual mean advection", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "osaltpadvect": { + "CMOR_varname": "osaltpadvect", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized eddy advection", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "osaltpmdiff": { + "CMOR_varname": "osaltpmdiff", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized mesoscale diffusion", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "osaltpsmadvect": { + "CMOR_varname": "osaltpsmadvect", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized submesoscale advection", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "osaltdiff": { + "CMOR_varname": "osaltdiff", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_dianeutral_mixing", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized dianeutral mixing", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rsdoabsorb": { + "CMOR_varname": "rsdoabsorb", + "standard_name": "net_rate_of_absorption_of_shortwave_energy_in_ocean_layer", + "long_name": "net rate of absorption of shortwave energy in ocean layer", + "mipTable": "Emon", + "units": "W m-2" + }, + "uqint": { + "CMOR_varname": "uqint", + "standard_name": "integral_wrt_height_of_product_of_eastward_wind_and_specific_humidity", + "long_name": "integrated_eastward_wind_times_humidity", + "mipTable": "Emon", + "units": "m2 s-1" + }, + "vqint": { + "CMOR_varname": "vqint", + "standard_name": "integral_wrt_height_of_product_of_northward_wind_and_specific_humidity", + "long_name": "integrated_northward_wind_times_humidity", + "mipTable": "Emon", + "units": "m2 s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "Eday", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "Eday", + "units": "m s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "wap4": { + "CMOR_varname": "wap4", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "6hrPlev", + "units": "Pa s-1" + }, + "hus4": { + "CMOR_varname": "hus4", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "6hrPlev", + "units": "1" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "CF3hr", + "units": "Pa" + }, + "prcsh": { + "CMOR_varname": "prcsh", + "standard_name": "shallow_convective_precipitation_flux", + "long_name": "Precipitation Flux from Shallow Convection", + "mipTable": "E3hr", + "units": "kg m-2 s-1" + }, + "wap7h": { + "CMOR_varname": "wap7h", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "E3hrPt", + "units": "Pa s-1" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "E1hr", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "E1hr", + "units": "kg m-2 s-1" + }, + "columnmassflux": { + "CMOR_varname": "columnmassflux", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Column Integrated Mass Flux", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "u2": { + "CMOR_varname": "u2", + "standard_name": "square_of_eastward_wind", + "long_name": "square_of_eastward_wind", + "mipTable": "Emon", + "units": "m2 s-2" + }, + "v2": { + "CMOR_varname": "v2", + "standard_name": "square_of_northward_wind", + "long_name": "square_of_northwardwind", + "mipTable": "Emon", + "units": "m2 s-2" + }, + "wap2": { + "CMOR_varname": "wap2", + "standard_name": "square_of_lagrangian_tendency_of_air_pressure", + "long_name": "square_of_omega", + "mipTable": "Emon", + "units": "Pa2 s-2" + }, + "t2": { + "CMOR_varname": "t2", + "standard_name": "square_of_air_temperature", + "long_name": "square_of_air_temperature", + "mipTable": "Emon", + "units": "K2" + }, + "uv": { + "CMOR_varname": "uv", + "standard_name": "product_of_eastward_wind_and_northward_wind", + "long_name": "eastward_wind_times_northward_wind", + "mipTable": "Emon", + "units": "m2 s-2" + }, + "uwap": { + "CMOR_varname": "uwap", + "standard_name": "product_of_eastward_wind_and_omega", + "long_name": "eastward_wind_times_omega", + "mipTable": "Emon", + "units": "Pa m s-2" + }, + "vwap": { + "CMOR_varname": "vwap", + "standard_name": "product_of_northward_wind_and_omega", + "long_name": "northward_wind_times_omega", + "mipTable": "Emon", + "units": "Pa m s-2" + }, + "ut": { + "CMOR_varname": "ut", + "standard_name": "product_of_eastward_wind_and_air_temperature", + "long_name": "air_temperature_times_eastward_wind", + "mipTable": "Emon", + "units": "K m s-1" + }, + "vt": { + "CMOR_varname": "vt", + "standard_name": "product_of_northward_wind_and_air_temperature", + "long_name": "air_temperature_times_northward_wind", + "mipTable": "Emon", + "units": "K m s-1" + }, + "twap": { + "CMOR_varname": "twap", + "standard_name": "product_of_omega_and_air_temperature", + "long_name": "air_temperature_times_omega", + "mipTable": "Emon", + "units": "K Pa s-1" + }, + "xgwdparam": { + "CMOR_varname": "xgwdparam", + "standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag", + "long_name": "x_gravity_wave_drag_param", + "mipTable": "Emon", + "units": "Pa" + }, + "ygwdparam": { + "CMOR_varname": "ygwdparam", + "standard_name": "atmosphere_northward_stress_due_to_gravity_wave_drag", + "long_name": "y_gravity_wave_drag_param", + "mipTable": "Emon", + "units": "Pa" + }, + "xgwdparam": { + "CMOR_varname": "xgwdparam", + "standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag", + "long_name": "x_gravity_wave_drag_param", + "mipTable": "EmonZ", + "units": "Pa" + }, + "ygwdparam": { + "CMOR_varname": "ygwdparam", + "standard_name": "atmosphere_northward_stress_due_to_gravity_wave_drag", + "long_name": "y_gravity_wave_drag_param", + "mipTable": "EmonZ", + "units": "Pa" + }, + "tntmp27": { + "CMOR_varname": "tntmp27", + "standard_name": "tendency_of_air_temperature_due_to_model_physics", + "long_name": "Tendency of Air Temperature due to Model Physics", + "mipTable": "Emon", + "units": "K s-1" + }, + "tntrl27": { + "CMOR_varname": "tntrl27", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", + "long_name": "Longwave heating rate", + "mipTable": "Emon", + "units": "K s-1" + }, + "tntrs27": { + "CMOR_varname": "tntrs27", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", + "long_name": "Shortwave heating rate", + "mipTable": "Emon", + "units": "K s-1" + }, + "ta27": { + "CMOR_varname": "ta27", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "Emon", + "units": "K" + }, + "ua27": { + "CMOR_varname": "ua27", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "Emon", + "units": "m s-1" + }, + "va27": { + "CMOR_varname": "va27", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "Emon", + "units": "m s-1" + }, + "zg27": { + "CMOR_varname": "zg27", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "Emon", + "units": "m" + }, + "hus27": { + "CMOR_varname": "hus27", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "Emon", + "units": "1" + }, + "cldicemxrat27": { + "CMOR_varname": "cldicemxrat27", + "standard_name": "cloud_ice_mixing_ratio", + "long_name": "Cloud Ice Mixing Ratio", + "mipTable": "Emon", + "units": "1" + }, + "cldwatmxrat27": { + "CMOR_varname": "cldwatmxrat27", + "standard_name": "cloud_liquid_water_mixing_ratio", + "long_name": "Cloud Water Mixing Ratio", + "mipTable": "Emon", + "units": "1" + }, + "rainmxrat27": { + "CMOR_varname": "rainmxrat27", + "standard_name": "mass_fraction_of_rain_in_air", + "long_name": "rain_mixing_ratio", + "mipTable": "Emon", + "units": "1" + }, + "snowmxrat27": { + "CMOR_varname": "snowmxrat27", + "standard_name": "mass_fraction_of_snow_in_air", + "long_name": "snow_mixing_ratio", + "mipTable": "Emon", + "units": "1" + }, + "grplmxrat27": { + "CMOR_varname": "grplmxrat27", + "standard_name": "mass_fraction_of_graupel_in_air", + "long_name": "Graupel Mixing Ratio", + "mipTable": "Emon", + "units": "1" + }, + "zg27": { + "CMOR_varname": "zg27", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "6hrPlevPt", + "units": "m" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "snw": { + "CMOR_varname": "snw", + "standard_name": "surface_snow_amount", + "long_name": "Surface Snow Amount", + "mipTable": "6hrPlevPt", + "units": "kg m-2" + }, + "dtaus": { + "CMOR_varname": "dtaus", + "standard_name": "atmosphere_optical_thickness_due_to_stratiform_cloud", + "long_name": "Stratiform Cloud Optical Depth", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "dtauc": { + "CMOR_varname": "dtauc", + "standard_name": "atmosphere_optical_thickness_due_to_convective_cloud", + "long_name": "Convective Cloud Optical Depth", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "E3hr", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", + "mipTable": "E3hr", + "units": "W m-2" + }, + "rlutcs": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-sky Longwave Radiation", + "mipTable": "E3hr", + "units": "W m-2" + }, + "rsutcs": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "mipTable": "E3hr", + "units": "W m-2" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "E3hr", + "units": "W m-2" + }, + "prw": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_mass_content_of_water_vapor", + "long_name": "Water Vapor Path", + "mipTable": "E3hr", + "units": "kg m-2" + }, + "clwvi": { + "CMOR_varname": "clwvi", + "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", + "long_name": "Condensed Water Path", + "mipTable": "E3hr", + "units": "kg m-2" + }, + "clivi": { + "CMOR_varname": "clivi", + "standard_name": "atmosphere_mass_content_of_cloud_ice", + "long_name": "Ice Water Path", + "mipTable": "E3hr", + "units": "kg m-2" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "E3hr", + "units": "Pa" + }, + "clisccp": { + "CMOR_varname": "clisccp", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "ISCCP Percentage Cloud Area", + "mipTable": "E3hrPt", + "units": "%" + }, + "ua27": { + "CMOR_varname": "ua27", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "E1hr", + "units": "m s-1" + }, + "va27": { + "CMOR_varname": "va27", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "E1hr", + "units": "m s-1" + }, + "wap27": { + "CMOR_varname": "wap27", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "E1hr", + "units": "Pa s-1" + }, + "ta27": { + "CMOR_varname": "ta27", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "E1hr", + "units": "K" + }, + "zg27": { + "CMOR_varname": "zg27", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "E1hr", + "units": "m" + }, + "tntr27": { + "CMOR_varname": "tntr27", + "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", + "long_name": "Tendency of Air Temperature due to Radiative Heating", + "mipTable": "E1hr", + "units": "K s-1" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "E1hr", + "units": "W m-2" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "E1hr", + "units": "Pa" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "E1hr", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "E1hr", + "units": "m s-1" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "E1hr", + "units": "Pa s-1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "E1hr", + "units": "K" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "Esubhr", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "Esubhr", + "units": "kg m-2 s-1" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Surface Air Temperature", + "mipTable": "Esubhr", + "units": "K" + }, + "huss": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "mipTable": "Esubhr", + "units": "1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "Esubhr", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "Esubhr", + "units": "m s-1" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "Esubhr", + "units": "W m-2" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "Esubhr", + "units": "W m-2" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "Esubhr", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", + "mipTable": "Esubhr", + "units": "W m-2" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "Esubhr", + "units": "W m-2" + }, + "prw": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_mass_content_of_water_vapor", + "long_name": "Water Vapor Path", + "mipTable": "Esubhr", + "units": "kg m-2" + }, + "bldep": { + "CMOR_varname": "bldep", + "standard_name": "atmosphere_boundary_layer_thickness", + "long_name": "Boundary Layer Depth", + "mipTable": "Esubhr", + "units": "m" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "Esubhr", + "units": "Pa s-1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "Esubhr", + "units": "K" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "Esubhr", + "units": "1" + }, + "mc": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "mipTable": "Esubhr", + "units": "kg m-2 s-1" + }, + "tnt": { + "CMOR_varname": "tnt", + "standard_name": "tendency_of_air_temperature", + "long_name": "Tendency of Air Temperature", + "mipTable": "Esubhr", + "units": "K s-1" + }, + "tnhus": { + "CMOR_varname": "tnhus", + "standard_name": "tendency_of_specific_humidity", + "long_name": "Tendency of Specific Humidity", + "mipTable": "Esubhr", + "units": "s-1" + }, + "tsn": { + "CMOR_varname": "tsn", + "standard_name": "temperature_in_surface_snow", + "long_name": "Snow Internal Temperature", + "mipTable": "LImon", + "units": "K" + }, + "sftgif": { + "CMOR_varname": "sftgif", + "standard_name": "land_ice_area_fraction", + "long_name": "Fraction of Grid Cell Covered with Glacier", + "mipTable": "LImon", + "units": "%" + }, + "sftgrf": { + "CMOR_varname": "sftgrf", + "standard_name": "grounded_ice_sheet_area_fraction", + "long_name": "Grounded Ice Sheet Area Fraction", + "mipTable": "LImon", + "units": "%" + }, + "sftflf": { + "CMOR_varname": "sftflf", + "standard_name": "floating_ice_shelf_area_fraction", + "long_name": "Floating Ice Shelf Area Fraction", + "mipTable": "LImon", + "units": "%" + }, + "rss": { + "CMOR_varname": "rss", + "standard_name": "surface_net_downward_shortwave_flux", + "long_name": "Net Shortwave Surface Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "rsutcsaf": { + "CMOR_varname": "rsutcsaf", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky_and_no_aerosol", + "long_name": "TOA Outgoing Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation", + "units": "AERmon" + }, + "rsutaf": { + "CMOR_varname": "rsutaf", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Aerosol-Free Shortwave Radiation", + "mipTable": "AERmon", + "units": "W m-2" + }, + "rlutaf": { + "CMOR_varname": "rlutaf", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Aerosol-Free Longwave Radiation", + "mipTable": "AERmon", + "units": "W m-2" + }, + "rlutcsaf": { + "CMOR_varname": "rlutcsaf", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky", + "mipTable": "Aerosol-Free Longwave Radiation", + "units": "AERmon" + }, + "ec550aer": { + "CMOR_varname": "ec550aer", + "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", + "long_name": "Aerosol extinction coefficient", + "mipTable": "6hrLev", + "units": "m-1" + }, + "bs550aer": { + "CMOR_varname": "bs550aer", + "standard_name": "volume_scattering_function_of_radiative_flux_in_air_due_to_ambient_aerosol_particles", + "long_name": "Aerosol backscatter coefficient", + "mipTable": "6hrLev", + "units": "m-1 sr-1" + }, + "zfullo": { + "CMOR_varname": "zfullo", + "standard_name": "depth_below_geoid", + "long_name": "Depth Below Geoid of Ocean Layer", + "mipTable": "Eyr", + "units": "m" + }, + "vegHeight": { + "CMOR_varname": "vegHeight", + "standard_name": "canopy_height", + "long_name": "canopy height", + "mipTable": "Efx", + "units": "m" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Surface Air Temperature", + "mipTable": "6hrPlev", + "units": "K" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Near-Surface Wind Speed", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "6hrPlev", + "units": "Pa" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "6hrPlev", + "units": "kg m-2 s-1" + }, + "prhmax": { + "CMOR_varname": "prhmax", + "standard_name": "precipitation_flux", + "long_name": "Maximum Hourly Precipitation Rate", + "mipTable": "6hrPlev", + "units": "kg m-2 s-1" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "vortmean": { + "CMOR_varname": "vortmean", + "standard_name": "atmosphere_relative_vorticity", + "long_name": "atmosphere_relative_vorticity", + "mipTable": "6hrPlevPt", + "units": "s-1" + }, + "huss": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Surface Air Temperature", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Near-Surface Wind Speed", + "mipTable": "6hrPlevPt", + "units": "m s-1" + }, + "mrsos": { + "CMOR_varname": "mrsos", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column", + "mipTable": "6hrPlevPt", + "units": "kg m-2" + }, + "tsl": { + "CMOR_varname": "tsl", + "standard_name": "soil_temperature", + "long_name": "Temperature of Near-Surface Soil Layer", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "mrsol": { + "CMOR_varname": "mrsol", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Water Content of Soil Layer", + "mipTable": "6hrPlevPt", + "units": "kg m-2" + }, + "fracLut": { + "CMOR_varname": "fracLut", + "standard_name": "area_fraction", + "long_name": "Percentage of grid cell for each land use tile", + "mipTable": "Emon", + "units": "%" + }, + "sltnortha": { + "CMOR_varname": "sltnortha", + "standard_name": "northward_ocean_salt_transport", + "long_name": "Atlantic Northward Ocean Salt Transport", + "mipTable": "EmonZ", + "units": "kg s-1" + }, + "rsutcsaf": { + "CMOR_varname": "rsutcsaf", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky_and_no_aerosol", + "long_name": "TOA Outgoing Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation", + "units": "E3hrPt" + }, + "rsdscsaf": { + "CMOR_varname": "rsdscsaf", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Surface Downwelling Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation", + "units": "E3hrPt" + }, + "rsuscsaf": { + "CMOR_varname": "rsuscsaf", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Surface Upwelling Clean Clear-Sky Shortwave Radiation", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsutcsafbnd": { + "CMOR_varname": "rsutcsafbnd", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky_and_no_aerosol", + "long_name": "TOA Outgoing Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation in Bands", + "units": "E3hrPt" + }, + "rsdscsafbnd": { + "CMOR_varname": "rsdscsafbnd", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Surface Downwelling Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation in Bands", + "units": "E3hrPt" + }, + "rsuscsafbnd": { + "CMOR_varname": "rsuscsafbnd", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Surface Upwelling Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation in Bands", + "units": "E3hrPt" + }, + "rsucsaf": { + "CMOR_varname": "rsucsaf", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Upwelling Clean-Clear-Sky Shortwave Radiation at each level", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsdcsaf": { + "CMOR_varname": "rsdcsaf", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Downwelling Clean-Clear-Sky Shortwave Radiation at each level", + "mipTable": "E3hrPt", + "units": "W m-2" + }, + "rsucsafbnd": { + "CMOR_varname": "rsucsafbnd", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Upwelling Clear-Sky", + "mipTable": "Aerosol-Free Shortwave Radiation in Bands", + "units": "E3hrPt" + }, + "rsdcsafbnd": { + "CMOR_varname": "rsdcsafbnd", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky_and_no_aerosol", + "long_name": "Downwelling Clear-Sky", + "mipTable": "Aerosol-Free", + "units": "Shortwave Radiation in Bands" + }, + "rsuscs": { + "CMOR_varname": "rsuscs", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "ua100m": { + "CMOR_varname": "ua100m", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind at 100m", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "va100m": { + "CMOR_varname": "va100m", + "standard_name": "northward_wind", + "long_name": "Northward Wind at 100m", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "wsgmax100m": { + "CMOR_varname": "wsgmax100m", + "standard_name": "wind_speed_of_gust", + "long_name": "Maximum Wind Speed of Gust at 100m", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "hurs": { + "CMOR_varname": "hurs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "mipTable": "6hrPlev", + "units": "%" + }, + "bldep": { + "CMOR_varname": "bldep", + "standard_name": "atmosphere_boundary_layer_thickness", + "long_name": "Boundary Layer Depth", + "mipTable": "6hrPlev", + "units": "m" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "Esubhr", + "units": "Pa" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "E6hrZ", + "units": "Pa" + }, + "diftrblo2d": { + "CMOR_varname": "diftrblo2d", + "standard_name": "ocean_tracer_laplacian_diffusivity_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "diftrbbo2d": { + "CMOR_varname": "diftrbbo2d", + "standard_name": "ocean_tracer_biharmonic_diffusivity_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "Ocean Tracer Bolus Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "diftrelo2d": { + "CMOR_varname": "diftrelo2d", + "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", + "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "diftrebo2d": { + "CMOR_varname": "diftrebo2d", + "standard_name": "ocean_tracer_epineutral_biharmonic_diffusivity", + "long_name": "Ocean Tracer Epineutral Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "diftrxylo2d": { + "CMOR_varname": "diftrxylo2d", + "standard_name": "ocean_tracer_xy_laplacian_diffusivity", + "long_name": "Ocean Tracer XY Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "diftrxybo2d": { + "CMOR_varname": "diftrxybo2d", + "standard_name": "ocean_tracer_xy_biharmonic_diffusivity", + "long_name": "Ocean Tracer XY Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "tnkebto2d": { + "CMOR_varname": "tnkebto2d", + "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_parameterized_eddy_advection", + "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", + "mipTable": "Oclim", + "units": "W m-2" + }, + "difmxylo2d": { + "CMOR_varname": "difmxylo2d", + "standard_name": "ocean_momentum_xy_laplacian_diffusivity", + "long_name": "Ocean Momentum XY Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difmxybo2d": { + "CMOR_varname": "difmxybo2d", + "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", + "long_name": "Ocean Momentum XY Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "dispkexyfo2d": { + "CMOR_varname": "dispkexyfo2d", + "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", + "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", + "mipTable": "Oclim", + "units": "W m-2" + }, + "co2Clim": { + "CMOR_varname": "co2Clim", + "standard_name": "mole_fraction_of_carbon_dioxide_in_air", + "long_name": "Mole Fraction of CO2", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "co2massClim": { + "CMOR_varname": "co2massClim", + "standard_name": "atmosphere_mass_of_carbon_dioxide", + "long_name": "Total Atmospheric Mass of CO2", + "mipTable": "Amon", + "units": "kg" + }, + "ch4Clim": { + "CMOR_varname": "ch4Clim", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "Mole Fraction of CH4", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "ch4globalClim": { + "CMOR_varname": "ch4globalClim", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "Global Mean Mole Fraction of CH4", + "mipTable": "Amon", + "units": "1e-09" + }, + "n2oClim": { + "CMOR_varname": "n2oClim", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "Mole Fraction of N2O", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "n2oglobalClim": { + "CMOR_varname": "n2oglobalClim", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "Global Mean Mole Fraction of N2O", + "mipTable": "Amon", + "units": "1e-09" + }, + "evu": { + "CMOR_varname": "evu", + "standard_name": "atmosphere_momentum_diffusivity", + "long_name": "Eddy Viscosity Coefficients for Momentum", + "mipTable": "CFmon", + "units": "m2 s-1" + }, + "edt": { + "CMOR_varname": "edt", + "standard_name": "atmosphere_heat_diffusivity", + "long_name": "Eddy Diffusivity Coefficients for Temperature", + "mipTable": "CFmon", + "units": "m2 s-1" + }, + "cl": { + "CMOR_varname": "cl", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Cloud Area Fraction", + "mipTable": "CFsubhr", + "units": "%" + }, + "clw": { + "CMOR_varname": "clw", + "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Cloud Liquid Water", + "mipTable": "CFsubhr", + "units": "kg kg-1" + }, + "cli": { + "CMOR_varname": "cli", + "standard_name": "mass_fraction_of_cloud_ice_in_air", + "long_name": "Mass Fraction of Cloud Ice", + "mipTable": "CFsubhr", + "units": "kg kg-1" + }, + "mc": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "mipTable": "CFsubhr", + "units": "kg m-2 s-1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "CFsubhr", + "units": "K" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "CFsubhr", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "CFsubhr", + "units": "m s-1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "CFsubhr", + "units": "1" + }, + "hur": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "mipTable": "CFsubhr", + "units": "%" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "CFsubhr", + "units": "Pa s-1" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "CFsubhr", + "units": "m" + }, + "rlu": { + "CMOR_varname": "rlu", + "standard_name": "upwelling_longwave_flux_in_air", + "long_name": "Upwelling Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsu": { + "CMOR_varname": "rsu", + "standard_name": "upwelling_shortwave_flux_in_air", + "long_name": "Upwelling Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rld": { + "CMOR_varname": "rld", + "standard_name": "downwelling_longwave_flux_in_air", + "long_name": "Downwelling Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsd": { + "CMOR_varname": "rsd", + "standard_name": "downwelling_shortwave_flux_in_air", + "long_name": "Downwelling Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rlucs": { + "CMOR_varname": "rlucs", + "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsucs": { + "CMOR_varname": "rsucs", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rldcs": { + "CMOR_varname": "rldcs", + "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Longwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "rsdcs": { + "CMOR_varname": "rsdcs", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFsubhr", + "units": "W m-2" + }, + "tnt": { + "CMOR_varname": "tnt", + "standard_name": "tendency_of_air_temperature", + "long_name": "Tendency of Air Temperature", + "mipTable": "CFsubhr", + "units": "K s-1" + }, + "tnta": { + "CMOR_varname": "tnta", + "standard_name": "tendency_of_air_temperature_due_to_advection", + "long_name": "Tendency of Air Temperature due to Advection", + "mipTable": "CFsubhr", + "units": "K s-1" + }, + "tntmp": { + "CMOR_varname": "tntmp", + "standard_name": "tendency_of_air_temperature_due_to_model_physics", + "long_name": "Tendency of Air Temperature due to Model Physics", + "mipTable": "CFsubhr", + "units": "K s-1" + }, + "tntscpbl": { + "CMOR_varname": "tntscpbl", + "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", + "long_name": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", + "mipTable": "CFsubhr", + "units": "K s-1" + }, + "tntr": { + "CMOR_varname": "tntr", + "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", + "long_name": "Tendency of Air Temperature due to Radiative Heating", + "mipTable": "CFsubhr", + "units": "K s-1" + }, + "tntc": { + "CMOR_varname": "tntc", + "standard_name": "tendency_of_air_temperature_due_to_convection", + "long_name": "Tendency of Air Temperature due to Convection", + "mipTable": "CFsubhr", + "units": "K s-1" + }, + "tnhus": { + "CMOR_varname": "tnhus", + "standard_name": "tendency_of_specific_humidity", + "long_name": "Tendency of Specific Humidity", + "mipTable": "CFsubhr", + "units": "s-1" + }, + "tnhusa": { + "CMOR_varname": "tnhusa", + "standard_name": "tendency_of_specific_humidity_due_to_advection", + "long_name": "Tendency of Specific Humidity due to Advection", + "mipTable": "CFsubhr", + "units": "s-1" + }, + "tnhusc": { + "CMOR_varname": "tnhusc", + "standard_name": "tendency_of_specific_humidity_due_to_convection", + "long_name": "Tendency of Specific Humidity due to Convection", + "mipTable": "CFsubhr", + "units": "s-1" + }, + "tnhusd": { + "CMOR_varname": "tnhusd", + "standard_name": "tendency_of_specific_humidity_due_to_diffusion", + "long_name": "Tendency of Specific Humidity due to Numerical Diffusion", + "mipTable": "CFsubhr", + "units": "s-1" + }, + "tnhusscpbl": { + "CMOR_varname": "tnhusscpbl", + "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", + "long_name": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", + "mipTable": "CFsubhr", + "units": "s-1" + }, + "tnhusmp": { + "CMOR_varname": "tnhusmp", + "standard_name": "tendency_of_specific_humidity_due_to_model_physics", + "long_name": "Tendency of Specific Humidity due to Model Physics", + "mipTable": "CFsubhr", + "units": "s-1" + }, + "evu": { + "CMOR_varname": "evu", + "standard_name": "atmosphere_momentum_diffusivity", + "long_name": "Eddy Viscosity Coefficient for Momentum Variables", + "mipTable": "CFsubhr", + "units": "m2 s-1" + }, + "edt": { + "CMOR_varname": "edt", + "standard_name": "atmosphere_heat_diffusivity", + "long_name": "Eddy Diffusivity Coefficient for Temperature Variable", + "mipTable": "CFsubhr", + "units": "m2 s-1" + }, + "pfull": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Levels", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "phalf": { + "CMOR_varname": "phalf", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Half-Levels", + "mipTable": "CFsubhr", + "units": "Pa" + }, + "longitude": { + "CMOR_varname": "longitude", + "standard_name": "longitude", + "long_name": "Longitude", + "mipTable": "CFsubhr", + "units": "degrees_east" + }, + "latitude": { + "CMOR_varname": "latitude", + "standard_name": "latitude", + "long_name": "Latitude", + "mipTable": "CFsubhr", + "units": "degrees_north" + }, + "o2sat": { + "CMOR_varname": "o2sat", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", + "long_name": "Dissolved Oxygen Concentration at Saturation", + "mipTable": "Omon", + "units": "mol m-3" + }, + "msftyrho": { + "CMOR_varname": "msftyrho", + "standard_name": "ocean_y_overturning_mass_streamfunction", + "long_name": "Ocean Y Overturning Mass Streamfunction", + "mipTable": "Odec", + "units": "kg s-1" + }, + "hfds": { + "CMOR_varname": "hfds", + "standard_name": "surface_downward_heat_flux_in_sea_water", + "long_name": "Downward Heat Flux at Sea Water Surface", + "mipTable": "Odec", + "units": "W m-2" + }, + "tauuo": { + "CMOR_varname": "tauuo", + "standard_name": "surface_downward_x_stress", + "long_name": "Surface Downward X Stress", + "mipTable": "Odec", + "units": "N m-2" + }, + "tauvo": { + "CMOR_varname": "tauvo", + "standard_name": "surface_downward_y_stress", + "long_name": "Surface Downward Y Stress", + "mipTable": "Odec", + "units": "N m-2" + }, + "hflso": { + "CMOR_varname": "hflso", + "standard_name": "surface_downward_latent_heat_flux", + "long_name": "Surface Downward Latent Heat Flux", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfsso": { + "CMOR_varname": "hfsso", + "standard_name": "surface_downward_sensible_heat_flux", + "long_name": "Surface Downward Sensible Heat Flux", + "mipTable": "Omon", + "units": "W m-2" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "Efx", + "units": "Pa" + }, + "clcalipsoice": { + "CMOR_varname": "clcalipsoice", + "standard_name": "ice_cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO ice cloud Fraction", + "mipTable": "Emon", + "units": "%" + }, + "clcalipso2": { + "CMOR_varname": "clcalipso2", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", + "mipTable": "E3hrPt", + "units": "%" + }, + "snd": { + "CMOR_varname": "snd", + "standard_name": "surface_snow_thickness", + "long_name": "Snow Depth", + "mipTable": "Eday", + "units": "m" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "Emon", + "units": "Pa s-1" + }, + "sftgrf": { + "CMOR_varname": "sftgrf", + "standard_name": "grounded_ice_sheet_area_fraction", + "long_name": "Grounded Ice Sheet Area Fraction", + "mipTable": "Efx", + "units": "%" + }, + "sftflf": { + "CMOR_varname": "sftflf", + "standard_name": "floating_ice_shelf_area_fraction", + "long_name": "Floating Ice Shelf Area Fraction", + "mipTable": "Efx", + "units": "%" + }, + "siu": { + "CMOR_varname": "siu", + "standard_name": "sea_ice_x_velocity", + "long_name": "X-component of sea ice velocity", + "mipTable": "SIday", + "units": "m s-1" + }, + "siv": { + "CMOR_varname": "siv", + "standard_name": "sea_ice_y_velocity", + "long_name": "Y-component of sea ice velocity", + "mipTable": "SIday", + "units": "m s-1" + }, + "sf6": { + "CMOR_varname": "sf6", + "standard_name": "mole_concentration_of_sulfur_hexafluoride_in_sea_water", + "long_name": "Mole Concentration of SF6 in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "cfc11": { + "CMOR_varname": "cfc11", + "standard_name": "mole_concentration_of_cfc11_in_sea_water", + "long_name": "Mole Concentration of CFC-11 in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "cfc12": { + "CMOR_varname": "cfc12", + "standard_name": "mole_concentration_of_cfc12_in_sea_water", + "long_name": "Mole Concentration of CFC-12 in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "cfc11": { + "CMOR_varname": "cfc11", + "standard_name": "mole_concentration_of_cfc11_in_sea_water", + "long_name": "Mole Concentration of CFC-11 in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "cfc12": { + "CMOR_varname": "cfc12", + "standard_name": "mole_concentration_of_cfc12_in_sea_water", + "long_name": "Mole Concentration of CFC-12 in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "sf6": { + "CMOR_varname": "sf6", + "standard_name": "mole_concentration_of_sulfur_hexafluoride_in_sea_water", + "long_name": "Mole Concentration of SF6 in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "fgcfc11": { + "CMOR_varname": "fgcfc11", + "standard_name": "surface_downward_mole_flux_of_cfc11", + "long_name": "Surface Downward CFC11 flux", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fgcfc12": { + "CMOR_varname": "fgcfc12", + "standard_name": "surface_downward_mole_flux_of_cfc12", + "long_name": "Surface Downward CFC12 flux", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fgsf6": { + "CMOR_varname": "fgsf6", + "standard_name": "surface_downward_mole_flux_of_sulfur_hexafluoride", + "long_name": "Surface Downward SF6 flux", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "dissic": { + "CMOR_varname": "dissic", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", + "long_name": "Dissolved Inorganic Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "dissicnat": { + "CMOR_varname": "dissicnat", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", + "long_name": "Natural Dissolved Inorganic Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "dissicabio": { + "CMOR_varname": "dissicabio", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", + "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "dissi14cabio": { + "CMOR_varname": "dissi14cabio", + "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", + "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "dissoc": { + "CMOR_varname": "dissoc", + "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", + "long_name": "Dissolved Organic Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phyc": { + "CMOR_varname": "phyc", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Phytoplankton Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "zooc": { + "CMOR_varname": "zooc", + "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Zooplankton Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "bacc": { + "CMOR_varname": "bacc", + "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", + "long_name": "Bacterial Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "detoc": { + "CMOR_varname": "detoc", + "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", + "long_name": "Detrital Organic Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "calc": { + "CMOR_varname": "calc", + "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Calcite Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "arag": { + "CMOR_varname": "arag", + "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Aragonite Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phydiat": { + "CMOR_varname": "phydiat", + "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diatoms expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phydiaz": { + "CMOR_varname": "phydiaz", + "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diazotrophs expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phycalc": { + "CMOR_varname": "phycalc", + "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phypico": { + "CMOR_varname": "phypico", + "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phymisc": { + "CMOR_varname": "phymisc", + "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "talk": { + "CMOR_varname": "talk", + "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Total Alkalinity", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "talknat": { + "CMOR_varname": "talknat", + "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", + "long_name": "Natural Total Alkalinity", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "ph": { + "CMOR_varname": "ph", + "standard_name": "sea_water_ph_reported_on_total_scale", + "long_name": "pH", + "mipTable": "Oyr", + "units": "1" + }, + "o2": { + "CMOR_varname": "o2", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", + "long_name": "Dissolved Oxygen Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "o2sat": { + "CMOR_varname": "o2sat", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", + "long_name": "Dissolved Oxygen Concentration at Saturation", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "no3": { + "CMOR_varname": "no3", + "standard_name": "mole_concentration_of_nitrate_in_sea_water", + "long_name": "Dissolved Nitrate Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "nh4": { + "CMOR_varname": "nh4", + "standard_name": "mole_concentration_of_ammonium_in_sea_water", + "long_name": "Dissolved Ammonium Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "po4": { + "CMOR_varname": "po4", + "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", + "long_name": "Total Dissolved Inorganic Phosphorus Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "dfe": { + "CMOR_varname": "dfe", + "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", + "long_name": "Dissolved Iron Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "si": { + "CMOR_varname": "si", + "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", + "long_name": "Total Dissolved Inorganic Silicon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "chl": { + "CMOR_varname": "chl", + "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Oyr", + "units": "kg m-3" + }, + "chldiat": { + "CMOR_varname": "chldiat", + "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Diatoms expressed as Chlorophyll in sea water", + "mipTable": "Oyr", + "units": "kg m-3" + }, + "chldiaz": { + "CMOR_varname": "chldiaz", + "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", + "mipTable": "Oyr", + "units": "kg m-3" + }, + "chlcalc": { + "CMOR_varname": "chlcalc", + "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Oyr", + "units": "kg m-3" + }, + "chlpico": { + "CMOR_varname": "chlpico", + "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Oyr", + "units": "kg m-3" + }, + "chlmisc": { + "CMOR_varname": "chlmisc", + "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Oyr", + "units": "kg m-3" + }, + "pon": { + "CMOR_varname": "pon", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "pop": { + "CMOR_varname": "pop", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "bfe": { + "CMOR_varname": "bfe", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "bsi": { + "CMOR_varname": "bsi", + "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phyn": { + "CMOR_varname": "phyn", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Nitrogen in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phyp": { + "CMOR_varname": "phyp", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phyfe": { + "CMOR_varname": "phyfe", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Iron in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "physi": { + "CMOR_varname": "physi", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "dmso": { + "CMOR_varname": "dmso", + "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", + "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "co3": { + "CMOR_varname": "co3", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", + "long_name": "Carbonate Ion Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "co3satcalc": { + "CMOR_varname": "co3satcalc", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", + "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "co3satarag": { + "CMOR_varname": "co3satarag", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", + "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "pp": { + "CMOR_varname": "pp", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", + "long_name": "Primary Carbon Production by Total Phytoplankton", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "pnitrate": { + "CMOR_varname": "pnitrate", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_nitrate_utilization", + "long_name": "Primary Carbon Production by Phytoplankton due to Nitrate Uptake Alone", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "pbfe": { + "CMOR_varname": "pbfe", + "standard_name": "tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production", + "long_name": "Biogenic Iron Production", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "pbsi": { + "CMOR_varname": "pbsi", + "standard_name": "tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production", + "long_name": "Biogenic Silicon Production", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "pcalc": { + "CMOR_varname": "pcalc", + "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_biological_production", + "long_name": "Calcite Production", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "parag": { + "CMOR_varname": "parag", + "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_biological_production", + "long_name": "Aragonite Production", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "expc": { + "CMOR_varname": "expc", + "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Particulate Organic Carbon Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "expn": { + "CMOR_varname": "expn", + "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", + "long_name": "Sinking Particulate Organic Nitrogen Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "expp": { + "CMOR_varname": "expp", + "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", + "long_name": "Sinking Particulate Organic Phosphorus Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "expfe": { + "CMOR_varname": "expfe", + "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", + "long_name": "Sinking Particulate Iron Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "expsi": { + "CMOR_varname": "expsi", + "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", + "long_name": "Sinking Particulate Silicon Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "expcalc": { + "CMOR_varname": "expcalc", + "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Calcite Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "exparag": { + "CMOR_varname": "exparag", + "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Aragonite Flux", + "mipTable": "Oyr", + "units": "mol m-2 s-1" + }, + "remoc": { + "CMOR_varname": "remoc", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_remineralization", + "long_name": "Remineralization of Organic Carbon", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "dcalc": { + "CMOR_varname": "dcalc", + "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_dissolution", + "long_name": "Calcite Dissolution", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "darag": { + "CMOR_varname": "darag", + "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_dissolution", + "long_name": "Aragonite Dissolution", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "ppdiat": { + "CMOR_varname": "ppdiat", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", + "long_name": "Net Primary Organic Carbon Production by Diatoms", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "ppdiaz": { + "CMOR_varname": "ppdiaz", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", + "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "ppcalc": { + "CMOR_varname": "ppcalc", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "pppico": { + "CMOR_varname": "pppico", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "ppmisc": { + "CMOR_varname": "ppmisc", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", + "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "bddtdic": { + "CMOR_varname": "bddtdic", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "bddtdin": { + "CMOR_varname": "bddtdin", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_nitrogen_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Nitrogen Nutrient due to Biological Activity", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "bddtdip": { + "CMOR_varname": "bddtdip", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Phosphorus due to Biological Activity", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "bddtdife": { + "CMOR_varname": "bddtdife", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_iron_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "bddtdisi": { + "CMOR_varname": "bddtdisi", + "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicon_in_sea_water_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "bddtalk": { + "CMOR_varname": "bddtalk", + "standard_name": "tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", + "long_name": "Rate of Change of Alkalinity due to Biological Activity", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "fescav": { + "CMOR_varname": "fescav", + "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_scavenging_by_inorganic_particles", + "long_name": "Nonbiogenic Iron Scavenging", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "fediss": { + "CMOR_varname": "fediss", + "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_dissolution_from_inorganic_particles", + "long_name": "Particle Source of Dissolved Iron", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "graz": { + "CMOR_varname": "graz", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", + "long_name": "Total Grazing of Phytoplankton by Zooplankton", + "mipTable": "Oyr", + "units": "mol m-3 s-1" + }, + "dissic": { + "CMOR_varname": "dissic", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", + "long_name": "Dissolved Inorganic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissicnat": { + "CMOR_varname": "dissicnat", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", + "long_name": "Natural Dissolved Inorganic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissicabio": { + "CMOR_varname": "dissicabio", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", + "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissi14cabio": { + "CMOR_varname": "dissi14cabio", + "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", + "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissoc": { + "CMOR_varname": "dissoc", + "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", + "long_name": "Dissolved Organic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phyc": { + "CMOR_varname": "phyc", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Phytoplankton Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zooc": { + "CMOR_varname": "zooc", + "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Zooplankton Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "bacc": { + "CMOR_varname": "bacc", + "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", + "long_name": "Bacterial Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "detoc": { + "CMOR_varname": "detoc", + "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", + "long_name": "Detrital Organic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "calc": { + "CMOR_varname": "calc", + "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Calcite Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "arag": { + "CMOR_varname": "arag", + "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Aragonite Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phydiat": { + "CMOR_varname": "phydiat", + "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diatoms expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phydiaz": { + "CMOR_varname": "phydiaz", + "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Diazotrophs expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phycalc": { + "CMOR_varname": "phycalc", + "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phypico": { + "CMOR_varname": "phypico", + "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phymisc": { + "CMOR_varname": "phymisc", + "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "talk": { + "CMOR_varname": "talk", + "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Total Alkalinity", + "mipTable": "Omon", + "units": "mol m-3" + }, + "talknat": { + "CMOR_varname": "talknat", + "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", + "long_name": "Natural Total Alkalinity", + "mipTable": "Omon", + "units": "mol m-3" + }, + "ph": { + "CMOR_varname": "ph", + "standard_name": "sea_water_ph_reported_on_total_scale", + "long_name": "pH", + "mipTable": "Omon", + "units": "1" + }, + "o2": { + "CMOR_varname": "o2", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", + "long_name": "Dissolved Oxygen Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "no3": { + "CMOR_varname": "no3", + "standard_name": "mole_concentration_of_nitrate_in_sea_water", + "long_name": "Dissolved Nitrate Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "nh4": { + "CMOR_varname": "nh4", + "standard_name": "mole_concentration_of_ammonium_in_sea_water", + "long_name": "Dissolved Ammonium Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "po4": { + "CMOR_varname": "po4", + "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", + "long_name": "Total Dissolved Inorganic Phosphorus Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dfe": { + "CMOR_varname": "dfe", + "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", + "long_name": "Dissolved Iron Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "si": { + "CMOR_varname": "si", + "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", + "long_name": "Total Dissolved Inorganic Silicon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "chl": { + "CMOR_varname": "chl", + "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chldiat": { + "CMOR_varname": "chldiat", + "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Diatoms expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chldiaz": { + "CMOR_varname": "chldiaz", + "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chlcalc": { + "CMOR_varname": "chlcalc", + "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chlpico": { + "CMOR_varname": "chlpico", + "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chlmisc": { + "CMOR_varname": "chlmisc", + "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "pon": { + "CMOR_varname": "pon", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "pop": { + "CMOR_varname": "pop", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "bfe": { + "CMOR_varname": "bfe", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "bsi": { + "CMOR_varname": "bsi", + "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", + "long_name": "Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phyn": { + "CMOR_varname": "phyn", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Nitrogen in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phyp": { + "CMOR_varname": "phyp", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phyfe": { + "CMOR_varname": "phyfe", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Iron in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "physi": { + "CMOR_varname": "physi", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", + "long_name": "Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3": { + "CMOR_varname": "co3", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", + "long_name": "Carbonate Ion Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3satcalc": { + "CMOR_varname": "co3satcalc", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", + "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3satarag": { + "CMOR_varname": "co3satarag", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", + "long_name": "Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "ppos": { + "CMOR_varname": "ppos", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", + "long_name": "Primary Carbon Production by Total Phytoplankton", + "mipTable": "Omon", + "units": "mol m-3 s-1" + }, + "graz": { + "CMOR_varname": "graz", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", + "long_name": "Total Grazing of Phytoplankton by Zooplankton", + "mipTable": "Omon", + "units": "mol m-3 s-1" + }, + "expc": { + "CMOR_varname": "expc", + "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Particulate Organic Carbon Flux", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "limndiat": { + "CMOR_varname": "limndiat", + "standard_name": "nitrogen_growth_limitation_of_diatoms", + "long_name": "Nitrogen Limitation of Diatoms", + "mipTable": "Omon", + "units": "1" + }, + "limndiaz": { + "CMOR_varname": "limndiaz", + "standard_name": "nitrogen_growth_limitation_of_diazotrophs", + "long_name": "Nitrogen Limitation of Diazotrophs", + "mipTable": "Omon", + "units": "1" + }, + "limncalc": { + "CMOR_varname": "limncalc", + "standard_name": "nitrogen_growth_limitation_of_calcareous_phytoplankton", + "long_name": "Nitrogen Limitation of Calcareous Phytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limnpico": { + "CMOR_varname": "limnpico", + "standard_name": "nitrogen_growth_limitation_of_picophytoplankton", + "long_name": "Nitrogen Limitation of Picophytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limnmisc": { + "CMOR_varname": "limnmisc", + "standard_name": "nitrogen_growth_limitation_of_miscellaneous_phytoplankton", + "long_name": "Nitrogen Limitation of Other Phytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limirrdiat": { + "CMOR_varname": "limirrdiat", + "standard_name": "growth_limitation_of_diatoms_due_to_solar_irradiance", + "long_name": "Irradiance Limitation of Diatoms", + "mipTable": "Omon", + "units": "1" + }, + "limirrdiaz": { + "CMOR_varname": "limirrdiaz", + "standard_name": "growth_limitation_of_diazotrophs_due_to_solar_irradiance", + "long_name": "Irradiance Limitation of Diazotrophs", + "mipTable": "Omon", + "units": "1" + }, + "limirrcalc": { + "CMOR_varname": "limirrcalc", + "standard_name": "growth_limitation_of_calcareous_phytoplankton_due_to_solar_irradiance", + "long_name": "Irradiance Limitation of Calcareous Phytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limirrpico": { + "CMOR_varname": "limirrpico", + "standard_name": "growth_limitation_of_picophytoplankton_due_to_solar_irradiance", + "long_name": "Irradiance Limitation of Picophytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limirrmisc": { + "CMOR_varname": "limirrmisc", + "standard_name": "growth_limitation_of_miscellaneous_phytoplankton_due_to_solar_irradiance", + "long_name": "Irradiance Limitation of Other Phytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limfediat": { + "CMOR_varname": "limfediat", + "standard_name": "iron_growth_limitation_of_diatoms", + "long_name": "Iron Limitation of Diatoms", + "mipTable": "Omon", + "units": "1" + }, + "limfediaz": { + "CMOR_varname": "limfediaz", + "standard_name": "iron_growth_limitation_of_diazotrophs", + "long_name": "Iron Limitation of Diazotrophs", + "mipTable": "Omon", + "units": "1" + }, + "limfecalc": { + "CMOR_varname": "limfecalc", + "standard_name": "iron_growth_limitation_of_calcareous_phytoplankton", + "long_name": "Iron Limitation of Calcareous Phytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limfepico": { + "CMOR_varname": "limfepico", + "standard_name": "iron_growth_limitation_of_picophytoplankton", + "long_name": "Iron Limitation of Picophytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "limfemisc": { + "CMOR_varname": "limfemisc", + "standard_name": "iron_growth_limitation_of_miscellaneous_phytoplankton", + "long_name": "Iron Limitation of Other Phytoplankton", + "mipTable": "Omon", + "units": "1" + }, + "intpp": { + "CMOR_varname": "intpp", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_phytoplankton", + "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intppdiat": { + "CMOR_varname": "intppdiat", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diatoms", + "long_name": "Net Primary Organic Carbon Production by Diatoms", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intppdiaz": { + "CMOR_varname": "intppdiaz", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diazotrophs", + "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intppcalc": { + "CMOR_varname": "intppcalc", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_calcareous_phytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpppico": { + "CMOR_varname": "intpppico", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_picophytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intppmisc": { + "CMOR_varname": "intppmisc", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_miscellaneous_phytoplankton", + "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpbn": { + "CMOR_varname": "intpbn", + "standard_name": "tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production", + "long_name": "Nitrogen Production", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpbp": { + "CMOR_varname": "intpbp", + "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", + "long_name": "Phosphorus Production", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpbfe": { + "CMOR_varname": "intpbfe", + "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", + "long_name": "Iron Production", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpbsi": { + "CMOR_varname": "intpbsi", + "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", + "long_name": "Silicon Production", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpcalcite": { + "CMOR_varname": "intpcalcite", + "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", + "long_name": "Calcite Production", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intparag": { + "CMOR_varname": "intparag", + "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", + "long_name": "Aragonite Production", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpoc": { + "CMOR_varname": "intpoc", + "standard_name": "ocean_mass_content_of_particulate_organic_matter_expressed_as_carbon", + "long_name": "Particulate Organic Carbon Content", + "mipTable": "Omon", + "units": "kg m-2" + }, + "spco2": { + "CMOR_varname": "spco2", + "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water", + "long_name": "Surface Aqueous Partial Pressure of CO2", + "mipTable": "Omon", + "units": "Pa" + }, + "dpco2": { + "CMOR_varname": "dpco2", + "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Delta PCO2", + "mipTable": "Omon", + "units": "Pa" + }, + "dpo2": { + "CMOR_varname": "dpo2", + "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Delta PO2", + "mipTable": "Omon", + "units": "Pa" + }, + "fgco2": { + "CMOR_varname": "fgco2", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", + "long_name": "Surface Downward Flux of Total CO2", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "fgco2nat": { + "CMOR_varname": "fgco2nat", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Natural CO2", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "fgco2abio": { + "CMOR_varname": "fgco2abio", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Abiotic CO2", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "fg14co2abio": { + "CMOR_varname": "fg14co2abio", + "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Abiotic 14CO2", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "fgo2": { + "CMOR_varname": "fgo2", + "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", + "long_name": "Surface Downward Flux of O2", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fgdms": { + "CMOR_varname": "fgdms", + "standard_name": "surface_upward_mole_flux_of_dimethyl_sulfide", + "long_name": "Surface Upward Flux of DMS", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "icfriver": { + "CMOR_varname": "icfriver", + "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution", + "long_name": "Flux of Inorganic Carbon Into Ocean Surface by Runoff", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fric": { + "CMOR_varname": "fric", + "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation", + "long_name": "Downward Inorganic Carbon Flux at Ocean Bottom", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "ocfriver": { + "CMOR_varname": "ocfriver", + "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution", + "long_name": "Flux of Organic Carbon Into Ocean Surface by Runoff", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "froc": { + "CMOR_varname": "froc", + "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation", + "long_name": "Downward Organic Carbon Flux at Ocean Bottom", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intpn2": { + "CMOR_varname": "intpn2", + "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", + "long_name": "Nitrogen Fixation Rate in Ocean", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fsn": { + "CMOR_varname": "fsn", + "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", + "long_name": "Surface Downward Net Flux of Nitrogen", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "frn": { + "CMOR_varname": "frn", + "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", + "long_name": "Nitrogen Loss to Sediments and through Denitrification", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fsfe": { + "CMOR_varname": "fsfe", + "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", + "long_name": "Surface Downward Net Flux of Iron", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "frfe": { + "CMOR_varname": "frfe", + "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_sedimentation", + "long_name": "Iron Loss to Sediments", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "o2min": { + "CMOR_varname": "o2min", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", + "long_name": "Oxygen Minimum Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zo2min": { + "CMOR_varname": "zo2min", + "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", + "long_name": "Depth of Oxygen Minimum Concentration", + "mipTable": "Omon", + "units": "m" + }, + "zsatcalc": { + "CMOR_varname": "zsatcalc", + "standard_name": "minimum_depth_of_calcite_undersaturation_in_sea_water", + "long_name": "Calcite Saturation Depth", + "mipTable": "Omon", + "units": "m" + }, + "zsatarag": { + "CMOR_varname": "zsatarag", + "standard_name": "minimum_depth_of_aragonite_undersaturation_in_sea_water", + "long_name": "Aragonite Saturation Depth", + "mipTable": "Omon", + "units": "m" + }, + "fddtdic": { + "CMOR_varname": "fddtdic", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", + "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fddtdin": { + "CMOR_varname": "fddtdin", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", + "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fddtdip": { + "CMOR_varname": "fddtdip", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", + "long_name": "Rate of Change of Net Dissolved Inorganic Phosphorus", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fddtdife": { + "CMOR_varname": "fddtdife", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", + "long_name": "Rate of Change of Net Dissolved Inorganic Iron", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fddtdisi": { + "CMOR_varname": "fddtdisi", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", + "long_name": "Rate of Change of Net Dissolved Inorganic Silicon", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fddtalk": { + "CMOR_varname": "fddtalk", + "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Rate of Change of Total Alkalinity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fbddtdic": { + "CMOR_varname": "fbddtdic", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fbddtdin": { + "CMOR_varname": "fbddtdin", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fbddtdip": { + "CMOR_varname": "fbddtdip", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Phosphorus due to Biological Activity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fbddtdife": { + "CMOR_varname": "fbddtdife", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fbddtdisi": { + "CMOR_varname": "fbddtdisi", + "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", + "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "fbddtalk": { + "CMOR_varname": "fbddtalk", + "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", + "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "chlos": { + "CMOR_varname": "chlos", + "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Oday", + "units": "kg m-3" + }, + "phycos": { + "CMOR_varname": "phycos", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Phytoplankton Carbon Concentration", + "mipTable": "Oday", + "units": "mol m-3" + }, + "deptho": { + "CMOR_varname": "deptho", + "standard_name": "sea_floor_depth_below_geoid", + "long_name": "Sea Floor Depth Below Geoid", + "mipTable": "Ofx", + "units": "m" + }, + "masscello": { + "CMOR_varname": "masscello", + "standard_name": "sea_water_mass_per_unit_area", + "long_name": "Ocean Grid-Cell Mass per area", + "mipTable": "Ofx", + "units": "kg m-2" + }, + "areacello": { + "CMOR_varname": "areacello", + "standard_name": "cell_area", + "long_name": "Grid-Cell Area", + "mipTable": "Ofx", + "units": "m2" + }, + "sftof": { + "CMOR_varname": "sftof", + "standard_name": "sea_area_fraction", + "long_name": "Sea Area Fraction", + "mipTable": "Ofx", + "units": "%" + }, + "basin": { + "CMOR_varname": "basin", + "standard_name": "region", + "long_name": "Region Selection Index", + "mipTable": "Ofx", + "units": "1" + }, + "hfgeou": { + "CMOR_varname": "hfgeou", + "standard_name": "upward_geothermal_heat_flux_at_sea_floor", + "long_name": "Upward Geothermal Heat Flux at Sea Floor", + "mipTable": "Ofx", + "units": "W m-2" + }, + "opottemptend": { + "CMOR_varname": "opottemptend", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content", + "long_name": "tendency of sea water potential temperature expressed as heat content", + "mipTable": "Oyr", + "units": "W m-2" + }, + "opottemppadvect": { + "CMOR_varname": "opottemppadvect", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized eddy advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "opottemppmdiff": { + "CMOR_varname": "opottemppmdiff", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized mesoscale diffusion", + "mipTable": "Oyr", + "units": "W m-2" + }, + "opottemppsmadvect": { + "CMOR_varname": "opottemppsmadvect", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized submesoscale advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "opottempdiff": { + "CMOR_varname": "opottempdiff", + "standard_name": "tendency_of_sea_water_potential_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", + "long_name": "tendency of sea water potential temperature expressed as heat content due to parameterized dianeutral mixing", + "mipTable": "Oyr", + "units": "W m-2" + }, + "ocontemptend": { + "CMOR_varname": "ocontemptend", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content", + "long_name": "tendency of sea water conservative temperature expressed as heat content", + "mipTable": "Oyr", + "units": "W m-2" + }, + "ocontemppadvect": { + "CMOR_varname": "ocontemppadvect", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized eddy advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "ocontemppmdiff": { + "CMOR_varname": "ocontemppmdiff", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized mesoscale diffusion", + "mipTable": "Oyr", + "units": "W m-2" + }, + "ocontemppsmadvect": { + "CMOR_varname": "ocontemppsmadvect", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized submesoscale advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "ocontempdiff": { + "CMOR_varname": "ocontempdiff", + "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_eddy_dianeutral_mixing", + "long_name": "tendency of sea water conservative temperature expressed as heat content due to parameterized dianeutral mixing", + "mipTable": "Oyr", + "units": "W m-2" + }, + "osalttend": { + "CMOR_varname": "osalttend", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content", + "long_name": "tendency of sea water salinity expressed as salt content", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "osaltpadvect": { + "CMOR_varname": "osaltpadvect", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized eddy advection", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "osaltpmdiff": { + "CMOR_varname": "osaltpmdiff", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized mesoscale diffusion", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "osaltpsmadvect": { + "CMOR_varname": "osaltpsmadvect", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized submesoscale advection", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "osaltdiff": { + "CMOR_varname": "osaltdiff", + "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_eddy_dianeutral_mixing", + "long_name": "tendency of sea water salinity expressed as salt content due to parameterized dianeutral mixing", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "difvho": { + "CMOR_varname": "difvho", + "standard_name": "ocean_vertical_heat_diffusivity", + "long_name": "ocean vertical heat diffusivity", + "mipTable": "Oyr", + "units": "m2 s-1" + }, + "difvso": { + "CMOR_varname": "difvso", + "standard_name": "ocean_vertical_salt_diffusivity", + "long_name": "ocean vertical salt diffusivity", + "mipTable": "Oyr", + "units": "m2 s-1" + }, + "tnpeo": { + "CMOR_varname": "tnpeo", + "standard_name": "tendency_of_ocean_potential_energy_content", + "long_name": "tendency of ocean potential energy content", + "mipTable": "Oyr", + "units": "W m-2" + }, + "diftrblo": { + "CMOR_varname": "diftrblo", + "standard_name": "ocean_tracer_laplacian_diffusivity_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "ocean tracer diffusivity due to parameterized mesoscale advection", + "mipTable": "Oyr", + "units": "m2 s-1" + }, + "diftrelo": { + "CMOR_varname": "diftrelo", + "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", + "long_name": "ocean tracer epineutral laplacian diffusivity", + "mipTable": "Oyr", + "units": "m2 s-1" + }, + "tnkebto": { + "CMOR_varname": "tnkebto", + "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_parameterized_eddy_advection", + "long_name": "tendency of ocean eddy kinetic energy content due to parameterized eddy advection", + "mipTable": "Oyr", + "units": "W m-2" + }, + "difmxylo": { + "CMOR_varname": "difmxylo", + "standard_name": "ocean_momentum_xy_laplacian_diffusivity", + "long_name": "ocean momentum xy laplacian diffusivity", + "mipTable": "Oyr", + "units": "m2 s-1" + }, + "difmxybo": { + "CMOR_varname": "difmxybo", + "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", + "long_name": "ocean momentum xy biharmonic diffusivity", + "mipTable": "Oyr", + "units": "m4 s-1" + }, + "dispkexyfo": { + "CMOR_varname": "dispkexyfo", + "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", + "long_name": "ocean kinetic energy dissipation per unit area due to xy friction", + "mipTable": "Oyr", + "units": "W m-2" + }, + "masso": { + "CMOR_varname": "masso", + "standard_name": "sea_water_mass", + "long_name": "Sea Water Mass", + "mipTable": "Omon", + "units": "kg" + }, + "pbo": { + "CMOR_varname": "pbo", + "standard_name": "sea_water_pressure_at_sea_floor", + "long_name": "Sea Water Pressure at Sea floor", + "mipTable": "Omon", + "units": "Pa" + }, + "pso": { + "CMOR_varname": "pso", + "standard_name": "sea_water_pressure_at_sea_water_surface", + "long_name": "Sea Water Pressure at Sea Water Surface", + "mipTable": "Omon", + "units": "Pa" + }, + "volo": { + "CMOR_varname": "volo", + "standard_name": "sea_water_volume", + "long_name": "Sea Water Volume", + "mipTable": "Omon", + "units": "m3" + }, + "zos": { + "CMOR_varname": "zos", + "standard_name": "sea_surface_height_above_geoid", + "long_name": "Sea Surface Height Above Geoid", + "mipTable": "Omon", + "units": "m" + }, + "zossq": { + "CMOR_varname": "zossq", + "standard_name": "square_of_sea_surface_height_above_geoid", + "long_name": "Square of Sea Surface Height Above Geoid", + "mipTable": "Omon", + "units": "m2" + }, + "zostoga": { + "CMOR_varname": "zostoga", + "standard_name": "global_average_thermosteric_sea_level_change", + "long_name": "Global Average Thermosteric Sea Level Change", + "mipTable": "Omon", + "units": "m" + }, + "masscello": { + "CMOR_varname": "masscello", + "standard_name": "sea_water_mass_per_unit_area", + "long_name": "Sea Water Mass Per Unit Area", + "mipTable": "Omon", + "units": "kg m-2" + }, + "thkcello": { + "CMOR_varname": "thkcello", + "standard_name": "cell_thickness", + "long_name": "Ocean Model Cell Thickness", + "mipTable": "Omon", + "units": "m" + }, + "thetao": { + "CMOR_varname": "thetao", + "standard_name": "sea_water_potential_temperature", + "long_name": "Sea Water Potential Temperature", + "mipTable": "Omon", + "units": "degC" + }, + "thetaoga": { + "CMOR_varname": "thetaoga", + "standard_name": "sea_water_potential_temperature", + "long_name": "Global Average Sea Water Potential Temperature", + "mipTable": "Omon", + "units": "degC" + }, + "bigthetao": { + "CMOR_varname": "bigthetao", + "standard_name": "sea_water_conservative_temperature", + "long_name": "Sea Water Convervative Temperature", + "mipTable": "Omon", + "units": "degC" + }, + "bigthetaoga": { + "CMOR_varname": "bigthetaoga", + "standard_name": "sea_water_conservative_temperature", + "long_name": "Global Average Sea Water Conservative Temperature", + "mipTable": "Omon", + "units": "degC" + }, + "tos": { + "CMOR_varname": "tos", + "standard_name": "sea_surface_temperature", + "long_name": "Sea Surface Temperature", + "mipTable": "Omon", + "units": "degC" + }, + "tob": { + "CMOR_varname": "tob", + "standard_name": "sea_water_potential_temperature_at_sea_floor", + "long_name": "Sea Water Potential Temperature at Sea Floor", + "mipTable": "Omon", + "units": "degC" + }, + "tosga": { + "CMOR_varname": "tosga", + "standard_name": "sea_surface_temperature", + "long_name": "Global Average Sea Surface Temperature", + "mipTable": "Omon", + "units": "degC" + }, + "tossq": { + "CMOR_varname": "tossq", + "standard_name": "square_of_sea_surface_temperature", + "long_name": "Square of Sea Surface Temperature", + "mipTable": "Omon", + "units": "degC2" + }, + "so": { + "CMOR_varname": "so", + "standard_name": "sea_water_salinity", + "long_name": "Sea Water Salinity", + "mipTable": "Omon", + "units": "0.001" + }, + "soga": { + "CMOR_varname": "soga", + "standard_name": "sea_water_salinity", + "long_name": "Global Mean Sea Water Salinity", + "mipTable": "Omon", + "units": "0.001" + }, + "sos": { + "CMOR_varname": "sos", + "standard_name": "sea_surface_salinity", + "long_name": "Sea Surface Salinity", + "mipTable": "Omon", + "units": "0.001" + }, + "sob": { + "CMOR_varname": "sob", + "standard_name": "sea_water_salinity_at_sea_floor", + "long_name": "sea water salinity at sea floor", + "mipTable": "Omon", + "units": "0.001" + }, + "agessc": { + "CMOR_varname": "agessc", + "standard_name": "sea_water_age_since_surface_contact", + "long_name": "Sea Water Age Since Surface Contact", + "mipTable": "Omon", + "units": "yr" + }, + "msftbarot": { + "CMOR_varname": "msftbarot", + "standard_name": "ocean_barotropic_mass_streamfunction", + "long_name": "Ocean Barotropic Mass Streamfunction", + "mipTable": "Omon", + "units": "kg s-1" + }, + "mlotst": { + "CMOR_varname": "mlotst", + "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", + "mipTable": "Omon", + "units": "m" + }, + "mlotstsq": { + "CMOR_varname": "mlotstsq", + "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", + "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", + "mipTable": "Omon", + "units": "m2" + }, + "uo": { + "CMOR_varname": "uo", + "standard_name": "sea_water_x_velocity", + "long_name": "Sea Water X Velocity", + "mipTable": "Omon", + "units": "m s-1" + }, + "vo": { + "CMOR_varname": "vo", + "standard_name": "sea_water_y_velocity", + "long_name": "Sea Water Y Velocity", + "mipTable": "Omon", + "units": "m s-1" + }, + "wmo": { + "CMOR_varname": "wmo", + "standard_name": "upward_ocean_mass_transport", + "long_name": "Upward Ocean Mass Transport", + "mipTable": "Omon", + "units": "kg s-1" + }, + "umo": { + "CMOR_varname": "umo", + "standard_name": "ocean_mass_x_transport", + "long_name": "Ocean Mass X Transport", + "mipTable": "Omon", + "units": "kg s-1" + }, + "vmo": { + "CMOR_varname": "vmo", + "standard_name": "ocean_mass_y_transport", + "long_name": "Ocean Mass Y Transport", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftmz": { + "CMOR_varname": "msftmz", + "standard_name": "ocean_meridional_overturning_mass_streamfunction", + "long_name": "Ocean Meridional Overturning Mass Streamfunction", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftmrho": { + "CMOR_varname": "msftmrho", + "standard_name": "ocean_meridional_overturning_mass_streamfunction", + "long_name": "Ocean Meridional Overturning Mass Streamfunction", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftyz": { + "CMOR_varname": "msftyz", + "standard_name": "ocean_y_overturning_mass_streamfunction", + "long_name": "Ocean Y Overturning Mass Streamfunction", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftyrho": { + "CMOR_varname": "msftyrho", + "standard_name": "ocean_y_overturning_mass_streamfunction", + "long_name": "Ocean Y Overturning Mass Streamfunction", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftmzmpa": { + "CMOR_varname": "msftmzmpa", + "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftmrhompa": { + "CMOR_varname": "msftmrhompa", + "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftyzmpa": { + "CMOR_varname": "msftyzmpa", + "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftyrhompa": { + "CMOR_varname": "msftyrhompa", + "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftmzsmpa": { + "CMOR_varname": "msftmzsmpa", + "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "ocean meridional overturning mass streamfunction due to parameterized submesoscale advection", + "mipTable": "Omon", + "units": "kg s-1" + }, + "msftyzsmpa": { + "CMOR_varname": "msftyzsmpa", + "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "ocean Y overturning mass streamfunction due to parameterized submesoscale advection", + "mipTable": "Omon", + "units": "kg s-1" + }, + "hfbasin": { + "CMOR_varname": "hfbasin", + "standard_name": "northward_ocean_heat_transport", + "long_name": "Northward Ocean Heat Transport", + "mipTable": "Omon", + "units": "W" + }, + "hfbasinpmadv": { + "CMOR_varname": "hfbasinpmadv", + "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "northward ocean heat transport due to parameterized mesoscale advection", + "mipTable": "Omon", + "units": "W" + }, + "hfbasinpmdiff": { + "CMOR_varname": "hfbasinpmdiff", + "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_eddy_diffusion", + "long_name": "northward ocean heat transport due to parameterized mesoscale diffusion", + "mipTable": "Omon", + "units": "W" + }, + "hfbasinpsmadv": { + "CMOR_varname": "hfbasinpsmadv", + "standard_name": "northward_ocean_heat_transport_due_to_parameterized_submesoscale_eddy_advection", + "long_name": "northward ocean heat transport due to parameterized submesoscale advection", + "mipTable": "Omon", + "units": "W" + }, + "hfbasinpadv": { + "CMOR_varname": "hfbasinpadv", + "standard_name": "northward_ocean_heat_transport_due_to_parameterized_eddy_advection", + "long_name": "northward ocean heat transport due to parameterized eddy advection", + "mipTable": "Omon", + "units": "W" + }, + "hfx": { + "CMOR_varname": "hfx", + "standard_name": "ocean_heat_x_transport", + "long_name": "Ocean Heat X Transport", + "mipTable": "Omon", + "units": "W" + }, + "hfy": { + "CMOR_varname": "hfy", + "standard_name": "ocean_heat_y_transport", + "long_name": "Ocean Heat Y Transport", + "mipTable": "Omon", + "units": "W" + }, + "htovgyre": { + "CMOR_varname": "htovgyre", + "standard_name": "northward_ocean_heat_transport_due_to_gyre", + "long_name": "Northward Ocean Heat Transport due to Gyre", + "mipTable": "Omon", + "units": "W" + }, + "htovovrt": { + "CMOR_varname": "htovovrt", + "standard_name": "northward_ocean_heat_transport_due_to_overturning", + "long_name": "Northward Ocean Heat Transport due to Overturning", + "mipTable": "Omon", + "units": "W" + }, + "sltovgyre": { + "CMOR_varname": "sltovgyre", + "standard_name": "northward_ocean_salt_transport_due_to_gyre", + "long_name": "Northward Ocean Salt Transport due to Gyre", + "mipTable": "Omon", + "units": "kg s-1" + }, + "sltovovrt": { + "CMOR_varname": "sltovovrt", + "standard_name": "northward_ocean_salt_transport_due_to_overturning", + "long_name": "Northward Ocean Salt Transport due to Overturning", + "mipTable": "Omon", + "units": "kg s-1" + }, + "mfo": { + "CMOR_varname": "mfo", + "standard_name": "sea_water_transport_across_line", + "long_name": "Sea Water Transport", + "mipTable": "Omon", + "units": "kg s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux where Ice Free Ocean over Sea", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "evs": { + "CMOR_varname": "evs", + "standard_name": "water_evapotranspiration_flux", + "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "friver": { + "CMOR_varname": "friver", + "standard_name": "water_flux_into_sea_water_from_rivers", + "long_name": "Water Flux into Sea Water From Rivers", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "ficeberg": { + "CMOR_varname": "ficeberg", + "standard_name": "water_flux_into_sea_water_from_icebergs", + "long_name": "Water Flux into Sea Water From Icebergs", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "ficeberg2d": { + "CMOR_varname": "ficeberg2d", + "standard_name": "water_flux_into_sea_water_from_icebergs", + "long_name": "Water Flux into Sea Water From Icebergs", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "fsitherm": { + "CMOR_varname": "fsitherm", + "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", + "long_name": "Water Flux into Sea Water due to Sea Ice Thermodynamics", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "wfo": { + "CMOR_varname": "wfo", + "standard_name": "water_flux_into_sea_water", + "long_name": "Water Flux into Sea Water", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "wfonocorr": { + "CMOR_varname": "wfonocorr", + "standard_name": "water_flux_into_sea_water_without_flux_correction", + "long_name": "Water Flux into Sea Water Without Flux Correction", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "wfcorr": { + "CMOR_varname": "wfcorr", + "standard_name": "water_flux_correction", + "long_name": "Water Flux Correction", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "vsfpr": { + "CMOR_varname": "vsfpr", + "standard_name": "virtual_salt_flux_into_sea_water_due_to_rainfall", + "long_name": "Virtual Salt Flux into Sea Water due to Rainfall", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "vsfevap": { + "CMOR_varname": "vsfevap", + "standard_name": "virtual_salt_flux_into_sea_water_due_to_evaporation", + "long_name": "Virtual Salt Flux into Sea Water due to Evaporation", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "vsfriver": { + "CMOR_varname": "vsfriver", + "standard_name": "virtual_salt_flux_into_sea_water_from_rivers", + "long_name": "Virtual Salt Flux into Sea Water From Rivers", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "vsfsit": { + "CMOR_varname": "vsfsit", + "standard_name": "virtual_salt_flux_into_sea_water_due_to_sea_ice_thermodynamics", + "long_name": "Virtual Salt Flux into Sea Water due to Sea Ice Thermodynamics", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "vsf": { + "CMOR_varname": "vsf", + "standard_name": "virtual_salt_flux_into_sea_water", + "long_name": "Virtual Salt Flux into Sea Water", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "vsfcorr": { + "CMOR_varname": "vsfcorr", + "standard_name": "virtual_salt_flux_correction", + "long_name": "Virtual Salt Flux Correction", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "sfdsi": { + "CMOR_varname": "sfdsi", + "standard_name": "downward_sea_ice_basal_salt_flux", + "long_name": "Downward Sea Ice Basal Salt Flux", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "sfriver": { + "CMOR_varname": "sfriver", + "standard_name": "salt_flux_into_sea_water_from_rivers", + "long_name": "Salt Flux into Sea Water from Rivers", + "mipTable": "Omon", + "units": "kg m-2 s-1" + }, + "hfgeou": { + "CMOR_varname": "hfgeou", + "standard_name": "upward_geothermal_heat_flux_at_sea_floor", + "long_name": "Upward Geothermal Heat Flux at Sea Floor", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfrainds": { + "CMOR_varname": "hfrainds", + "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", + "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfevapds": { + "CMOR_varname": "hfevapds", + "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", + "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfrunoffds": { + "CMOR_varname": "hfrunoffds", + "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", + "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfrunoffds2d": { + "CMOR_varname": "hfrunoffds2d", + "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", + "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfsnthermds": { + "CMOR_varname": "hfsnthermds", + "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfsnthermds2d": { + "CMOR_varname": "hfsnthermds2d", + "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfsifrazil": { + "CMOR_varname": "hfsifrazil", + "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", + "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfsifrazil2d": { + "CMOR_varname": "hfsifrazil2d", + "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", + "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfibthermds": { + "CMOR_varname": "hfibthermds", + "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfibthermds2d": { + "CMOR_varname": "hfibthermds2d", + "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", + "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", + "mipTable": "Omon", + "units": "W m-2" + }, + "rsntds": { + "CMOR_varname": "rsntds", + "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", + "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", + "mipTable": "Omon", + "units": "W m-2" + }, + "rsdo": { + "CMOR_varname": "rsdo", + "standard_name": "downwelling_shortwave_flux_in_sea_water", + "long_name": "Downwelling Shortwave Radiation in Sea Water", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfcorr": { + "CMOR_varname": "hfcorr", + "standard_name": "heat_flux_correction", + "long_name": "Heat Flux Correction", + "mipTable": "Omon", + "units": "W m-2" + }, + "hfds": { + "CMOR_varname": "hfds", + "standard_name": "surface_downward_heat_flux_in_sea_water", + "long_name": "Downward Heat Flux at Sea Water Surface", + "mipTable": "Omon", + "units": "W m-2" + }, + "tauuo": { + "CMOR_varname": "tauuo", + "standard_name": "surface_downward_x_stress", + "long_name": "Surface Downward X Stress", + "mipTable": "Omon", + "units": "N m-2" + }, + "tauvo": { + "CMOR_varname": "tauvo", + "standard_name": "surface_downward_y_stress", + "long_name": "Surface Downward Y Stress", + "mipTable": "Omon", + "units": "N m-2" + }, + "tauucorr": { + "CMOR_varname": "tauucorr", + "standard_name": "surface_downward_x_stress_correction", + "long_name": "Surface Downward X Stress Correction", + "mipTable": "Omon", + "units": "N m-2" + }, + "tauvcorr": { + "CMOR_varname": "tauvcorr", + "standard_name": "surface_downward_y_stress_correction", + "long_name": "Surface Downward Y Stress Correction", + "mipTable": "Omon", + "units": "N m-2" + }, + "tossq": { + "CMOR_varname": "tossq", + "standard_name": "square_of_sea_surface_temperature", + "long_name": "Square of Sea Surface Temperature", + "mipTable": "Oday", + "units": "degC2" + }, + "tos": { + "CMOR_varname": "tos", + "standard_name": "sea_surface_temperature", + "long_name": "Sea Surface Temperature", + "mipTable": "Oday", + "units": "degC" + }, + "sos": { + "CMOR_varname": "sos", + "standard_name": "sea_surface_salinity", + "long_name": "Sea Surface Salinity", + "mipTable": "Oday", + "units": "0.001" + }, + "agesno": { + "CMOR_varname": "agesno", + "standard_name": "age_of_surface_snow", + "long_name": "Snow Age", + "mipTable": "LImon", + "units": "day" + }, + "albisccp": { + "CMOR_varname": "albisccp", + "standard_name": "cloud_albedo", + "long_name": "ISCCP Mean Cloud Albedo", + "mipTable": "CFday", + "units": "1" + }, + "albisccp": { + "CMOR_varname": "albisccp", + "standard_name": "cloud_albedo", + "long_name": "ISCCP Mean Cloud Albedo", + "mipTable": "CFmon", + "units": "1" + }, + "areacella": { + "CMOR_varname": "areacella", + "standard_name": "cell_area", + "long_name": "Grid-Cell Area for Atmospheric Variables", + "mipTable": "fx", + "units": "m2" + }, + "baresoilFrac": { + "CMOR_varname": "baresoilFrac", + "standard_name": "area_fraction", + "long_name": "Bare Soil Percentage", + "mipTable": "Lmon", + "units": "%" + }, + "burntFractionAll": { + "CMOR_varname": "burntFractionAll", + "standard_name": "area_fraction", + "long_name": "Percentage of Entire Grid cell that is Covered by Burnt Vegetation (All Classes)", + "mipTable": "Lmon", + "units": "%" + }, + "c3PftFrac": { + "CMOR_varname": "c3PftFrac", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by C3 Plant Functional Type", + "mipTable": "Lmon", + "units": "%" + }, + "c4PftFrac": { + "CMOR_varname": "c4PftFrac", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by C4 Plant Functional Type", + "mipTable": "Lmon", + "units": "%" + }, + "cCwd": { + "CMOR_varname": "cCwd", + "standard_name": "wood_debris_mass_content_of_carbon", + "long_name": "Carbon Mass in Coarse Woody Debris", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cLeaf": { + "CMOR_varname": "cLeaf", + "standard_name": "leaf_mass_content_of_carbon", + "long_name": "Carbon Mass in Leaves", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cLitter": { + "CMOR_varname": "cLitter", + "standard_name": "litter_mass_content_of_carbon", + "long_name": "Carbon Mass in Litter Pool", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cLitterAbove": { + "CMOR_varname": "cLitterAbove", + "standard_name": "surface_litter_mass_content_of_carbon", + "long_name": "Carbon Mass in Above-Ground Litter", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cLitterBelow": { + "CMOR_varname": "cLitterBelow", + "standard_name": "subsurface_litter_mass_content_of_carbon", + "long_name": "Carbon Mass in Below-Ground Litter", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cProduct": { + "CMOR_varname": "cProduct", + "standard_name": "carbon_mass_content_of_forestry_and_agricultural_products", + "long_name": "Carbon Mass in Products of Land Use Change", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cRoot": { + "CMOR_varname": "cRoot", + "standard_name": "root_mass_content_of_carbon", + "long_name": "Carbon Mass in Roots", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cSoilFast": { + "CMOR_varname": "cSoilFast", + "standard_name": "fast_soil_pool_mass_content_of_carbon", + "long_name": "Carbon Mass in Fast Soil Pool", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cSoilMedium": { + "CMOR_varname": "cSoilMedium", + "standard_name": "medium_soil_pool_mass_content_of_carbon", + "long_name": "Carbon Mass in Medium Soil Pool", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cSoilSlow": { + "CMOR_varname": "cSoilSlow", + "standard_name": "slow_soil_pool_mass_content_of_carbon", + "long_name": "Carbon Mass in Slow Soil Pool", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "cVeg": { + "CMOR_varname": "cVeg", + "standard_name": "vegetation_carbon_content", + "long_name": "Carbon Mass in Vegetation", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "ccb": { + "CMOR_varname": "ccb", + "standard_name": "air_pressure_at_convective_cloud_base", + "long_name": "Air Pressure at Convective Cloud Base", + "mipTable": "Amon", + "units": "Pa" + }, + "ccb": { + "CMOR_varname": "ccb", + "standard_name": "air_pressure_at_convective_cloud_base", + "long_name": "Air Pressure at Convective Cloud Base", + "mipTable": "CFday", + "units": "Pa" + }, + "cct": { + "CMOR_varname": "cct", + "standard_name": "air_pressure_at_convective_cloud_top", + "long_name": "Air Pressure at Convective Cloud Top", + "mipTable": "Amon", + "units": "Pa" + }, + "cct": { + "CMOR_varname": "cct", + "standard_name": "air_pressure_at_convective_cloud_top", + "long_name": "Air Pressure at Convective Cloud Top", + "mipTable": "CFday", + "units": "Pa" + }, + "cfc113global": { + "CMOR_varname": "cfc113global", + "standard_name": "mole_fraction_of_cfc113_in_air", + "long_name": "Global Mean Mole Fraction of CFC113", + "mipTable": "Amon", + "units": "1e-12" + }, + "cfc11global": { + "CMOR_varname": "cfc11global", + "standard_name": "mole_fraction_of_cfc11_in_air", + "long_name": "Global Mean Mole Fraction of CFC11", + "mipTable": "Amon", + "units": "1e-12" + }, + "cfc12global": { + "CMOR_varname": "cfc12global", + "standard_name": "mole_fraction_of_cfc12_in_air", + "long_name": "Global Mean Mole Fraction of CFC12", + "mipTable": "Amon", + "units": "1e-12" + }, + "ch4": { + "CMOR_varname": "ch4", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "Mole Fraction of CH4", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "ch4global": { + "CMOR_varname": "ch4global", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "Global Mean Mole Fraction of CH4", + "mipTable": "Amon", + "units": "1e-09" + }, + "ci": { + "CMOR_varname": "ci", + "standard_name": "convection_time_fraction", + "long_name": "Fraction of Time Convection Occurs", + "mipTable": "Amon", + "units": "1" + }, + "cl": { + "CMOR_varname": "cl", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Cloud Area Fraction", + "mipTable": "Amon", + "units": "%" + }, + "cl": { + "CMOR_varname": "cl", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Cloud Area Fraction in Atmosphere Layer", + "mipTable": "CFday", + "units": "%" + }, + "clc": { + "CMOR_varname": "clc", + "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", + "long_name": "Convective Cloud Area Fraction", + "mipTable": "CF3hr", + "units": "%" + }, + "clc": { + "CMOR_varname": "clc", + "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", + "long_name": "Convective Cloud Area Fraction", + "mipTable": "CFmon", + "units": "%" + }, + "clcalipso": { + "CMOR_varname": "clcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Cloud Fraction", + "mipTable": "CFday", + "units": "%" + }, + "clcalipso": { + "CMOR_varname": "clcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Percentage Cloud Cover", + "mipTable": "CFmon", + "units": "%" + }, + "clhcalipso": { + "CMOR_varname": "clhcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO High Level Cloud Fraction", + "mipTable": "CFday", + "units": "%" + }, + "clhcalipso": { + "CMOR_varname": "clhcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Percentage High Level Cloud", + "mipTable": "CFmon", + "units": "%" + }, + "cli": { + "CMOR_varname": "cli", + "standard_name": "mass_fraction_of_cloud_ice_in_air", + "long_name": "Mass Fraction of Cloud Ice", + "mipTable": "CFday", + "units": "kg kg-1" + }, + "cli": { + "CMOR_varname": "cli", + "standard_name": "mass_fraction_of_cloud_ice_in_air", + "long_name": "Mass Fraction of Cloud Ice", + "mipTable": "Amon", + "units": "kg kg-1" + }, + "clic": { + "CMOR_varname": "clic", + "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", + "long_name": "Mass Fraction of Convective Cloud Ice", + "mipTable": "CF3hr", + "units": "1" + }, + "clic": { + "CMOR_varname": "clic", + "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", + "long_name": "Mass Fraction of Convective Cloud Ice", + "mipTable": "CFmon", + "units": "1" + }, + "clis": { + "CMOR_varname": "clis", + "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Ice", + "mipTable": "CFmon", + "units": "1" + }, + "clis": { + "CMOR_varname": "clis", + "standard_name": "mass_fraction_of_stratiform_cloud_ice_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Ice", + "mipTable": "CF3hr", + "units": "1" + }, + "clivi": { + "CMOR_varname": "clivi", + "standard_name": "atmosphere_mass_content_of_cloud_ice", + "long_name": "Ice Water Path", + "mipTable": "Amon", + "units": "kg m-2" + }, + "clivi": { + "CMOR_varname": "clivi", + "standard_name": "atmosphere_mass_content_of_cloud_ice", + "long_name": "Ice Water Path", + "mipTable": "CFday", + "units": "kg m-2" + }, + "cllcalipso": { + "CMOR_varname": "cllcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Low Level Cloud Fraction", + "mipTable": "CFday", + "units": "%" + }, + "cllcalipso": { + "CMOR_varname": "cllcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Percentage Low Level Cloud", + "mipTable": "CFmon", + "units": "%" + }, + "clmcalipso": { + "CMOR_varname": "clmcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Mid Level Cloud Fraction", + "mipTable": "CFday", + "units": "%" + }, + "clmcalipso": { + "CMOR_varname": "clmcalipso", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "CALIPSO Percentage Mid Level Cloud", + "mipTable": "CFmon", + "units": "%" + }, + "cls": { + "CMOR_varname": "cls", + "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", + "long_name": "Stratiform Cloud Area Fraction", + "mipTable": "CF3hr", + "units": "%" + }, + "cls": { + "CMOR_varname": "cls", + "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", + "long_name": "Stratiform Cloud Area Fraction", + "mipTable": "CFmon", + "units": "%" + }, + "clt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "mipTable": "day", + "units": "%" + }, + "clt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "mipTable": "3hr", + "units": "%" + }, + "clt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "mipTable": "Amon", + "units": "%" + }, + "cltc": { + "CMOR_varname": "cltc", + "standard_name": "convective_cloud_area_fraction", + "long_name": "Convective Cloud Fraction", + "mipTable": "CF3hr", + "units": "%" + }, + "cltcalipso": { + "CMOR_varname": "cltcalipso", + "standard_name": "cloud_area_fraction", + "long_name": "CALIPSO Total Cloud Fraction", + "mipTable": "CFday", + "units": "%" + }, + "cltcalipso": { + "CMOR_varname": "cltcalipso", + "standard_name": "cloud_area_fraction", + "long_name": "CALIPSO Percentage Total Cloud", + "mipTable": "CFmon", + "units": "%" + }, + "cltisccp": { + "CMOR_varname": "cltisccp", + "standard_name": "cloud_area_fraction", + "long_name": "ISCCP Total Total Cloud Fraction", + "mipTable": "CFday", + "units": "%" + }, + "cltisccp": { + "CMOR_varname": "cltisccp", + "standard_name": "cloud_area_fraction", + "long_name": "ISCCP Total Cloud Fraction", + "mipTable": "CFmon", + "units": "%" + }, + "clw": { + "CMOR_varname": "clw", + "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Cloud Liquid Water", + "mipTable": "CFday", + "units": "kg kg-1" + }, + "clw": { + "CMOR_varname": "clw", + "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Cloud Liquid Water", + "mipTable": "Amon", + "units": "kg kg-1" + }, + "clwc": { + "CMOR_varname": "clwc", + "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Convective Cloud Liquid Water", + "mipTable": "CF3hr", + "units": "1" + }, + "clwc": { + "CMOR_varname": "clwc", + "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Convective Cloud Liquid Water", + "mipTable": "CFmon", + "units": "1" + }, + "clws": { + "CMOR_varname": "clws", + "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", + "mipTable": "CF3hr", + "units": "1" + }, + "clws": { + "CMOR_varname": "clws", + "standard_name": "mass_fraction_of_stratiform_cloud_liquid_water_in_air", + "long_name": "Mass Fraction of Stratiform Cloud Liquid Water", + "mipTable": "CFmon", + "units": "1" + }, + "clwvi": { + "CMOR_varname": "clwvi", + "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", + "long_name": "Condensed Water Path", + "mipTable": "CFday", + "units": "kg m-2" + }, + "clwvi": { + "CMOR_varname": "clwvi", + "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", + "long_name": "Condensed Water Path", + "mipTable": "Amon", + "units": "kg m-2" + }, + "co2": { + "CMOR_varname": "co2", + "standard_name": "mole_fraction_of_carbon_dioxide_in_air", + "long_name": "Mole Fraction of CO2", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "co2mass": { + "CMOR_varname": "co2mass", + "standard_name": "atmosphere_mass_of_carbon_dioxide", + "long_name": "Total Atmospheric Mass of CO2", + "mipTable": "Amon", + "units": "kg" + }, + "cropFrac": { + "CMOR_varname": "cropFrac", + "standard_name": "area_fraction", + "long_name": "Percentage Crop Cover", + "mipTable": "Lmon", + "units": "%" + }, + "demc": { + "CMOR_varname": "demc", + "standard_name": "convective_cloud_longwave_emissivity", + "long_name": "Convective Cloud Emissivity", + "mipTable": "CF3hr", + "units": "1" + }, + "dems": { + "CMOR_varname": "dems", + "standard_name": "stratiform_cloud_longwave_emissivity", + "long_name": "Stratiform Cloud Emissivity", + "mipTable": "CF3hr", + "units": "1" + }, + "difmxybo": { + "CMOR_varname": "difmxybo", + "standard_name": "ocean_momentum_xy_biharmonic_diffusivity", + "long_name": "Ocean Momentum XY Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "difmxylo": { + "CMOR_varname": "difmxylo", + "standard_name": "ocean_momentum_xy_laplacian_diffusivity", + "long_name": "Ocean Momentum XY Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "diftrbbo": { + "CMOR_varname": "diftrbbo", + "standard_name": "ocean_tracer_biharmonic_diffusivity_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "Ocean Tracer Bolus Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "diftrblo": { + "CMOR_varname": "diftrblo", + "standard_name": "ocean_tracer_laplacian_diffusivity_due_to_parameterized_mesoscale_eddy_advection", + "long_name": "Ocean Tracer Bolus Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "diftrebo": { + "CMOR_varname": "diftrebo", + "standard_name": "ocean_tracer_epineutral_biharmonic_diffusivity", + "long_name": "Ocean Tracer Epineutral Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "diftrelo": { + "CMOR_varname": "diftrelo", + "standard_name": "ocean_tracer_epineutral_laplacian_diffusivity", + "long_name": "Ocean Tracer Epineutral Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "diftrxybo": { + "CMOR_varname": "diftrxybo", + "standard_name": "ocean_tracer_xy_biharmonic_diffusivity", + "long_name": "Ocean Tracer XY Biharmonic Diffusivity", + "mipTable": "Oclim", + "units": "m4 s-1" + }, + "diftrxylo": { + "CMOR_varname": "diftrxylo", + "standard_name": "ocean_tracer_xy_laplacian_diffusivity", + "long_name": "Ocean Tracer XY Laplacian Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvho": { + "CMOR_varname": "difvho", + "standard_name": "ocean_vertical_heat_diffusivity", + "long_name": "Ocean Vertical Heat Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvmbo": { + "CMOR_varname": "difvmbo", + "standard_name": "ocean_vertical_momentum_diffusivity_due_to_background", + "long_name": "Ocean Vertical Momentum Diffusivity due to Background", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvmfdo": { + "CMOR_varname": "difvmfdo", + "standard_name": "ocean_vertical_momentum_diffusivity_due_to_form_drag", + "long_name": "Ocean Vertical Momentum Diffusivity due to Form Drag", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvmo": { + "CMOR_varname": "difvmo", + "standard_name": "ocean_vertical_momentum_diffusivity", + "long_name": "Ocean Vertical Momentum Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvmto": { + "CMOR_varname": "difvmto", + "standard_name": "ocean_vertical_momentum_diffusivity_due_to_tides", + "long_name": "Ocean Vertical Momentum Diffusivity due to Tides", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvso": { + "CMOR_varname": "difvso", + "standard_name": "ocean_vertical_salt_diffusivity", + "long_name": "Ocean Vertical Salt Diffusivity", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvtrbo": { + "CMOR_varname": "difvtrbo", + "standard_name": "ocean_vertical_tracer_diffusivity_due_to_background", + "long_name": "Ocean Vertical Tracer Diffusivity due to Background", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "difvtrto": { + "CMOR_varname": "difvtrto", + "standard_name": "ocean_vertical_tracer_diffusivity_due_to_tides", + "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", + "mipTable": "Oclim", + "units": "m2 s-1" + }, + "dispkevfo": { + "CMOR_varname": "dispkevfo", + "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_vertical_friction", + "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to Vertical Friction", + "mipTable": "Oclim", + "units": "W m-2" + }, + "dispkexyfo": { + "CMOR_varname": "dispkexyfo", + "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", + "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", + "mipTable": "Oclim", + "units": "W m-2" + }, + "dmc": { + "CMOR_varname": "dmc", + "standard_name": "atmosphere_net_upward_deep_convective_mass_flux", + "long_name": "Deep Convective Mass Flux", + "mipTable": "CFmon", + "units": "kg m-2 s-1" + }, + "dtauc": { + "CMOR_varname": "dtauc", + "standard_name": "atmosphere_optical_thickness_due_to_convective_cloud", + "long_name": "Convective Cloud Optical Depth", + "mipTable": "CF3hr", + "units": "1" + }, + "dtaus": { + "CMOR_varname": "dtaus", + "standard_name": "atmosphere_optical_thickness_due_to_stratiform_cloud", + "long_name": "Stratiform Cloud Optical Depth", + "mipTable": "CF3hr", + "units": "1" + }, + "evspsbl": { + "CMOR_varname": "evspsbl", + "standard_name": "water_evapotranspiration_flux", + "long_name": "Evaporation including Sublimation and Transpiration", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "evspsblsoi": { + "CMOR_varname": "evspsblsoi", + "standard_name": "water_evaporation_flux_from_soil", + "long_name": "Water Evaporation from Soil", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "evspsblveg": { + "CMOR_varname": "evspsblveg", + "standard_name": "water_evaporation_flux_from_canopy", + "long_name": "Evaporation from Canopy", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fFire": { + "CMOR_varname": "fFire", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires_excluding_anthropogenic_land_use_change", + "long_name": "Carbon Mass Flux into Atmosphere due to CO2 Emission from Fire", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fGrazing": { + "CMOR_varname": "fGrazing", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_grazing", + "long_name": "Carbon Mass Flux into Atmosphere due to Grazing on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fHarvest": { + "CMOR_varname": "fHarvest", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting", + "long_name": "Carbon Mass Flux into Atmosphere due to Crop Harvesting", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fLitterSoil": { + "CMOR_varname": "fLitterSoil", + "standard_name": "carbon_mass_flux_into_soil_from_litter", + "long_name": "Total Carbon Mass Flux from Litter to Soil", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fVegLitter": { + "CMOR_varname": "fVegLitter", + "standard_name": "mass_flux_of_carbon_into_litter_from_vegetation", + "long_name": "Total Carbon Mass Flux from Vegetation to Litter", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fVegSoil": { + "CMOR_varname": "fVegSoil", + "standard_name": "carbon_mass_flux_into_soil_from_vegetation_excluding_litter", + "long_name": "Total Carbon Mass Flux from Vegetation Directly to Soil", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "fco2antt": { + "CMOR_varname": "fco2antt", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", + "long_name": "Carbon Mass Flux into Atmosphere Due to All Anthropogenic Emissions of CO2", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "fco2fos": { + "CMOR_varname": "fco2fos", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", + "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "fco2nat": { + "CMOR_varname": "fco2nat", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources", + "long_name": "Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "gpp": { + "CMOR_varname": "gpp", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "grassFrac": { + "CMOR_varname": "grassFrac", + "standard_name": "area_fraction", + "long_name": "Natural Grass Area Percentage", + "mipTable": "Lmon", + "units": "%" + }, + "grpllsprof": { + "CMOR_varname": "grpllsprof", + "standard_name": "stratiform_graupel_flux", + "long_name": "Stratiform Graupel Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "h2o": { + "CMOR_varname": "h2o", + "standard_name": "mass_fraction_of_water_in_air", + "long_name": "Mass Fraction of Water", + "mipTable": "CF3hr", + "units": "1" + }, + "hcfc22global": { + "CMOR_varname": "hcfc22global", + "standard_name": "mole_fraction_of_hcfc22_in_air", + "long_name": "Global Mean Mole Fraction of HCFC22", + "mipTable": "Amon", + "units": "1e-12" + }, + "hfdsn": { + "CMOR_varname": "hfdsn", + "standard_name": "surface_downward_heat_flux_in_snow", + "long_name": "Downward Heat Flux into Snow Where Land over Land", + "mipTable": "LImon", + "units": "W m-2" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "3hr", + "units": "W m-2" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "Amon", + "units": "W m-2" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "day", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "3hr", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "Amon", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "day", + "units": "W m-2" + }, + "hur": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "mipTable": "Amon", + "units": "%" + }, + "hur": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "mipTable": "CFday", + "units": "%" + }, + "hur": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "mipTable": "CFmon", + "units": "%" + }, + "hur": { + "CMOR_varname": "hur", + "standard_name": "relative_humidity", + "long_name": "Relative Humidity", + "mipTable": "day", + "units": "%" + }, + "hurs": { + "CMOR_varname": "hurs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "mipTable": "Amon", + "units": "%" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "6hrLev", + "units": "1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "Amon", + "units": "1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "CFday", + "units": "1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "CFmon", + "units": "1" + }, + "hus": { + "CMOR_varname": "hus", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "day", + "units": "1" + }, + "huss": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "mipTable": "Amon", + "units": "1" + }, + "huss": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "mipTable": "day", + "units": "1" + }, + "huss": { + "CMOR_varname": "huss", + "standard_name": "specific_humidity", + "long_name": "Near-Surface Specific Humidity", + "mipTable": "3hr", + "units": "1" + }, + "lai": { + "CMOR_varname": "lai", + "standard_name": "leaf_area_index", + "long_name": "Leaf Area Index", + "mipTable": "Lmon", + "units": "1" + }, + "landCoverFrac": { + "CMOR_varname": "landCoverFrac", + "standard_name": "area_fraction", + "long_name": "Percentage of Area by Vegetation/Land Cover Category", + "mipTable": "Lmon", + "units": "%" + }, + "lwsnl": { + "CMOR_varname": "lwsnl", + "standard_name": "liquid_water_content_of_surface_snow", + "long_name": "Liquid Water Content of Snow Layer", + "mipTable": "LImon", + "units": "kg m-2" + }, + "mc": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "mc": { + "CMOR_varname": "mc", + "standard_name": "atmosphere_net_upward_convective_mass_flux", + "long_name": "Convective Mass Flux", + "mipTable": "CFday", + "units": "kg m-2 s-1" + }, + "mcd": { + "CMOR_varname": "mcd", + "standard_name": "atmosphere_downdraft_convective_mass_flux", + "long_name": "Downdraft Convective Mass Flux", + "mipTable": "CFmon", + "units": "kg m-2 s-1" + }, + "mcu": { + "CMOR_varname": "mcu", + "standard_name": "atmosphere_updraft_convective_mass_flux", + "long_name": "Updraft Convective Mass Flux", + "mipTable": "CFmon", + "units": "kg m-2 s-1" + }, + "mrfso": { + "CMOR_varname": "mrfso", + "standard_name": "soil_frozen_water_content", + "long_name": "Soil Frozen Water Content", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "mrro": { + "CMOR_varname": "mrro", + "standard_name": "runoff_flux", + "long_name": "Total Runoff", + "mipTable": "3hr", + "units": "kg m-2 s-1" + }, + "mrro": { + "CMOR_varname": "mrro", + "standard_name": "runoff_flux", + "long_name": "Total Runoff", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "mrro": { + "CMOR_varname": "mrro", + "standard_name": "runoff_flux", + "long_name": "Total Runoff", + "mipTable": "day", + "units": "kg m-2 s-1" + }, + "mrros": { + "CMOR_varname": "mrros", + "standard_name": "surface_runoff_flux", + "long_name": "Surface Runoff", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "mrso": { + "CMOR_varname": "mrso", + "standard_name": "mass_content_of_water_in_soil", + "long_name": "Total Soil Moisture Content", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "mrsofc": { + "CMOR_varname": "mrsofc", + "standard_name": "soil_moisture_content_at_field_capacity", + "long_name": "Capacity of Soil to Store Water", + "mipTable": "fx", + "units": "kg m-2" + }, + "mrsos": { + "CMOR_varname": "mrsos", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column", + "mipTable": "3hr", + "units": "kg m-2" + }, + "mrsos": { + "CMOR_varname": "mrsos", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column", + "mipTable": "Lmon", + "units": "kg m-2" + }, + "mrsos": { + "CMOR_varname": "mrsos", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column", + "mipTable": "day", + "units": "kg m-2" + }, + "n2o": { + "CMOR_varname": "n2o", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "Mole Fraction of N2O", + "mipTable": "Amon", + "units": "mol mol-1" + }, + "n2oglobal": { + "CMOR_varname": "n2oglobal", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "Global Mean Mole Fraction of N2O", + "mipTable": "Amon", + "units": "1e-09" + }, + "nbp": { + "CMOR_varname": "nbp", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", + "long_name": "Carbon Mass Flux out of Atmosphere due to Net Biospheric Production on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "npp": { + "CMOR_varname": "npp", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "nppLeaf": { + "CMOR_varname": "nppLeaf", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_leaves", + "long_name": "Carbon Mass Flux due to NPP Allocation to Leaf", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "nppRoot": { + "CMOR_varname": "nppRoot", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_roots", + "long_name": "Carbon Mass Flux due to NPP Allocation to Roots", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "nppWood": { + "CMOR_varname": "nppWood", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_wood", + "long_name": "Carbon Mass Flux due to NPP Allocation to Wood", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "omldamax": { + "CMOR_varname": "omldamax", + "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", + "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", + "mipTable": "Oday", + "units": "m" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "mipTable": "fx", + "units": "m" + }, + "pastureFrac": { + "CMOR_varname": "pastureFrac", + "standard_name": "area_fraction", + "long_name": "Percentage of Land which is Anthropogenic Pasture", + "mipTable": "Lmon", + "units": "%" + }, + "pctisccp": { + "CMOR_varname": "pctisccp", + "standard_name": "air_pressure_at_cloud_top", + "long_name": "ISCCP Mean Cloud Top Pressure", + "mipTable": "CFday", + "units": "Pa" + }, + "pctisccp": { + "CMOR_varname": "pctisccp", + "standard_name": "air_pressure_at_cloud_top", + "long_name": "ISCCP Mean Cloud Top Pressure", + "mipTable": "CFmon", + "units": "Pa" + }, + "pflw": { + "CMOR_varname": "pflw", + "standard_name": "liquid_water_content_of_permafrost_layer", + "long_name": "Liquid Water Content of Permafrost Layer", + "mipTable": "LImon", + "units": "kg m-2" + }, + "pfull": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Pressure at Model Full-Levels", + "mipTable": "CF3hr", + "units": "Pa" + }, + "pfull": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Levels", + "mipTable": "Amon", + "units": "Pa" + }, + "pfull": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Levels", + "mipTable": "CFday", + "units": "Pa" + }, + "phalf": { + "CMOR_varname": "phalf", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Half-Levels", + "mipTable": "Amon", + "units": "Pa" + }, + "phalf": { + "CMOR_varname": "phalf", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Half-Levels", + "mipTable": "CFday", + "units": "Pa" + }, + "phalf": { + "CMOR_varname": "phalf", + "standard_name": "air_pressure", + "long_name": "Pressure on Model Half-Levels", + "mipTable": "CF3hr", + "units": "Pa" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "3hr", + "units": "kg m-2 s-1" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "day", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "day", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "3hr", + "units": "kg m-2 s-1" + }, + "prcprof": { + "CMOR_varname": "prcprof", + "standard_name": "convective_rainfall_flux", + "long_name": "Convective Rainfall Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prlsns": { + "CMOR_varname": "prlsns", + "standard_name": "stratiform_snowfall_flux", + "long_name": "Stratiform Snowfall Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prlsprof": { + "CMOR_varname": "prlsprof", + "standard_name": "stratiform_rainfall_flux", + "long_name": "Stratiform Rainfall Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "3hr", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "day", + "units": "kg m-2 s-1" + }, + "prsnc": { + "CMOR_varname": "prsnc", + "standard_name": "convective_snowfall_flux", + "long_name": "Convective Snowfall Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prveg": { + "CMOR_varname": "prveg", + "standard_name": "precipitation_flux_onto_canopy", + "long_name": "Precipitation onto Canopy", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "prw": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_mass_content_of_water_vapor", + "long_name": "Water Vapor Path", + "mipTable": "Amon", + "units": "kg m-2" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "mipTable": "6hrLev", + "units": "Pa" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "mipTable": "CFday", + "units": "Pa" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "mipTable": "3hr", + "units": "Pa" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Air Pressure", + "mipTable": "Amon", + "units": "Pa" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "Amon", + "units": "Pa" + }, + "psl": { + "CMOR_varname": "psl", + "standard_name": "air_pressure_at_mean_sea_level", + "long_name": "Sea Level Pressure", + "mipTable": "day", + "units": "Pa" + }, + "rGrowth": { + "CMOR_varname": "rGrowth", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_for_biomass_growth", + "long_name": "Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "rMaint": { + "CMOR_varname": "rMaint", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_for_biomass_maintenance", + "long_name": "Carbon Mass Flux into Atmosphere due to Maintenance Autotrophic Respiration on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "ra": { + "CMOR_varname": "ra", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", + "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "reffclic": { + "CMOR_varname": "reffclic", + "standard_name": "effective_radius_of_convective_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Ice", + "mipTable": "CF3hr", + "units": "m" + }, + "reffclis": { + "CMOR_varname": "reffclis", + "standard_name": "effective_radius_of_stratiform_cloud_ice_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Ice", + "mipTable": "CF3hr", + "units": "m" + }, + "reffclwc": { + "CMOR_varname": "reffclwc", + "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", + "mipTable": "CF3hr", + "units": "m" + }, + "reffclws": { + "CMOR_varname": "reffclws", + "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", + "mipTable": "CF3hr", + "units": "m" + }, + "reffgrpls": { + "CMOR_varname": "reffgrpls", + "standard_name": "effective_radius_of_stratiform_cloud_graupel_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Graupel", + "mipTable": "CF3hr", + "units": "m" + }, + "reffrainc": { + "CMOR_varname": "reffrainc", + "standard_name": "effective_radius_of_convective_cloud_rain_particle", + "long_name": "Hydrometeor Effective Radius of Convective Rainfall", + "mipTable": "CF3hr", + "units": "m" + }, + "reffrains": { + "CMOR_varname": "reffrains", + "standard_name": "effective_radius_of_stratiform_cloud_rain_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Rainfall", + "mipTable": "CF3hr", + "units": "m" + }, + "reffsnowc": { + "CMOR_varname": "reffsnowc", + "standard_name": "effective_radius_of_convective_cloud_snow_particle", + "long_name": "Hydrometeor Effective Radius of Convective Snowfall", + "mipTable": "CF3hr", + "units": "m" + }, + "reffsnows": { + "CMOR_varname": "reffsnows", + "standard_name": "effective_radius_of_stratiform_cloud_snow_particle", + "long_name": "Hydrometeor Effective Radius of Stratiform Snowfall", + "mipTable": "CF3hr", + "units": "m" + }, + "residualFrac": { + "CMOR_varname": "residualFrac", + "standard_name": "area_fraction", + "long_name": "Percentage of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", + "mipTable": "Lmon", + "units": "%" + }, + "rh": { + "CMOR_varname": "rh", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", + "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "rld4co2": { + "CMOR_varname": "rld4co2", + "standard_name": "downwelling_longwave_flux_in_air", + "long_name": "Downwelling Longwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rld": { + "CMOR_varname": "rld", + "standard_name": "downwelling_longwave_flux_in_air", + "long_name": "Downwelling Longwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rldcs4co2": { + "CMOR_varname": "rldcs4co2", + "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rldcs": { + "CMOR_varname": "rldcs", + "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Longwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "rldscs": { + "CMOR_varname": "rldscs", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rldscs": { + "CMOR_varname": "rldscs", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rldscs": { + "CMOR_varname": "rldscs", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rlu4co2": { + "CMOR_varname": "rlu4co2", + "standard_name": "upwelling_longwave_flux_in_air", + "long_name": "Upwelling Longwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlu": { + "CMOR_varname": "rlu", + "standard_name": "upwelling_longwave_flux_in_air", + "long_name": "Upwelling Longwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlucs4co2": { + "CMOR_varname": "rlucs4co2", + "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlucs": { + "CMOR_varname": "rlucs", + "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Longwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rlut4co2": { + "CMOR_varname": "rlut4co2", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rlutcs4co2": { + "CMOR_varname": "rlutcs4co2", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rlutcs": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rlutcs": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rootd": { + "CMOR_varname": "rootd", + "standard_name": "root_depth", + "long_name": "Maximum Root Depth", + "mipTable": "fx", + "units": "m" + }, + "rsd4co2": { + "CMOR_varname": "rsd4co2", + "standard_name": "downwelling_shortwave_flux_in_air", + "long_name": "Downwelling Shortwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsd": { + "CMOR_varname": "rsd", + "standard_name": "downwelling_shortwave_flux_in_air", + "long_name": "Downwelling Shortwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsdcs4co2": { + "CMOR_varname": "rsdcs4co2", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsdcs": { + "CMOR_varname": "rsdcs", + "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "rsdscs": { + "CMOR_varname": "rsdscs", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsdscs": { + "CMOR_varname": "rsdscs", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rsdscs": { + "CMOR_varname": "rsdscs", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rsdsdiff": { + "CMOR_varname": "rsdsdiff", + "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", + "long_name": "Surface Diffuse Downwelling Shortwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rsu4co2": { + "CMOR_varname": "rsu4co2", + "standard_name": "upwelling_shortwave_flux_in_air", + "long_name": "Upwelling Shortwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsu": { + "CMOR_varname": "rsu", + "standard_name": "upwelling_shortwave_flux_in_air", + "long_name": "Upwelling Shortwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsucs4co2": { + "CMOR_varname": "rsucs4co2", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsucs": { + "CMOR_varname": "rsucs", + "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "rsuscs": { + "CMOR_varname": "rsuscs", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "3hr", + "units": "W m-2" + }, + "rsuscs": { + "CMOR_varname": "rsuscs", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsuscs": { + "CMOR_varname": "rsuscs", + "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rsut4co2": { + "CMOR_varname": "rsut4co2", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsutcs4co2": { + "CMOR_varname": "rsutcs4co2", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", + "mipTable": "CFmon", + "units": "W m-2" + }, + "rsutcs": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "mipTable": "Amon", + "units": "W m-2" + }, + "rsutcs": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "mipTable": "CFday", + "units": "W m-2" + }, + "rtmt": { + "CMOR_varname": "rtmt", + "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", + "long_name": "Net Downward Flux at Top of Model", + "mipTable": "Amon", + "units": "W m-2" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "Amon", + "units": "kg m-2 s-1" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "sci": { + "CMOR_varname": "sci", + "standard_name": "shallow_convection_time_fraction", + "long_name": "Fraction of Time Shallow Convection Occurs", + "mipTable": "Amon", + "units": "1" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Near-Surface Wind Speed", + "mipTable": "Amon", + "units": "m s-1" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Daily-Mean Near-Surface Wind Speed", + "mipTable": "day", + "units": "m s-1" + }, + "sfcWindmax": { + "CMOR_varname": "sfcWindmax", + "standard_name": "wind_speed", + "long_name": "Daily Maximum Near-Surface Wind Speed", + "mipTable": "day", + "units": "m s-1" + }, + "sftgif": { + "CMOR_varname": "sftgif", + "standard_name": "land_ice_area_fraction", + "long_name": "Fraction of Grid Cell Covered with Glacier", + "mipTable": "fx", + "units": "%" + }, + "sftlf": { + "CMOR_varname": "sftlf", + "standard_name": "land_area_fraction", + "long_name": "Land Area Fraction", + "mipTable": "fx", + "units": "%" + }, + "shrubFrac": { + "CMOR_varname": "shrubFrac", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by Shrub", + "mipTable": "Lmon", + "units": "%" + }, + "smc": { + "CMOR_varname": "smc", + "standard_name": "atmosphere_net_upward_shallow_convective_mass_flux", + "long_name": "Shallow Convective Mass Flux", + "mipTable": "CFmon", + "units": "kg m-2 s-1" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "Snow Area Fraction", + "mipTable": "LImon", + "units": "%" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "Snow Area Fraction", + "mipTable": "day", + "units": "%" + }, + "snd": { + "CMOR_varname": "snd", + "standard_name": "surface_snow_thickness", + "long_name": "Snow Depth", + "mipTable": "LImon", + "units": "m" + }, + "snm": { + "CMOR_varname": "snm", + "standard_name": "surface_snow_melt_flux", + "long_name": "Surface Snow Melt", + "mipTable": "LImon", + "units": "kg m-2 s-1" + }, + "snw": { + "CMOR_varname": "snw", + "standard_name": "surface_snow_amount", + "long_name": "Surface Snow Amount", + "mipTable": "LImon", + "units": "kg m-2" + }, + "snw": { + "CMOR_varname": "snw", + "standard_name": "surface_snow_amount", + "long_name": "Surface Snow Amount", + "mipTable": "day", + "units": "kg m-2" + }, + "sootsn": { + "CMOR_varname": "sootsn", + "standard_name": "soot_content_of_surface_snow", + "long_name": "Snow Soot Content", + "mipTable": "LImon", + "units": "kg m-2" + }, + "ta700": { + "CMOR_varname": "ta700", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "CFday", + "units": "K" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "6hrLev", + "units": "K" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "Amon", + "units": "K" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "CF3hr", + "units": "K" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "CFday", + "units": "K" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "CFmon", + "units": "K" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "day", + "units": "K" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature", + "mipTable": "3hr", + "units": "K" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature", + "mipTable": "Amon", + "units": "K" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Near-Surface Air Temperature", + "mipTable": "day", + "units": "K" + }, + "tasmax": { + "CMOR_varname": "tasmax", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature", + "mipTable": "Amon", + "units": "K" + }, + "tasmax": { + "CMOR_varname": "tasmax", + "standard_name": "air_temperature", + "long_name": "Daily Maximum Near-Surface Air Temperature", + "mipTable": "day", + "units": "K" + }, + "tasmin": { + "CMOR_varname": "tasmin", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature", + "mipTable": "Amon", + "units": "K" + }, + "tasmin": { + "CMOR_varname": "tasmin", + "standard_name": "air_temperature", + "long_name": "Daily Minimum Near-Surface Air Temperature", + "mipTable": "day", + "units": "K" + }, + "tauu": { + "CMOR_varname": "tauu", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "mipTable": "Amon", + "units": "Pa" + }, + "tauv": { + "CMOR_varname": "tauv", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "mipTable": "Amon", + "units": "Pa" + }, + "thkcello": { + "CMOR_varname": "thkcello", + "standard_name": "cell_thickness", + "long_name": "Ocean Model Cell Thickness", + "mipTable": "Ofx", + "units": "m" + }, + "tnhus": { + "CMOR_varname": "tnhus", + "standard_name": "tendency_of_specific_humidity", + "long_name": "Tendency of Specific Humidity", + "mipTable": "CFmon", + "units": "s-1" + }, + "tnhusa": { + "CMOR_varname": "tnhusa", + "standard_name": "tendency_of_specific_humidity_due_to_advection", + "long_name": "Tendency of Specific Humidity due to Advection", + "mipTable": "CFmon", + "units": "s-1" + }, + "tnhusc": { + "CMOR_varname": "tnhusc", + "standard_name": "tendency_of_specific_humidity_due_to_convection", + "long_name": "Tendency of Specific Humidity due to Convection", + "mipTable": "CFmon", + "units": "s-1" + }, + "tnhusd": { + "CMOR_varname": "tnhusd", + "standard_name": "tendency_of_specific_humidity_due_to_diffusion", + "long_name": "Tendency of Specific Humidity due to Numerical Diffusion", + "mipTable": "CFmon", + "units": "s-1" + }, + "tnhusmp": { + "CMOR_varname": "tnhusmp", + "standard_name": "tendency_of_specific_humidity_due_to_model_physics", + "long_name": "Tendency of Specific Humidity due to Model Physics", + "mipTable": "CFmon", + "units": "s-1" + }, + "tnhusscpbl": { + "CMOR_varname": "tnhusscpbl", + "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", + "long_name": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", + "mipTable": "CFmon", + "units": "s-1" + }, + "tnkebto": { + "CMOR_varname": "tnkebto", + "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_parameterized_eddy_advection", + "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", + "mipTable": "Oclim", + "units": "W m-2" + }, + "tnpeo": { + "CMOR_varname": "tnpeo", + "standard_name": "tendency_of_ocean_potential_energy_content", + "long_name": "Tendency of Ocean Potential Energy Content", + "mipTable": "Oclim", + "units": "W m-2" + }, + "tnpeot": { + "CMOR_varname": "tnpeot", + "standard_name": "tendency_of_ocean_potential_energy_content_due_to_tides", + "long_name": "Tendency of Ocean Potential Energy Content due to Tides", + "mipTable": "Oclim", + "units": "W m-2" + }, + "tnpeotb": { + "CMOR_varname": "tnpeotb", + "standard_name": "tendency_of_ocean_potential_energy_content_due_to_background", + "long_name": "Tendency of Ocean Potential Energy Content due to Background", + "mipTable": "Oclim", + "units": "W m-2" + }, + "tnt": { + "CMOR_varname": "tnt", + "standard_name": "tendency_of_air_temperature", + "long_name": "Tendency of Air Temperature", + "mipTable": "CFmon", + "units": "K s-1" + }, + "tnta": { + "CMOR_varname": "tnta", + "standard_name": "tendency_of_air_temperature_due_to_advection", + "long_name": "Tendency of Air Temperature due to Advection", + "mipTable": "CFmon", + "units": "K s-1" + }, + "tntc": { + "CMOR_varname": "tntc", + "standard_name": "tendency_of_air_temperature_due_to_convection", + "long_name": "Tendency of Air Temperature due to Convection", + "mipTable": "CFmon", + "units": "K s-1" + }, + "tntmp": { + "CMOR_varname": "tntmp", + "standard_name": "tendency_of_air_temperature_due_to_model_physics", + "long_name": "Tendency of Air Temperature due to Model Physics", + "mipTable": "CFmon", + "units": "K s-1" + }, + "tntr": { + "CMOR_varname": "tntr", + "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", + "long_name": "Tendency of Air Temperature due to Radiative Heating", + "mipTable": "CFmon", + "units": "K s-1" + }, + "tntscpbl": { + "CMOR_varname": "tntscpbl", + "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", + "long_name": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", + "mipTable": "CFmon", + "units": "K s-1" + }, + "tpf": { + "CMOR_varname": "tpf", + "standard_name": "permafrost_layer_thickness", + "long_name": "Permafrost Layer Thickness", + "mipTable": "LImon", + "units": "m" + }, + "tran": { + "CMOR_varname": "tran", + "standard_name": "transpiration_flux", + "long_name": "Transpiration", + "mipTable": "Lmon", + "units": "kg m-2 s-1" + }, + "treeFrac": { + "CMOR_varname": "treeFrac", + "standard_name": "area_fraction", + "long_name": "Tree Cover Fraction", + "mipTable": "Lmon", + "units": "%" + }, + "treeFracPrimDec": { + "CMOR_varname": "treeFracPrimDec", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by Primary Deciduous Tree", + "mipTable": "Lmon", + "units": "%" + }, + "treeFracPrimEver": { + "CMOR_varname": "treeFracPrimEver", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by Primary Evergreen Trees", + "mipTable": "Lmon", + "units": "%" + }, + "treeFracSecDec": { + "CMOR_varname": "treeFracSecDec", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by Secondary Deciduous Trees", + "mipTable": "Lmon", + "units": "%" + }, + "treeFracSecEver": { + "CMOR_varname": "treeFracSecEver", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by Secondary Evergreen Trees", + "mipTable": "Lmon", + "units": "%" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "Amon", + "units": "K" + }, + "tsl": { + "CMOR_varname": "tsl", + "standard_name": "soil_temperature", + "long_name": "Temperature of Soil", + "mipTable": "Lmon", + "units": "K" + }, + "tslsi": { + "CMOR_varname": "tslsi", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature Where Land or Sea Ice", + "mipTable": "day", + "units": "K" + }, + "tslsi": { + "CMOR_varname": "tslsi", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature Where Land or Sea Ice", + "mipTable": "3hr", + "units": "K" + }, + "tos": { + "CMOR_varname": "tos", + "standard_name": "sea_surface_temperature", + "long_name": "Sea Surface Temperature", + "mipTable": "3hr", + "units": "degC" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "6hrLev", + "units": "m s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "Amon", + "units": "m s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "CFday", + "units": "m s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "day", + "units": "m s-1" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind Speed", + "mipTable": "3hr", + "units": "m s-1" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "mipTable": "Amon", + "units": "m s-1" + }, + "uas": { + "CMOR_varname": "uas", + "standard_name": "eastward_wind", + "long_name": "Eastward Near-Surface Wind", + "mipTable": "day", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "6hrLev", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "Amon", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "CFday", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "day", + "units": "m s-1" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "mipTable": "Amon", + "units": "m s-1" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind", + "mipTable": "day", + "units": "m s-1" + }, + "vas": { + "CMOR_varname": "vas", + "standard_name": "northward_wind", + "long_name": "Northward Near-Surface Wind Speed", + "mipTable": "3hr", + "units": "m s-1" + }, + "volcello": { + "CMOR_varname": "volcello", + "standard_name": "ocean_volume", + "long_name": "Ocean Grid-Cell Volume", + "mipTable": "Ofx", + "units": "m3" + }, + "wap500": { + "CMOR_varname": "wap500", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "CFday", + "units": "Pa s-1" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "Amon", + "units": "Pa s-1" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "CFday", + "units": "Pa s-1" + }, + "wap": { + "CMOR_varname": "wap", + "standard_name": "lagrangian_tendency_of_air_pressure", + "long_name": "omega (=dp/dt)", + "mipTable": "day", + "units": "Pa s-1" + }, + "zfull": { + "CMOR_varname": "zfull", + "standard_name": "height_above_reference_ellipsoid", + "long_name": "Altitude of Model Full-Levels", + "mipTable": "CF3hr", + "units": "m" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "Amon", + "units": "m" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "CFday", + "units": "m" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "day", + "units": "m" + }, + "zhalf": { + "CMOR_varname": "zhalf", + "standard_name": "height_above_reference_ellipsoid", + "long_name": "Altitude of Model Half-Levels", + "mipTable": "CF3hr", + "units": "m" + }, + "nLitterSurf": { + "CMOR_varname": "nLitterSurf", + "standard_name": "surface_litter_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in above ground litter (non CWD)", + "mipTable": "Emon", + "units": "kg m-2" + }, + "nLitterSubSurf": { + "CMOR_varname": "nLitterSubSurf", + "standard_name": "subsurface_litter_mass_content_of_nitrogen", + "long_name": "Nitrogen Mass in below ground litter (non CWD)", + "mipTable": "Emon", + "units": "kg m-2" + }, + "tsland": { + "CMOR_varname": "tsland", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "Eday", + "units": "K" + }, + "dissicnatos": { + "CMOR_varname": "dissicnatos", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", + "long_name": "Surface Natural Dissolved Inorganic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissicabioos": { + "CMOR_varname": "dissicabioos", + "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", + "long_name": "Surface Abiotic Dissolved Inorganic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissi14cabioos": { + "CMOR_varname": "dissi14cabioos", + "standard_name": "mole_concentration_of_dissolved_inorganic_14C_in_sea_water", + "long_name": "Surface Abiotic Dissolved Inorganic 14Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissi13cos": { + "CMOR_varname": "dissi13cos", + "standard_name": "mole_concentration_of_dissolved_inorganic_13C_in_sea_water", + "long_name": "Surface Dissolved Inorganic 13Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissocos": { + "CMOR_varname": "dissocos", + "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", + "long_name": "Surface Dissolved Organic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phycos": { + "CMOR_varname": "phycos", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Phytoplankton Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zoocos": { + "CMOR_varname": "zoocos", + "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Zooplankton Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "baccos": { + "CMOR_varname": "baccos", + "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", + "long_name": "Surface Bacterial Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "detocos": { + "CMOR_varname": "detocos", + "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", + "long_name": "Surface Detrital Organic Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "calcos": { + "CMOR_varname": "calcos", + "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Surface Calcite Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "aragos": { + "CMOR_varname": "aragos", + "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Surface Aragonite Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phydiatos": { + "CMOR_varname": "phydiatos", + "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Diatoms expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phydiazos": { + "CMOR_varname": "phydiazos", + "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Diazotrophs expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phycalcos": { + "CMOR_varname": "phycalcos", + "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phypicoos": { + "CMOR_varname": "phypicoos", + "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Picophytoplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phymiscos": { + "CMOR_varname": "phymiscos", + "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zmicroos": { + "CMOR_varname": "zmicroos", + "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Microzooplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zmesoos": { + "CMOR_varname": "zmesoos", + "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Mesozooplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zmiscos": { + "CMOR_varname": "zmiscos", + "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Surface Mole Concentration of Other Zooplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "talkos": { + "CMOR_varname": "talkos", + "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Surface Total Alkalinity", + "mipTable": "Omon", + "units": "mol m-3" + }, + "talknatos": { + "CMOR_varname": "talknatos", + "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", + "long_name": "Surface Natural Total Alkalinity", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phos": { + "CMOR_varname": "phos", + "standard_name": "sea_water_ph_reported_on_total_scale", + "long_name": "Surface pH", + "mipTable": "Omon", + "units": "1" + }, + "phnatos": { + "CMOR_varname": "phnatos", + "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", + "long_name": "Surface Natural pH", + "mipTable": "Omon", + "units": "1" + }, + "phabioos": { + "CMOR_varname": "phabioos", + "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", + "long_name": "Surface Abiotic pH", + "mipTable": "Omon", + "units": "1" + }, + "o2os": { + "CMOR_varname": "o2os", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", + "long_name": "Surface Dissolved Oxygen Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "o2satos": { + "CMOR_varname": "o2satos", + "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", + "long_name": "Surface Dissolved Oxygen Concentration at Saturation", + "mipTable": "Omon", + "units": "mol m-3" + }, + "no3os": { + "CMOR_varname": "no3os", + "standard_name": "mole_concentration_of_nitrate_in_sea_water", + "long_name": "Surface Dissolved Nitrate Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "nh4os": { + "CMOR_varname": "nh4os", + "standard_name": "mole_concentration_of_ammonium_in_sea_water", + "long_name": "Surface Dissolved Ammonium Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "po4os": { + "CMOR_varname": "po4os", + "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", + "long_name": "Surface Total Dissolved Inorganic Phosphorus Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dfeos": { + "CMOR_varname": "dfeos", + "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", + "long_name": "Surface Dissolved Iron Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "sios": { + "CMOR_varname": "sios", + "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", + "long_name": "Surface Total Dissolved Inorganic Silicon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "chlos": { + "CMOR_varname": "chlos", + "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chldiatos": { + "CMOR_varname": "chldiatos", + "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Diatoms expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chldiazos": { + "CMOR_varname": "chldiazos", + "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chlcalcos": { + "CMOR_varname": "chlcalcos", + "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chlpicoos": { + "CMOR_varname": "chlpicoos", + "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "chlmiscos": { + "CMOR_varname": "chlmiscos", + "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", + "long_name": "Surface Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", + "mipTable": "Omon", + "units": "kg m-3" + }, + "ponos": { + "CMOR_varname": "ponos", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", + "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "popos": { + "CMOR_varname": "popos", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", + "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "bfeos": { + "CMOR_varname": "bfeos", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", + "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "bsios": { + "CMOR_varname": "bsios", + "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_silicon_in_sea_water", + "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phynos": { + "CMOR_varname": "phynos", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", + "long_name": "Surface Mole Concentration of Phytoplankton Nitrogen in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phypos": { + "CMOR_varname": "phypos", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", + "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phyfeos": { + "CMOR_varname": "phyfeos", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", + "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Iron in Sea Water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "physios": { + "CMOR_varname": "physios", + "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", + "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dmsos": { + "CMOR_varname": "dmsos", + "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", + "long_name": "Surface Mole Concentration of Dimethyl Sulphide in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3os": { + "CMOR_varname": "co3os", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", + "long_name": "Surface Carbonate Ion Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3natos": { + "CMOR_varname": "co3natos", + "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", + "long_name": "Surface Natural Carbonate Ion Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3abioos": { + "CMOR_varname": "co3abioos", + "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", + "long_name": "Surface Abiotic Carbonate Ion Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3satcalcos": { + "CMOR_varname": "co3satcalcos", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", + "long_name": "Surface Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3sataragos": { + "CMOR_varname": "co3sataragos", + "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", + "long_name": "Surface Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "dissi13c": { + "CMOR_varname": "dissi13c", + "standard_name": "mole_concentration_of_dissolved_inorganic_13C_in_sea_water", + "long_name": "Dissolved Inorganic 13Carbon Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zmicro": { + "CMOR_varname": "zmicro", + "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zmisc": { + "CMOR_varname": "zmisc", + "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Other Zooplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "phabio": { + "CMOR_varname": "phabio", + "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", + "long_name": "Abiotic pH", + "mipTable": "Omon", + "units": "1" + }, + "intppnitrate": { + "CMOR_varname": "intppnitrate", + "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_due_to_nitrate_utilization", + "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "epn100": { + "CMOR_varname": "epn100", + "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", + "long_name": "Downward Flux of Particulate Nitrogen", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "epp100": { + "CMOR_varname": "epp100", + "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", + "long_name": "Downward Flux of Particulate Phosphorus", + "mipTable": "Omon", + "units": "mol m-2 s-1" + }, + "intdic": { + "CMOR_varname": "intdic", + "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", + "long_name": "Dissolved Inorganic Carbon Content", + "mipTable": "Omon", + "units": "kg m-2" + }, + "intdoc": { + "CMOR_varname": "intdoc", + "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", + "long_name": "Dissolved Organic Carbon Content", + "mipTable": "Omon", + "units": "kg m-2" + }, + "spco2nat": { + "CMOR_varname": "spco2nat", + "standard_name": "surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Natural Surface Aqueous Partial Pressure of CO2", + "mipTable": "Omon", + "units": "Pa" + }, + "spco2abio": { + "CMOR_varname": "spco2abio", + "standard_name": "surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Abiotic Surface Aqueous Partial Pressure of CO2", + "mipTable": "Omon", + "units": "Pa" + }, + "dpco2nat": { + "CMOR_varname": "dpco2nat", + "standard_name": "surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Natural Delta PCO2", + "mipTable": "Omon", + "units": "Pa" + }, + "dpco2abio": { + "CMOR_varname": "dpco2abio", + "standard_name": "surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air", + "long_name": "Abiotic Delta PCO2", + "mipTable": "Omon", + "units": "Pa" + }, + "dissi13c": { + "CMOR_varname": "dissi13c", + "standard_name": "mole_concentration_of_dissolved_inorganic_13C_in_sea_water", + "long_name": "Dissolved Inorganic 13Carbon Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "zmicro": { + "CMOR_varname": "zmicro", + "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "zmeso": { + "CMOR_varname": "zmeso", + "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "zmeso": { + "CMOR_varname": "zmeso", + "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in sea water", + "mipTable": "Omon", + "units": "mol m-3" + }, + "zmisc": { + "CMOR_varname": "zmisc", + "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", + "long_name": "Mole Concentration of Other Zooplankton expressed as Carbon in sea water", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "phnat": { + "CMOR_varname": "phnat", + "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", + "long_name": "Natural pH", + "mipTable": "Oyr", + "units": "1" + }, + "phnat": { + "CMOR_varname": "phnat", + "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", + "long_name": "Natural pH", + "mipTable": "Omon", + "units": "1" + }, + "phabio": { + "CMOR_varname": "phabio", + "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", + "long_name": "Abiotic pH", + "mipTable": "Oyr", + "units": "1" + }, + "co3nat": { + "CMOR_varname": "co3nat", + "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", + "long_name": "Natural Carbonate Ion Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "co3nat": { + "CMOR_varname": "co3nat", + "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", + "long_name": "Natural Carbonate Ion Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "co3abio": { + "CMOR_varname": "co3abio", + "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", + "long_name": "Abiotic Carbonate Ion Concentration", + "mipTable": "Oyr", + "units": "mol m-3" + }, + "co3abio": { + "CMOR_varname": "co3abio", + "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", + "long_name": "Abiotic Carbonate Ion Concentration", + "mipTable": "Omon", + "units": "mol m-3" + }, + "fgco2": { + "CMOR_varname": "fgco2", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", + "long_name": "Surface Downward Flux of Total CO2", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "fgco2nat": { + "CMOR_varname": "fgco2nat", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Natural CO2", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "fgco2abio": { + "CMOR_varname": "fgco2abio", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Abiotic CO2", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "fg14co2abio": { + "CMOR_varname": "fg14co2abio", + "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Abiotic 14CO2", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "fg13co2": { + "CMOR_varname": "fg13co2", + "standard_name": "surface_downward_mass_flux_of_13C_dioxide_abiotic_analogue_expressed_as_13C", + "long_name": "Surface Downward Flux of Abiotic 13CO2", + "mipTable": "Oyr", + "units": "kg m-2 s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "Emon", + "units": "m s-1" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "Emon", + "units": "m s-1" + }, + "flandice": { + "CMOR_varname": "flandice", + "standard_name": "water_flux_into_sea_water_from_land_ice", + "long_name": "Water flux into Sea Water from Land Ice", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rss": { + "CMOR_varname": "rss", + "standard_name": "surface_net_downward_shortwave_flux", + "long_name": "Net Shortwave Surface Radiation", + "mipTable": "Eday", + "units": "W m-2" + }, + "rls": { + "CMOR_varname": "rls", + "standard_name": "surface_net_downward_longwave_flux", + "long_name": "Net Longwave Surface Radiation", + "mipTable": "Eday", + "units": "W m-2" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "Eday", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "Eday", + "units": "W m-2" + }, + "hfdsn": { + "CMOR_varname": "hfdsn", + "standard_name": "surface_downward_heat_flux_in_snow", + "long_name": "Downward Heat Flux into Snow Where Land over Land", + "mipTable": "Eday", + "units": "W m-2" + }, + "hfmlt": { + "CMOR_varname": "hfmlt", + "standard_name": "surface_snow_and_ice_melt_heat_flux", + "long_name": "Energy of fusion", + "mipTable": "Eday", + "units": "W m-2" + }, + "hfsbl": { + "CMOR_varname": "hfsbl", + "standard_name": "surface_upward_latent_heat_flux_due_to_sublimation", + "long_name": "Energy of sublimation", + "mipTable": "Eday", + "units": "W m-2" + }, + "tau": { + "CMOR_varname": "tau", + "standard_name": "magnitude_of_surface_downward_stress", + "long_name": "Momentum flux", + "mipTable": "Eday", + "units": "N m-2" + }, + "hfrs": { + "CMOR_varname": "hfrs", + "standard_name": "tendency_of_thermal_energy_content_of_surface_snow_due_to_rainfall_temperature_excess_above_freezing", + "long_name": "Heat transferred to snowpack by rainfall", + "mipTable": "Eday", + "units": "W m-2" + }, + "dtes": { + "CMOR_varname": "dtes", + "standard_name": "change_over_time_in_thermal_energy_content_of_vegetation_and_litter_and_soil", + "long_name": "Change in surface heat storage", + "mipTable": "Eday", + "units": "J m-2" + }, + "dtesn": { + "CMOR_varname": "dtesn", + "standard_name": "change_over_time_in_thermal_energy_content_of_ice_and_snow_on_land", + "long_name": "Change in snow/ice cold content", + "mipTable": "Eday", + "units": "J m-2" + }, + "tsns": { + "CMOR_varname": "tsns", + "standard_name": "surface_temperature", + "long_name": "Snow Surface Temperature", + "mipTable": "Eday", + "units": "K" + }, + "tcs": { + "CMOR_varname": "tcs", + "standard_name": "canopy_temperature", + "long_name": "Vegetation Canopy Temperature", + "mipTable": "Eday", + "units": "K" + }, + "tgs": { + "CMOR_varname": "tgs", + "standard_name": "surface_temperature", + "long_name": "Temperature of bare soil", + "mipTable": "Eday", + "units": "K" + }, + "tr": { + "CMOR_varname": "tr", + "standard_name": "surface_temperature", + "long_name": "Surface Radiative Temperature", + "mipTable": "Eday", + "units": "K" + }, + "albsn": { + "CMOR_varname": "albsn", + "standard_name": "surface_albedo", + "long_name": "Snow Albedo", + "mipTable": "Eday", + "units": "1" + }, + "albc": { + "CMOR_varname": "albc", + "standard_name": "canopy_albedo", + "long_name": "Canopy Albedo", + "mipTable": "Eday", + "units": "1" + }, + "cnc": { + "CMOR_varname": "cnc", + "standard_name": "vegetation_area_fraction", + "long_name": "Canopy covered area percentage", + "mipTable": "Eday", + "units": "%" + }, + "tsl": { + "CMOR_varname": "tsl", + "standard_name": "soil_temperature", + "long_name": "Temperature of Soil", + "mipTable": "Eday", + "units": "K" + }, + "tsn": { + "CMOR_varname": "tsn", + "standard_name": "temperature_in_surface_snow", + "long_name": "Snow Internal Temperature", + "mipTable": "Eday", + "units": "K" + }, + "clt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "mipTable": "Eday", + "units": "%" + }, + "prra": { + "CMOR_varname": "prra", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux over Land", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "prrc": { + "CMOR_varname": "prrc", + "standard_name": "convective_rainfall_flux", + "long_name": "Convective Rainfall rate", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "prsnc": { + "CMOR_varname": "prsnc", + "standard_name": "convective_snowfall_flux", + "long_name": "Convective Snowfall Flux", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "prveg": { + "CMOR_varname": "prveg", + "standard_name": "precipitation_flux_onto_canopy", + "long_name": "Precipitation onto Canopy", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "evspsbl": { + "CMOR_varname": "evspsbl", + "standard_name": "water_evapotranspiration_flux", + "long_name": "Evaporation including Sublimation and Transpiration", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "ec": { + "CMOR_varname": "ec", + "standard_name": "water_evaporation_flux_from_canopy", + "long_name": "Interception evaporation", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "tran": { + "CMOR_varname": "tran", + "standard_name": "transpiration_flux", + "long_name": "Transpiration", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "es": { + "CMOR_varname": "es", + "standard_name": "water_evaporation_flux_from_soil", + "long_name": "Bare soil evaporation", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "eow": { + "CMOR_varname": "eow", + "standard_name": "surface_water_evaporation_flux", + "long_name": "Open Water Evaporation", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "esn": { + "CMOR_varname": "esn", + "standard_name": "water_evapotranspiration_flux", + "long_name": "Snow Evaporation", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "sblnosn": { + "CMOR_varname": "sblnosn", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_ice", + "long_name": "Sublimation of the snow free area", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "evspsblpot": { + "CMOR_varname": "evspsblpot", + "standard_name": "water_potential_evaporation_flux", + "long_name": "Potential Evapotranspiration", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "mrros": { + "CMOR_varname": "mrros", + "standard_name": "surface_runoff_flux", + "long_name": "Surface Runoff", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "mrrob": { + "CMOR_varname": "mrrob", + "standard_name": "subsurface_runoff_flux", + "long_name": "Subsurface runoff", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "snm": { + "CMOR_varname": "snm", + "standard_name": "surface_snow_melt_flux", + "long_name": "Surface Snow Melt", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "snrefr": { + "CMOR_varname": "snrefr", + "standard_name": "surface_snow_and_ice_refreezing_flux", + "long_name": "Re-freezing of water in the snow", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "snmsl": { + "CMOR_varname": "snmsl", + "standard_name": "liquid_water_mass_flux_into_soil_due_to_surface_snow_melt", + "long_name": "Water flowing out of snowpack", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "qgwr": { + "CMOR_varname": "qgwr", + "standard_name": "downward_liquid_water_mass_flux_into_groundwater", + "long_name": "Groundwater recharge from soil layer", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "rivo": { + "CMOR_varname": "rivo", + "standard_name": "outgoing_water_volume_transport_along_river_channel", + "long_name": "River Discharge", + "mipTable": "Eday", + "units": "m3 s-1" + }, + "rivi": { + "CMOR_varname": "rivi", + "standard_name": "incoming_water_volume_transport_along_river_channel", + "long_name": "River Inflow", + "mipTable": "Eday", + "units": "m3 s-1" + }, + "dslw": { + "CMOR_varname": "dslw", + "standard_name": "change_over_time_in_mass_content_of_water_in_soil", + "long_name": "Change in soil moisture", + "mipTable": "Eday", + "units": "kg m-2" + }, + "dsn": { + "CMOR_varname": "dsn", + "standard_name": "change_over_time_in_amount_of_ice_and_snow_on_land", + "long_name": "Change in snow water equivalent", + "mipTable": "Eday", + "units": "kg m-2" + }, + "dsw": { + "CMOR_varname": "dsw", + "standard_name": "change_over_time_in_land_water_amount", + "long_name": "Change in Surface Water Storage", + "mipTable": "Eday", + "units": "kg m-2" + }, + "dcw": { + "CMOR_varname": "dcw", + "standard_name": "change_over_time_in_canopy_water_amount", + "long_name": "Change in Interception Storage", + "mipTable": "Eday", + "units": "kg m-2" + }, + "dgw": { + "CMOR_varname": "dgw", + "standard_name": "change_over_time_in_groundwater_amount", + "long_name": "Change in Groundwater", + "mipTable": "Eday", + "units": "kg m-2" + }, + "drivw": { + "CMOR_varname": "drivw", + "standard_name": "change_over_time_in_river_water_amount", + "long_name": "Change in River Storage", + "mipTable": "Eday", + "units": "kg m-2" + }, + "rzwc": { + "CMOR_varname": "rzwc", + "standard_name": "mass_content_of_water_in_soil_layer_defined_by_root_depth", + "long_name": "Root zone soil moisture", + "mipTable": "Eday", + "units": "kg m-2" + }, + "cw": { + "CMOR_varname": "cw", + "standard_name": "canopy_water_amount", + "long_name": "Total Canopy Water Storage", + "mipTable": "Eday", + "units": "kg m-2" + }, + "snwc": { + "CMOR_varname": "snwc", + "standard_name": "canopy_snow_amount", + "long_name": "SWE intercepted by the vegetation", + "mipTable": "Eday", + "units": "kg m-2" + }, + "lwsnl": { + "CMOR_varname": "lwsnl", + "standard_name": "liquid_water_content_of_surface_snow", + "long_name": "Liquid Water Content of Snow Layer", + "mipTable": "Eday", + "units": "kg m-2" + }, + "sw": { + "CMOR_varname": "sw", + "standard_name": "land_surface_liquid_water_amount", + "long_name": "Surface Water Storage", + "mipTable": "Eday", + "units": "kg m-2" + }, + "mrsow": { + "CMOR_varname": "mrsow", + "standard_name": "volume_fraction_of_condensed_water_in_soil_at_field_capacity", + "long_name": "Total Soil Wetness", + "mipTable": "Eday", + "units": "1" + }, + "wtd": { + "CMOR_varname": "wtd", + "standard_name": "water_table_depth", + "long_name": "Water table depth", + "mipTable": "Eday", + "units": "m" + }, + "mrtws": { + "CMOR_varname": "mrtws", + "standard_name": "land_water_amount", + "long_name": "Terrestrial Water Storage", + "mipTable": "Eday", + "units": "kg m-2" + }, + "mrlqso": { + "CMOR_varname": "mrlqso", + "standard_name": "mass_fraction_of_unfrozen_water_in_soil_moisture", + "long_name": "Average layer fraction of liquid moisture", + "mipTable": "Eday", + "units": "1" + }, + "mrfsofr": { + "CMOR_varname": "mrfsofr", + "standard_name": "mass_fraction_of_frozen_water_in_soil_moisture", + "long_name": "Average layer fraction of frozen moisture", + "mipTable": "Eday", + "units": "1" + }, + "prrsn": { + "CMOR_varname": "prrsn", + "standard_name": "mass_fraction_of_rainfall_falling_onto_surface_snow", + "long_name": "Fraction of rainfall on snow.", + "mipTable": "Eday", + "units": "1" + }, + "prsnsn": { + "CMOR_varname": "prsnsn", + "standard_name": "mass_fraction_of_solid_precipitation_falling_onto_surface_snow", + "long_name": "Fraction of snowfall (including hail and graupel) on snow.", + "mipTable": "Eday", + "units": "1" + }, + "agesno": { + "CMOR_varname": "agesno", + "standard_name": "age_of_surface_snow", + "long_name": "Snow Age", + "mipTable": "Eday", + "units": "day" + }, + "sootsn": { + "CMOR_varname": "sootsn", + "standard_name": "soot_content_of_surface_snow", + "long_name": "Snow Soot Content", + "mipTable": "Eday", + "units": "kg m-2" + }, + "dmlt": { + "CMOR_varname": "dmlt", + "standard_name": "depth_at_shallowest_isotherm_defined_by_soil_temperature", + "long_name": "Depth to soil thaw", + "mipTable": "Eday", + "units": "m" + }, + "tpf": { + "CMOR_varname": "tpf", + "standard_name": "permafrost_layer_thickness", + "long_name": "Permafrost Layer Thickness", + "mipTable": "Eday", + "units": "m" + }, + "pflw": { + "CMOR_varname": "pflw", + "standard_name": "liquid_water_content_of_permafrost_layer", + "long_name": "Liquid Water Content of Permafrost Layer", + "mipTable": "Eday", + "units": "kg m-2" + }, + "ares": { + "CMOR_varname": "ares", + "standard_name": "aerodynamic_resistance", + "long_name": "Aerodynamic resistance", + "mipTable": "Eday", + "units": "s m-1" + }, + "nep": { + "CMOR_varname": "nep", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change", + "long_name": "Net Carbon Mass Flux out of Atmophere due to Net Ecosystem Productivity on Land.", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fLuc": { + "CMOR_varname": "fLuc", + "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", + "long_name": "Net Carbon Mass Flux into Atmosphere due to Land Use Change", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "cWood": { + "CMOR_varname": "cWood", + "standard_name": "stem_mass_content_of_carbon", + "long_name": "Carbon Mass in Wood", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cMisc": { + "CMOR_varname": "cMisc", + "standard_name": "miscellaneous_living_matter_mass_content_of_carbon", + "long_name": "Carbon Mass in Other Living Compartments on Land", + "mipTable": "Emon", + "units": "kg m-2" + }, + "gppLut": { + "CMOR_varname": "gppLut", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "gross primary productivity on land use tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raLut": { + "CMOR_varname": "raLut", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", + "long_name": "plant respiration on land use tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nppLut": { + "CMOR_varname": "nppLut", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "net primary productivity on land use tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "cTotFireLut": { + "CMOR_varname": "cTotFireLut", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires", + "long_name": "Total carbon loss from natural and managed fire on land use tile", + "mipTable": "including deforestation fires", + "units": "Emon" + }, + "rhLut": { + "CMOR_varname": "rhLut", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", + "long_name": "soil heterotrophic respiration on land use tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "necbLut": { + "CMOR_varname": "necbLut", + "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", + "long_name": "net rate of C accumulation (or loss) on land use tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nwdFracLut": { + "CMOR_varname": "nwdFracLut", + "standard_name": "area_fraction", + "long_name": "Non-woody Vegetation Percentage Cover", + "mipTable": "Emon", + "units": "%" + }, + "tasLut": { + "CMOR_varname": "tasLut", + "standard_name": "air_temperature", + "long_name": "near-surface air temperature (2m above displacement height", + "mipTable": "i.e. t_ref) on land use tile", + "units": "Emon" + }, + "tslsiLut": { + "CMOR_varname": "tslsiLut", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature on Landuse Tile", + "mipTable": "Emon", + "units": "K" + }, + "hussLut": { + "CMOR_varname": "hussLut", + "standard_name": "specific_humidity", + "long_name": "near-surface specific humidity on land use tile", + "mipTable": "Emon", + "units": "1" + }, + "hflsLut": { + "CMOR_varname": "hflsLut", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "latent heat flux on land use tile", + "mipTable": "Emon", + "units": "W m-2" + }, + "hfssLut": { + "CMOR_varname": "hfssLut", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "sensible heat flux on land use tile", + "mipTable": "Emon", + "units": "W m-2" + }, + "rsusLut": { + "CMOR_varname": "rsusLut", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave on Land Use Tile", + "mipTable": "Emon", + "units": "W m-2" + }, + "rlusLut": { + "CMOR_varname": "rlusLut", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave on Land Use Tile", + "mipTable": "Emon", + "units": "W m-2" + }, + "sweLut": { + "CMOR_varname": "sweLut", + "standard_name": "lwe_thickness_of_surface_snow_amount", + "long_name": "snow water equivalent on land use tile", + "mipTable": "Emon", + "units": "m" + }, + "laiLut": { + "CMOR_varname": "laiLut", + "standard_name": "leaf_area_index", + "long_name": "Leaf Area Index on Land Use Tile", + "mipTable": "Emon", + "units": "1" + }, + "mrsosLut": { + "CMOR_varname": "mrsosLut", + "standard_name": "mass_content_of_water_in_soil_layer", + "long_name": "Moisture in Upper Portion of Soil Column of land use tile", + "mipTable": "Emon", + "units": "kg m-2" + }, + "mrroLut": { + "CMOR_varname": "mrroLut", + "standard_name": "runoff_flux", + "long_name": "Total runoff from land use tile", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "mrsoLut": { + "CMOR_varname": "mrsoLut", + "standard_name": "mass_content_of_water_in_soil", + "long_name": "Total soil moisture", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cSoilLut": { + "CMOR_varname": "cSoilLut", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "carbon in soil pool on land use tiles", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "cVegLut": { + "CMOR_varname": "cVegLut", + "standard_name": "vegetation_carbon_content", + "long_name": "carbon in vegetation on land use tiles", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "cLitterLut": { + "CMOR_varname": "cLitterLut", + "standard_name": "litter_mass_content_of_carbon", + "long_name": "carbon in above and belowground litter pools on land use tiles", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "cSoil": { + "CMOR_varname": "cSoil", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon Mass in Soil Pool", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "cVeg": { + "CMOR_varname": "cVeg", + "standard_name": "vegetation_carbon_content", + "long_name": "Carbon Mass in Vegetation", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "cLitter": { + "CMOR_varname": "cLitter", + "standard_name": "litter_mass_content_of_carbon", + "long_name": "Carbon Mass in Litter Pool", + "mipTable": "Eyr", + "units": "kg m-2" + }, + "fracOutLut": { + "CMOR_varname": "fracOutLut", + "standard_name": "area_fraction", + "long_name": "Annual gross percentage of land use tile that was transferred into other land use tiles", + "mipTable": "Eyr", + "units": "%" + }, + "fracInLut": { + "CMOR_varname": "fracInLut", + "standard_name": "area_fraction", + "long_name": "Annual gross percentage that was transferred into this tile from other land use tiles", + "mipTable": "Eyr", + "units": "%" + }, + "fracLut": { + "CMOR_varname": "fracLut", + "standard_name": "area_fraction", + "long_name": "Percentage of grid cell for each land use tile", + "mipTable": "Eyr", + "units": "%" + }, + "swtoacsdust": { + "CMOR_varname": "swtoacsdust", + "standard_name": "toa_instantaneous_shortwave_forcing", + "long_name": "clear sky sw-rf dust at toa", + "mipTable": "Emon", + "units": "W m-2" + }, + "swtoaasdust": { + "CMOR_varname": "swtoaasdust", + "standard_name": "toa_instantaneous_shortwave_forcing", + "long_name": "all sky sw-rf dust at toa", + "mipTable": "Emon", + "units": "W m-2" + }, + "lwtoaasdust": { + "CMOR_varname": "lwtoaasdust", + "standard_name": "toa_instantaneous_longwave_forcing", + "long_name": "all sky lw-rf dust at toa", + "mipTable": "Emon", + "units": "W m-2" + }, + "lwtoacsaer": { + "CMOR_varname": "lwtoacsaer", + "standard_name": "toa_instantaneous_longwave_forcing", + "long_name": "clear sky lw-rf aerosols at toa", + "mipTable": "Emon", + "units": "W m-2" + }, + "prhmax": { + "CMOR_varname": "prhmax", + "standard_name": "precipitation_flux", + "long_name": "Maximum Hourly Precipitation Rate", + "mipTable": "Eday", + "units": "kg m-2 s-1" + }, + "pfull": { + "CMOR_varname": "pfull", + "standard_name": "air_pressure", + "long_name": "Air Pressure", + "mipTable": "6hrLev", + "units": "Pa" + }, + "rlu": { + "CMOR_varname": "rlu", + "standard_name": "upwelling_longwave_flux_in_air", + "long_name": "Upwelling Longwave Radiation", + "mipTable": "Efx", + "units": "W m-2" + }, + "rsu": { + "CMOR_varname": "rsu", + "standard_name": "upwelling_shortwave_flux_in_air", + "long_name": "Upwelling Shortwave Radiation", + "mipTable": "Efx", + "units": "W m-2" + }, + "rld": { + "CMOR_varname": "rld", + "standard_name": "downwelling_longwave_flux_in_air", + "long_name": "Downwelling Longwave Radiation", + "mipTable": "Efx", + "units": "W m-2" + }, + "rsd": { + "CMOR_varname": "rsd", + "standard_name": "downwelling_shortwave_flux_in_air", + "long_name": "Downwelling Shortwave Radiation", + "mipTable": "Efx", + "units": "W m-2" + }, + "sithick": { + "CMOR_varname": "sithick", + "standard_name": "sea_ice_thickness", + "long_name": "Sea Ice Thickness", + "mipTable": "SImon", + "units": "m" + }, + "sitimefrac": { + "CMOR_varname": "sitimefrac", + "standard_name": "fraction_of_time_with_sea_ice_area_fraction_above_threshold", + "long_name": "Fraction of time steps with sea ice", + "mipTable": "SIday", + "units": "1" + }, + "siconca": { + "CMOR_varname": "siconca", + "standard_name": "sea_ice_area_fraction", + "long_name": "Sea Ice Area Fraction (Atmospheric Grid)", + "mipTable": "SIday", + "units": "%" + }, + "sithick": { + "CMOR_varname": "sithick", + "standard_name": "sea_ice_thickness", + "long_name": "Sea Ice Thickness", + "mipTable": "SIday", + "units": "m" + }, + "sisnthick": { + "CMOR_varname": "sisnthick", + "standard_name": "surface_snow_thickness", + "long_name": "Snow thickness", + "mipTable": "SIday", + "units": "m" + }, + "sitemptop": { + "CMOR_varname": "sitemptop", + "standard_name": "sea_ice_surface_temperature", + "long_name": "Surface temperature of sea ice", + "mipTable": "SIday", + "units": "K" + }, + "sispeed": { + "CMOR_varname": "sispeed", + "standard_name": "sea_ice_speed", + "long_name": "Sea-ice speed", + "mipTable": "SIday", + "units": "m s-1" + }, + "zmswaero": { + "CMOR_varname": "zmswaero", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_from_volcanic_ambient_aerosol_particles", + "long_name": "Zonal mean shortwave heating rate due to volcanic aerosols", + "mipTable": "E6hrZ", + "units": "K s-1" + }, + "zmlwaero": { + "CMOR_varname": "zmlwaero", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_from_volcanic_ambient_aerosol_particles", + "long_name": "Zonal mean longwave heating rate due to volcanic aerosols", + "mipTable": "E6hrZ", + "units": "K s-1" + }, + "aod550volso4": { + "CMOR_varname": "aod550volso4", + "standard_name": "stratosphere_optical_thickness_due_to_volcanic_ambient_aerosol_particles", + "long_name": "Aerosol optical depth at 550 nm due to stratospheric volcanic aerosols", + "mipTable": "Eday", + "units": "1e-09" + }, + "msftyz": { + "CMOR_varname": "msftyz", + "standard_name": "ocean_y_overturning_mass_streamfunction", + "long_name": "Ocean Y Overturning Mass Streamfunction", + "mipTable": "Odec", + "units": "kg s-1" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Surface Air Temperature", + "mipTable": "ImonGre", + "units": "K" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "ImonGre", + "units": "K" + }, + "tsn": { + "CMOR_varname": "tsn", + "standard_name": "temperature_in_surface_snow", + "long_name": "Snow Internal Temperature", + "mipTable": "ImonGre", + "units": "K" + }, + "litemptop": { + "CMOR_varname": "litemptop", + "standard_name": "temperature_at_top_of_ice_sheet_model", + "long_name": "Temperature at top of ice sheet model", + "mipTable": "ImonGre", + "units": "K" + }, + "litempbotgr": { + "CMOR_varname": "litempbotgr", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of grounded ice sheet", + "mipTable": "ImonGre", + "units": "K" + }, + "litempbotfl": { + "CMOR_varname": "litempbotfl", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of floating ice shelf", + "mipTable": "ImonGre", + "units": "K" + }, + "acabf": { + "CMOR_varname": "acabf", + "standard_name": "land_ice_surface_specific_mass_balance_flux", + "long_name": "Surface Mass Balance flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "prra": { + "CMOR_varname": "prra", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux over Land Ice", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "snicem": { + "CMOR_varname": "snicem", + "standard_name": "surface_snow_and_ice_melt_flux", + "long_name": "Surface snow and ice melt flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "snm": { + "CMOR_varname": "snm", + "standard_name": "surface_snow_melt_flux", + "long_name": "Surface Snow Melt", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "icem": { + "CMOR_varname": "icem", + "standard_name": "land_ice_surface_melt_flux", + "long_name": "Surface ice melt flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "snicefreez": { + "CMOR_varname": "snicefreez", + "standard_name": "surface_snow_and_ice_refreezing_flux", + "long_name": "Surface snow and ice refreeze flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "mrroLi": { + "CMOR_varname": "mrroLi", + "standard_name": "land_ice_runoff_flux", + "long_name": "Land Ice Runoff Flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "ImonGre", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "ImonGre", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "ImonGre", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "ImonGre", + "units": "W m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "ImonGre", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "ImonGre", + "units": "W m-2" + }, + "libmassbfgr": { + "CMOR_varname": "libmassbfgr", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of grounded ice sheet", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "libmassbffl": { + "CMOR_varname": "libmassbffl", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of floating ice shelf", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "licalvf": { + "CMOR_varname": "licalvf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving", + "long_name": "Land ice calving flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "lifmassbf": { + "CMOR_varname": "lifmassbf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", + "long_name": "Land ice vertical front mass balance flux", + "mipTable": "ImonGre", + "units": "kg m-2 s-1" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "mipTable": "ImonGre", + "units": "m" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "snow cover fraction", + "mipTable": "ImonGre", + "units": "%" + }, + "tas": { + "CMOR_varname": "tas", + "standard_name": "air_temperature", + "long_name": "Surface Air Temperature", + "mipTable": "ImonAnt", + "units": "K" + }, + "ts": { + "CMOR_varname": "ts", + "standard_name": "surface_temperature", + "long_name": "Surface Temperature", + "mipTable": "ImonAnt", + "units": "K" + }, + "tsn": { + "CMOR_varname": "tsn", + "standard_name": "temperature_in_surface_snow", + "long_name": "Snow Internal Temperature", + "mipTable": "ImonAnt", + "units": "K" + }, + "litemptop": { + "CMOR_varname": "litemptop", + "standard_name": "temperature_at_top_of_ice_sheet_model", + "long_name": "Temperature at top of ice sheet model", + "mipTable": "ImonAnt", + "units": "K" + }, + "litempbotgr": { + "CMOR_varname": "litempbotgr", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of grounded ice sheet", + "mipTable": "ImonAnt", + "units": "K" + }, + "litempbotfl": { + "CMOR_varname": "litempbotfl", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of floating ice shelf", + "mipTable": "ImonAnt", + "units": "K" + }, + "acabf": { + "CMOR_varname": "acabf", + "standard_name": "land_ice_surface_specific_mass_balance_flux", + "long_name": "Surface Mass Balance flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "prra": { + "CMOR_varname": "prra", + "standard_name": "rainfall_flux", + "long_name": "Rainfall Flux over Land Ice", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "snicem": { + "CMOR_varname": "snicem", + "standard_name": "surface_snow_and_ice_melt_flux", + "long_name": "Surface snow and ice melt flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "snm": { + "CMOR_varname": "snm", + "standard_name": "surface_snow_melt_flux", + "long_name": "Surface Snow Melt", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "icem": { + "CMOR_varname": "icem", + "standard_name": "land_ice_surface_melt_flux", + "long_name": "Surface ice melt flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "snicefreez": { + "CMOR_varname": "snicefreez", + "standard_name": "surface_snow_and_ice_refreezing_flux", + "long_name": "Surface snow and ice refreeze flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "mrroLi": { + "CMOR_varname": "mrroLi", + "standard_name": "land_ice_runoff_flux", + "long_name": "Land Ice Runoff Flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "ImonAnt", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "ImonAnt", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "ImonAnt", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "ImonAnt", + "units": "W m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "ImonAnt", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "ImonAnt", + "units": "W m-2" + }, + "libmassbfgr": { + "CMOR_varname": "libmassbfgr", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of grounded ice sheet", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "libmassbffl": { + "CMOR_varname": "libmassbffl", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of floating ice shelf", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "licalvf": { + "CMOR_varname": "licalvf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving", + "long_name": "Land ice calving flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "lifmassbf": { + "CMOR_varname": "lifmassbf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", + "long_name": "Land ice vertical front mass balance flux", + "mipTable": "ImonAnt", + "units": "kg m-2 s-1" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "mipTable": "ImonAnt", + "units": "m" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "snow cover fraction", + "mipTable": "ImonAnt", + "units": "%" + }, + "hfgeoubed": { + "CMOR_varname": "hfgeoubed", + "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", + "long_name": "Geothermal Heat flux beneath land ice", + "mipTable": "IfxGre", + "units": "W m-2" + }, + "topg": { + "CMOR_varname": "topg", + "standard_name": "bedrock_altitude", + "long_name": "Bedrock Altitude", + "mipTable": "IfxGre", + "units": "m" + }, + "lithk": { + "CMOR_varname": "lithk", + "standard_name": "land_ice_thickness", + "long_name": "Ice Sheet Thickness", + "mipTable": "IfxGre", + "units": "m" + }, + "areacellg": { + "CMOR_varname": "areacellg", + "standard_name": "cell_area", + "long_name": "Grid-Cell Area for Ice Sheet Variables", + "mipTable": "IfxGre", + "units": "m2" + }, + "hfgeoubed": { + "CMOR_varname": "hfgeoubed", + "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", + "long_name": "Geothermal Heat flux beneath land ice", + "mipTable": "IfxAnt", + "units": "W m-2" + }, + "topg": { + "CMOR_varname": "topg", + "standard_name": "bedrock_altitude", + "long_name": "Bedrock Altitude", + "mipTable": "IfxAnt", + "units": "m" + }, + "lithk": { + "CMOR_varname": "lithk", + "standard_name": "land_ice_thickness", + "long_name": "Ice Sheet Thickness", + "mipTable": "IfxAnt", + "units": "m" + }, + "areacellg": { + "CMOR_varname": "areacellg", + "standard_name": "cell_area", + "long_name": "Grid-Cell Area for Ice Sheet Variables", + "mipTable": "IfxAnt", + "units": "m2" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "mipTable": "IyrGre", + "units": "m" + }, + "lithk": { + "CMOR_varname": "lithk", + "standard_name": "land_ice_thickness", + "long_name": "Ice Sheet Thickness", + "mipTable": "IyrGre", + "units": "m" + }, + "modelCellAreai": { + "CMOR_varname": "modelCellAreai", + "standard_name": "cell_area", + "long_name": "The cell area of the ice sheet model.", + "mipTable": "IyrGre", + "units": "m2" + }, + "topg": { + "CMOR_varname": "topg", + "standard_name": "bedrock_altitude", + "long_name": "Bedrock Altitude", + "mipTable": "IyrGre", + "units": "m" + }, + "litemptop": { + "CMOR_varname": "litemptop", + "standard_name": "temperature_at_top_of_ice_sheet_model", + "long_name": "Temperature at top of ice sheet model", + "mipTable": "IyrGre", + "units": "K" + }, + "litempbotgr": { + "CMOR_varname": "litempbotgr", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of grounded ice sheet", + "mipTable": "IyrGre", + "units": "K" + }, + "litempbotfl": { + "CMOR_varname": "litempbotfl", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of floating ice shelf", + "mipTable": "IyrGre", + "units": "K" + }, + "acabf": { + "CMOR_varname": "acabf", + "standard_name": "land_ice_surface_specific_mass_balance_flux", + "long_name": "Surface Mass Balance flux", + "mipTable": "IyrGre", + "units": "kg m-2 s-1" + }, + "libmassbfgr": { + "CMOR_varname": "libmassbfgr", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of grounded ice sheet", + "mipTable": "IyrGre", + "units": "kg m-2 s-1" + }, + "libmassbffl": { + "CMOR_varname": "libmassbffl", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of floating ice shelf", + "mipTable": "IyrGre", + "units": "kg m-2 s-1" + }, + "licalvf": { + "CMOR_varname": "licalvf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving", + "long_name": "Land ice calving flux", + "mipTable": "IyrGre", + "units": "kg m-2 s-1" + }, + "lifmassbf": { + "CMOR_varname": "lifmassbf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", + "long_name": "Land ice vertical front mass balance flux", + "mipTable": "IyrGre", + "units": "kg m-2 s-1" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "snow cover fraction", + "mipTable": "IyrGre", + "units": "%" + }, + "sftgif": { + "CMOR_varname": "sftgif", + "standard_name": "land_ice_area_fraction", + "long_name": "Fraction of Grid Cell Covered with Glacier", + "mipTable": "IyrGre", + "units": "%" + }, + "sftgrf": { + "CMOR_varname": "sftgrf", + "standard_name": "grounded_ice_sheet_area_fraction", + "long_name": "Grounded Ice Sheet Area Fraction", + "mipTable": "IyrGre", + "units": "%" + }, + "sftflf": { + "CMOR_varname": "sftflf", + "standard_name": "floating_ice_shelf_area_fraction", + "long_name": "Floating Ice Shelf Area Fraction", + "mipTable": "IyrGre", + "units": "%" + }, + "xvelsurf": { + "CMOR_varname": "xvelsurf", + "standard_name": "land_ice_surface_x_velocity", + "long_name": "X-component of land ice surface velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "yvelsurf": { + "CMOR_varname": "yvelsurf", + "standard_name": "land_ice_surface_y_velocity", + "long_name": "Y-component of land ice surface velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "zvelsurf": { + "CMOR_varname": "zvelsurf", + "standard_name": "land_ice_surface_upward_velocity", + "long_name": "Upward component of land ice surface velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "xvelbase": { + "CMOR_varname": "xvelbase", + "standard_name": "land_ice_basal_x_velocity", + "long_name": "X-component of land ice basal velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "yvelbase": { + "CMOR_varname": "yvelbase", + "standard_name": "land_ice_basal_y_velocity", + "long_name": "Y-component of land ice basal velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "zvelbase": { + "CMOR_varname": "zvelbase", + "standard_name": "land_ice_basal_upward_velocity", + "long_name": "Upward-component of land ice basal velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "xvelmean": { + "CMOR_varname": "xvelmean", + "standard_name": "land_ice_vertical_mean_x_velocity", + "long_name": "X-component of land ice vertical mean velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "yvelmean": { + "CMOR_varname": "yvelmean", + "standard_name": "land_ice_vertical_mean_y_velocity", + "long_name": "Y-component of land ice vertical mean velocity", + "mipTable": "IyrGre", + "units": "m s-1" + }, + "strbasemag": { + "CMOR_varname": "strbasemag", + "standard_name": "land_ice_basal_drag", + "long_name": "Land Ice Basal Drag", + "mipTable": "IyrGre", + "units": "Pa" + }, + "hfgeoubed": { + "CMOR_varname": "hfgeoubed", + "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", + "long_name": "Geothermal Heat flux beneath land ice", + "mipTable": "IyrGre", + "units": "W m-2" + }, + "lim": { + "CMOR_varname": "lim", + "standard_name": "land_ice_mass", + "long_name": "Ice sheet mass", + "mipTable": "IyrGre", + "units": "kg" + }, + "limnsw": { + "CMOR_varname": "limnsw", + "standard_name": "land_ice_mass_not_displacing_sea_water", + "long_name": "Ice sheet mass that does not displace sea water", + "mipTable": "IyrGre", + "units": "kg" + }, + "iareagr": { + "CMOR_varname": "iareagr", + "standard_name": "grounded_ice_sheet_area", + "long_name": "Area covered by grounded ice sheet", + "mipTable": "IyrGre", + "units": "m2" + }, + "iareafl": { + "CMOR_varname": "iareafl", + "standard_name": "floating_ice_shelf_area", + "long_name": "Area covered by floating ice shelves", + "mipTable": "IyrGre", + "units": "m2" + }, + "tendacabf": { + "CMOR_varname": "tendacabf", + "standard_name": "tendency_of_land_ice_mass_due_to_surface_mass_balance", + "long_name": "Total surface mass balance flux", + "mipTable": "IyrGre", + "units": "kg s-1" + }, + "tendlibmassbf": { + "CMOR_varname": "tendlibmassbf", + "standard_name": "tendency_of_land_ice_mass_due_to_basal_mass_balance", + "long_name": "Total basal mass balance flux", + "mipTable": "IyrGre", + "units": "kg s-1" + }, + "tendlicalvf": { + "CMOR_varname": "tendlicalvf", + "standard_name": "tendency_of_land_ice_mass_due_to_calving", + "long_name": "Total calving flux", + "mipTable": "IyrGre", + "units": "kg s-1" + }, + "orog": { + "CMOR_varname": "orog", + "standard_name": "surface_altitude", + "long_name": "Surface Altitude", + "mipTable": "IyrAnt", + "units": "m" + }, + "lithk": { + "CMOR_varname": "lithk", + "standard_name": "land_ice_thickness", + "long_name": "Ice Sheet Thickness", + "mipTable": "IyrAnt", + "units": "m" + }, + "modelCellAreai": { + "CMOR_varname": "modelCellAreai", + "standard_name": "cell_area", + "long_name": "The cell area of the ice sheet model.", + "mipTable": "IyrAnt", + "units": "m2" + }, + "topg": { + "CMOR_varname": "topg", + "standard_name": "bedrock_altitude", + "long_name": "Bedrock Altitude", + "mipTable": "IyrAnt", + "units": "m" + }, + "litemptop": { + "CMOR_varname": "litemptop", + "standard_name": "temperature_at_top_of_ice_sheet_model", + "long_name": "Temperature at top of ice sheet model", + "mipTable": "IyrAnt", + "units": "K" + }, + "litempbotgr": { + "CMOR_varname": "litempbotgr", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of grounded ice sheet", + "mipTable": "IyrAnt", + "units": "K" + }, + "litempbotfl": { + "CMOR_varname": "litempbotfl", + "standard_name": "land_ice_basal_temperature", + "long_name": "Basal temperature of floating ice shelf", + "mipTable": "IyrAnt", + "units": "K" + }, + "acabf": { + "CMOR_varname": "acabf", + "standard_name": "land_ice_surface_specific_mass_balance_flux", + "long_name": "Surface Mass Balance flux", + "mipTable": "IyrAnt", + "units": "kg m-2 s-1" + }, + "libmassbfgr": { + "CMOR_varname": "libmassbfgr", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of grounded ice sheet", + "mipTable": "IyrAnt", + "units": "kg m-2 s-1" + }, + "libmassbffl": { + "CMOR_varname": "libmassbffl", + "standard_name": "land_ice_basal_specific_mass_balance_flux", + "long_name": "Basal specific mass balance flux of floating ice shelf", + "mipTable": "IyrAnt", + "units": "kg m-2 s-1" + }, + "licalvf": { + "CMOR_varname": "licalvf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving", + "long_name": "Land ice calving flux", + "mipTable": "IyrAnt", + "units": "kg m-2 s-1" + }, + "lifmassbf": { + "CMOR_varname": "lifmassbf", + "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", + "long_name": "Land ice vertical front mass balance flux", + "mipTable": "IyrAnt", + "units": "kg m-2 s-1" + }, + "snc": { + "CMOR_varname": "snc", + "standard_name": "surface_snow_area_fraction", + "long_name": "snow cover fraction", + "mipTable": "IyrAnt", + "units": "%" + }, + "sftgif": { + "CMOR_varname": "sftgif", + "standard_name": "land_ice_area_fraction", + "long_name": "Fraction of Grid Cell Covered with Glacier", + "mipTable": "IyrAnt", + "units": "%" + }, + "sftgrf": { + "CMOR_varname": "sftgrf", + "standard_name": "grounded_ice_sheet_area_fraction", + "long_name": "Grounded Ice Sheet Area Fraction", + "mipTable": "IyrAnt", + "units": "%" + }, + "sftflf": { + "CMOR_varname": "sftflf", + "standard_name": "floating_ice_shelf_area_fraction", + "long_name": "Floating Ice Shelf Area Fraction", + "mipTable": "IyrAnt", + "units": "%" + }, + "xvelsurf": { + "CMOR_varname": "xvelsurf", + "standard_name": "land_ice_surface_x_velocity", + "long_name": "X-component of land ice surface velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "yvelsurf": { + "CMOR_varname": "yvelsurf", + "standard_name": "land_ice_surface_y_velocity", + "long_name": "Y-component of land ice surface velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "zvelsurf": { + "CMOR_varname": "zvelsurf", + "standard_name": "land_ice_surface_upward_velocity", + "long_name": "Upward component of land ice surface velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "xvelbase": { + "CMOR_varname": "xvelbase", + "standard_name": "land_ice_basal_x_velocity", + "long_name": "X-component of land ice basal velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "yvelbase": { + "CMOR_varname": "yvelbase", + "standard_name": "land_ice_basal_y_velocity", + "long_name": "Y-component of land ice basal velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "zvelbase": { + "CMOR_varname": "zvelbase", + "standard_name": "land_ice_basal_upward_velocity", + "long_name": "Upward-component of land ice basal velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "xvelmean": { + "CMOR_varname": "xvelmean", + "standard_name": "land_ice_vertical_mean_x_velocity", + "long_name": "X-component of land ice vertical mean velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "yvelmean": { + "CMOR_varname": "yvelmean", + "standard_name": "land_ice_vertical_mean_y_velocity", + "long_name": "Y-component of land ice vertical mean velocity", + "mipTable": "IyrAnt", + "units": "m s-1" + }, + "strbasemag": { + "CMOR_varname": "strbasemag", + "standard_name": "land_ice_basal_drag", + "long_name": "Land Ice Basal Drag", + "mipTable": "IyrAnt", + "units": "Pa" + }, + "hfgeoubed": { + "CMOR_varname": "hfgeoubed", + "standard_name": "upward_geothermal_heat_flux_at_ground_level_in_land_ice", + "long_name": "Geothermal Heat flux beneath land ice", + "mipTable": "IyrAnt", + "units": "W m-2" + }, + "lim": { + "CMOR_varname": "lim", + "standard_name": "land_ice_mass", + "long_name": "Ice sheet mass", + "mipTable": "IyrAnt", + "units": "kg" + }, + "limnsw": { + "CMOR_varname": "limnsw", + "standard_name": "land_ice_mass_not_displacing_sea_water", + "long_name": "Ice sheet mass that does not displace sea water", + "mipTable": "IyrAnt", + "units": "kg" + }, + "iareagr": { + "CMOR_varname": "iareagr", + "standard_name": "grounded_ice_sheet_area", + "long_name": "Area covered by grounded ice sheet", + "mipTable": "IyrAnt", + "units": "m2" + }, + "iareafl": { + "CMOR_varname": "iareafl", + "standard_name": "floating_ice_shelf_area", + "long_name": "Area covered by floating ice shelves", + "mipTable": "IyrAnt", + "units": "m2" + }, + "tendacabf": { + "CMOR_varname": "tendacabf", + "standard_name": "tendency_of_land_ice_mass_due_to_surface_mass_balance", + "long_name": "Total surface mass balance flux", + "mipTable": "IyrAnt", + "units": "kg s-1" + }, + "tendlibmassbf": { + "CMOR_varname": "tendlibmassbf", + "standard_name": "tendency_of_land_ice_mass_due_to_basal_mass_balance", + "long_name": "Total basal mass balance flux", + "mipTable": "IyrAnt", + "units": "kg s-1" + }, + "tendlicalvf": { + "CMOR_varname": "tendlicalvf", + "standard_name": "tendency_of_land_ice_mass_due_to_calving", + "long_name": "Total calving flux", + "mipTable": "IyrAnt", + "units": "kg s-1" + }, + "o3": { + "CMOR_varname": "o3", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Ozone volume mixing ratio", + "mipTable": "E3hrPt", + "units": "mol mol-1" + }, + "rls": { + "CMOR_varname": "rls", + "standard_name": "surface_net_downward_longwave_flux", + "long_name": "Net Longwave Surface Radiation", + "mipTable": "day", + "units": "W m-2" + }, + "ps": { + "CMOR_varname": "ps", + "standard_name": "surface_air_pressure", + "long_name": "Surface Pressure", + "mipTable": "CFmon", + "units": "Pa" + }, + "pp": { + "CMOR_varname": "pp", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", + "long_name": "Primary Carbon Production by Total Phytoplankton", + "mipTable": "Omon", + "units": "mol m-3 s-1" + }, + "volcello": { + "CMOR_varname": "volcello", + "standard_name": "ocean_volume", + "long_name": "Ocean Grid-Cell Volume", + "mipTable": "Omon", + "units": "m3" + }, + "clivi": { + "CMOR_varname": "clivi", + "standard_name": "atmosphere_mass_content_of_cloud_ice", + "long_name": "Ice Water Path", + "mipTable": "CF3hr", + "units": "kg m-2" + }, + "clt": { + "CMOR_varname": "clt", + "standard_name": "cloud_area_fraction", + "long_name": "Total Cloud Fraction", + "mipTable": "CF3hr", + "units": "%" + }, + "clwvi": { + "CMOR_varname": "clwvi", + "standard_name": "atmosphere_mass_content_of_cloud_condensed_water", + "long_name": "Condensed Water Path", + "mipTable": "CF3hr", + "units": "kg m-2" + }, + "hfls": { + "CMOR_varname": "hfls", + "standard_name": "surface_upward_latent_heat_flux", + "long_name": "Surface Upward Latent Heat Flux", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "hfss": { + "CMOR_varname": "hfss", + "standard_name": "surface_upward_sensible_heat_flux", + "long_name": "Surface Upward Sensible Heat Flux", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "pr": { + "CMOR_varname": "pr", + "standard_name": "precipitation_flux", + "long_name": "Precipitation", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prc": { + "CMOR_varname": "prc", + "standard_name": "convective_precipitation_flux", + "long_name": "Convective Precipitation", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prsn": { + "CMOR_varname": "prsn", + "standard_name": "snowfall_flux", + "long_name": "Snowfall Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "prw": { + "CMOR_varname": "prw", + "standard_name": "atmosphere_mass_content_of_water_vapor", + "long_name": "Water Vapor Path", + "mipTable": "CF3hr", + "units": "kg m-2" + }, + "rlds": { + "CMOR_varname": "rlds", + "standard_name": "surface_downwelling_longwave_flux_in_air", + "long_name": "Surface Downwelling Longwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rldscs": { + "CMOR_varname": "rldscs", + "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rlus": { + "CMOR_varname": "rlus", + "standard_name": "surface_upwelling_longwave_flux_in_air", + "long_name": "Surface Upwelling Longwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rlut": { + "CMOR_varname": "rlut", + "standard_name": "toa_outgoing_longwave_flux", + "long_name": "TOA Outgoing Longwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rlutcs": { + "CMOR_varname": "rlutcs", + "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rsds": { + "CMOR_varname": "rsds", + "standard_name": "surface_downwelling_shortwave_flux_in_air", + "long_name": "Surface Downwelling Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rsdscs": { + "CMOR_varname": "rsdscs", + "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", + "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rsdt": { + "CMOR_varname": "rsdt", + "standard_name": "toa_incoming_shortwave_flux", + "long_name": "TOA Incident Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rsus": { + "CMOR_varname": "rsus", + "standard_name": "surface_upwelling_shortwave_flux_in_air", + "long_name": "Surface Upwelling Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rsut": { + "CMOR_varname": "rsut", + "standard_name": "toa_outgoing_shortwave_flux", + "long_name": "TOA Outgoing Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "rsutcs": { + "CMOR_varname": "rsutcs", + "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", + "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "sfcWind": { + "CMOR_varname": "sfcWind", + "standard_name": "wind_speed", + "long_name": "Near-Surface Wind Speed", + "mipTable": "CF3hr", + "units": "m s-1" + }, + "co23D": { + "CMOR_varname": "co23D", + "standard_name": "mass_fraction_of_carbon_dioxide_tracer_in_air", + "long_name": "3D field of transported CO2", + "mipTable": "Emon", + "units": "kg kg-1" + }, + "cSoilAbove1m": { + "CMOR_varname": "cSoilAbove1m", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon Mass in Soil Pool above 1m Depth", + "mipTable": "Emon", + "units": "kg m-2" + }, + "fNfert": { + "CMOR_varname": "fNfert", + "standard_name": "tendency_of_soil_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fertilization", + "long_name": "total N added for cropland fertilisation (artificial and manure)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fNAnthDisturb": { + "CMOR_varname": "fNAnthDisturb", + "standard_name": "tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_anthropogenic_emission", + "long_name": "nitrogen mass flux out of land due to any human activity", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "pastureFracC3": { + "CMOR_varname": "pastureFracC3", + "standard_name": "area_fraction", + "long_name": "C3 Pasture Area Percentage", + "mipTable": "Emon", + "units": "%" + }, + "pastureFracC4": { + "CMOR_varname": "pastureFracC4", + "standard_name": "area_fraction", + "long_name": "C4 Pasture Area Percentage", + "mipTable": "Emon", + "units": "%" + }, + "cVegTree": { + "CMOR_varname": "cVegTree", + "standard_name": "vegetation_carbon_content", + "long_name": "Carbon mass in vegetation on tree tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cVegShrub": { + "CMOR_varname": "cVegShrub", + "standard_name": "vegetation_carbon_content", + "long_name": "Carbon mass in vegetation on shrub tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cVegGrass": { + "CMOR_varname": "cVegGrass", + "standard_name": "vegetation_carbon_content", + "long_name": "Carbon mass in vegetation on grass tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cLitterTree": { + "CMOR_varname": "cLitterTree", + "standard_name": "litter_mass_content_of_carbon", + "long_name": "Carbon mass in litter on tree tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cLitterShrub": { + "CMOR_varname": "cLitterShrub", + "standard_name": "litter_mass_content_of_carbon", + "long_name": "Carbon mass in litter on shrub tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cLitterGrass": { + "CMOR_varname": "cLitterGrass", + "standard_name": "litter_mass_content_of_carbon", + "long_name": "Carbon mass in litter on grass tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cSoilTree": { + "CMOR_varname": "cSoilTree", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon mass in soil on tree tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cSoilShrub": { + "CMOR_varname": "cSoilShrub", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon mass in soil on shrub tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cSoilGrass": { + "CMOR_varname": "cSoilGrass", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon mass in soil on grass tiles", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cSoilLevels": { + "CMOR_varname": "cSoilLevels", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon mass in each model soil level (summed over all soil carbon pools in that level)", + "mipTable": "Emon", + "units": "kg m-2" + }, + "cSoilPools": { + "CMOR_varname": "cSoilPools", + "standard_name": "soil_mass_content_of_carbon", + "long_name": "Carbon mass in each model soil pool (summed over vertical levels)", + "mipTable": "Emon", + "units": "kg m-2" + }, + "tSoilPools": { + "CMOR_varname": "tSoilPools", + "standard_name": "soil_pool_carbon_decay_rate", + "long_name": "turnover rate of each model soil carbon pool", + "mipTable": "Emon", + "units": "s-1" + }, + "fVegSoilSenescence": { + "CMOR_varname": "fVegSoilSenescence", + "standard_name": "mass_flux_of_carbon_into_soil_from_vegetation_due_to_senescence", + "long_name": "Total Carbon Mass Flux from Vegetation to Soil as a result of leaf", + "mipTable": "branch", + "units": "and root senescence" + }, + "fVegSoilMortality": { + "CMOR_varname": "fVegSoilMortality", + "standard_name": "mass_flux_of_carbon_into_soil_from_vegetation_due_to_mortality", + "long_name": "Total Carbon Mass Flux from Vegetation to Soil as a result of mortality", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nppStem": { + "CMOR_varname": "nppStem", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_stems", + "long_name": "net primary production allcoated to stem", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nppOther": { + "CMOR_varname": "nppOther", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_miscellaneous_living_matter", + "long_name": "net primary production allcoated to other pools (not leaves stem or roots)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raOther": { + "CMOR_varname": "raOther", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_miscellaneous_living_matter", + "long_name": "Total respiration from other pools (not leaves stem or roots)", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "gppTree": { + "CMOR_varname": "gppTree", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "gross primary production on tree tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "gppShrub": { + "CMOR_varname": "gppShrub", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "gross primary production on Shrub tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "gppGrass": { + "CMOR_varname": "gppGrass", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "gross primary production on grass tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nppTree": { + "CMOR_varname": "nppTree", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "net primary production on tree tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nppShrub": { + "CMOR_varname": "nppShrub", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "net primary production on Shrub tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "nppGrass": { + "CMOR_varname": "nppGrass", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", + "long_name": "net primary production on grass tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raTree": { + "CMOR_varname": "raTree", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", + "long_name": "autotrophic respiration on tree tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raShrub": { + "CMOR_varname": "raShrub", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", + "long_name": "autotrophic respiration on Shrub tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "raGrass": { + "CMOR_varname": "raGrass", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", + "long_name": "autotrophic respiration on grass tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhTree": { + "CMOR_varname": "rhTree", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", + "long_name": "heterotrophic respiration on tree tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhShrub": { + "CMOR_varname": "rhShrub", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", + "long_name": "heterotrophic respiration on Shrub tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "rhGrass": { + "CMOR_varname": "rhGrass", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", + "long_name": "heterotrophic respiration on grass tiles", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "vegHeightPasture": { + "CMOR_varname": "vegHeightPasture", + "standard_name": "canopy_height", + "long_name": "Vegetation height averaged over the pasture fraction of a grid cell.", + "mipTable": "Emon", + "units": "m" + }, + "ppdiat": { + "CMOR_varname": "ppdiat", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", + "long_name": "Net Primary Organic Carbon Production by Diatoms", + "mipTable": "Emon", + "units": "mol m-3 s-1" + }, + "ppdiaz": { + "CMOR_varname": "ppdiaz", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", + "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", + "mipTable": "Emon", + "units": "mol m-3 s-1" + }, + "ppcalc": { + "CMOR_varname": "ppcalc", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", + "mipTable": "Emon", + "units": "mol m-3 s-1" + }, + "pppico": { + "CMOR_varname": "pppico", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", + "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", + "mipTable": "Emon", + "units": "mol m-3 s-1" + }, + "ppmisc": { + "CMOR_varname": "ppmisc", + "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", + "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", + "mipTable": "Emon", + "units": "mol m-3 s-1" + }, + "expn": { + "CMOR_varname": "expn", + "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", + "long_name": "Sinking Particulate Organic Nitrogen Flux", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "expp": { + "CMOR_varname": "expp", + "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", + "long_name": "Sinking Particulate Organic Phosphorus Flux", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "expfe": { + "CMOR_varname": "expfe", + "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", + "long_name": "Sinking Particulate Iron Flux", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "expsi": { + "CMOR_varname": "expsi", + "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", + "long_name": "Sinking Particulate Silica Flux", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "expcalc": { + "CMOR_varname": "expcalc", + "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Calcite Flux", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "exparag": { + "CMOR_varname": "exparag", + "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", + "long_name": "Sinking Aragonite Flux", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "fgco2nat": { + "CMOR_varname": "fgco2nat", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Natural CO2", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fgco2abio": { + "CMOR_varname": "fgco2abio", + "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Abiotic CO2", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fg14co2abio": { + "CMOR_varname": "fg14co2abio", + "standard_name": "surface_downward_mass_flux_of_14C_dioxide_abiotic_analogue_expressed_as_carbon", + "long_name": "Surface Downward Flux of Abiotic 14CO2", + "mipTable": "Emon", + "units": "kg m-2 s-1" + }, + "fddtalk": { + "CMOR_varname": "fddtalk", + "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", + "long_name": "Rate of Change of Total Alkalinity", + "mipTable": "Emon", + "units": "mol m-2 s-1" + }, + "volcello": { + "CMOR_varname": "volcello", + "standard_name": "ocean_volume", + "long_name": "Ocean Grid-Cell Volume", + "mipTable": "Oyr", + "units": "m3" + }, + "ci": { + "CMOR_varname": "ci", + "standard_name": "convection_time_fraction", + "long_name": "Fraction of Time Convection Occurs", + "mipTable": "CF3hr", + "units": "1" + }, + "evspsbl": { + "CMOR_varname": "evspsbl", + "standard_name": "water_evapotranspiration_flux", + "long_name": "Evaporation including Sublimation and Transpiration", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "hurs": { + "CMOR_varname": "hurs", + "standard_name": "relative_humidity", + "long_name": "Near-Surface Relative Humidity", + "mipTable": "CF3hr", + "units": "%" + }, + "rtmt": { + "CMOR_varname": "rtmt", + "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", + "long_name": "Net Downward Flux at Top of Model", + "mipTable": "CF3hr", + "units": "W m-2" + }, + "sbl": { + "CMOR_varname": "sbl", + "standard_name": "tendency_of_atmosphere_mass_content_of_water_vapor_due_to_sublimation_of_surface_snow_and_ice", + "long_name": "Surface Snow and Ice Sublimation Flux", + "mipTable": "CF3hr", + "units": "kg m-2 s-1" + }, + "sci": { + "CMOR_varname": "sci", + "standard_name": "shallow_convection_time_fraction", + "long_name": "Fraction of Time Shallow Convection Occurs", + "mipTable": "CF3hr", + "units": "1" + }, + "tauu": { + "CMOR_varname": "tauu", + "standard_name": "surface_downward_eastward_stress", + "long_name": "Surface Downward Eastward Wind Stress", + "mipTable": "CF3hr", + "units": "Pa" + }, + "tauv": { + "CMOR_varname": "tauv", + "standard_name": "surface_downward_northward_stress", + "long_name": "Surface Downward Northward Wind Stress", + "mipTable": "CF3hr", + "units": "Pa" + }, + "wsgmax10m": { + "CMOR_varname": "wsgmax10m", + "standard_name": "wind_speed_of_gust", + "long_name": "Maximum Wind Speed of Gust at 10m", + "mipTable": "6hrPlev", + "units": "m s-1" + }, + "ua": { + "CMOR_varname": "ua", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "AERmonZ", + "units": "m s-1" + }, + "swsffluxaero": { + "CMOR_varname": "swsffluxaero", + "standard_name": "surface_downwelling_shortwave_flux_in_air_due_to_volcanic_ambient_aerosol_particles", + "long_name": "Shortwave heating rate due to volcanic aerosols", + "mipTable": "6hrPlevPt", + "units": "W m-2" + }, + "jpdftaureicemodis": { + "CMOR_varname": "jpdftaureicemodis", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "MODIS Optical Thickness-Particle Size joint distribution", + "mipTable": "ice", + "units": "E3hrPt" + }, + "hus27": { + "CMOR_varname": "hus27", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "lwtoafluxaerocs": { + "CMOR_varname": "lwtoafluxaerocs", + "standard_name": "toa_outgoing_longwave_flux_due_to_volcanic_ambient_aerosol_particles_assuming_clear_sky", + "long_name": "Longwave flux due to volcanic aerosols at TOA under clear sky", + "mipTable": "6hrPlevPt", + "units": "W m-2" + }, + "rainmxrat27": { + "CMOR_varname": "rainmxrat27", + "standard_name": "mass_fraction_of_rain_in_air", + "long_name": "rain_mixing_ratio", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "lwsffluxaero": { + "CMOR_varname": "lwsffluxaero", + "standard_name": "surface_downwelling_longwave_flux_in_air_due_to_volcanic_ambient_aerosol_particles", + "long_name": "Longwave flux due to volcanic aerosols at the surface", + "mipTable": "6hrPlevPt", + "units": "W m-2" + }, + "clmisr": { + "CMOR_varname": "clmisr", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", + "mipTable": "E3hrPt", + "units": "%" + }, + "ta7h": { + "CMOR_varname": "ta7h", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "E3hrPt", + "units": "K" + }, + "jpdftaureliqmodis": { + "CMOR_varname": "jpdftaureliqmodis", + "standard_name": "cloud_area_fraction_in_atmosphere_layer", + "long_name": "MODIS Optical Thickness-Particle Size joint distribution", + "mipTable": "liquid", + "units": "E3hrPt" + }, + "ua7h": { + "CMOR_varname": "ua7h", + "standard_name": "eastward_wind", + "long_name": "Eastward Wind", + "mipTable": "E3hrPt", + "units": "m s-1" + }, + "ta27": { + "CMOR_varname": "ta27", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "6hrPlevPt", + "units": "K" + }, + "va7h": { + "CMOR_varname": "va7h", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "E3hrPt", + "units": "m s-1" + }, + "cldwatmxrat27": { + "CMOR_varname": "cldwatmxrat27", + "standard_name": "cloud_liquid_water_mixing_ratio", + "long_name": "Cloud Water Mixing Ratio", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "swtoafluxaerocs": { + "CMOR_varname": "swtoafluxaerocs", + "standard_name": "toa_outgoing_shortwave_flux_due_to_volcanic_ambient_aerosol_particles_assuming_clear_sky", + "long_name": "Shortwave flux due to volcanic aerosols at TOA under clear sky", + "mipTable": "6hrPlevPt", + "units": "W m-2" + }, + "sltbasin": { + "CMOR_varname": "sltbasin", + "standard_name": "northward_ocean_salt_transport", + "long_name": "Northward Ocean Salt Transport", + "mipTable": "EmonZ", + "units": "kg s-1" + }, + "hus7h": { + "CMOR_varname": "hus7h", + "standard_name": "specific_humidity", + "long_name": "Specific Humidity", + "mipTable": "E3hrPt", + "units": "1" + }, + "cldicemxrat27": { + "CMOR_varname": "cldicemxrat27", + "standard_name": "cloud_ice_mixing_ratio", + "long_name": "Cloud Ice Mixing Ratio", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "grplmxrat27": { + "CMOR_varname": "grplmxrat27", + "standard_name": "mass_fraction_of_graupel_in_air", + "long_name": "Graupel Mixing Ratio", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "snowmxrat27": { + "CMOR_varname": "snowmxrat27", + "standard_name": "mass_fraction_of_snow_in_air", + "long_name": "snow_mixing_ratio", + "mipTable": "6hrPlevPt", + "units": "1" + }, + "wilt": { + "CMOR_varname": "wilt", + "standard_name": "volume_fraction_of_condensed_water_in_soil_at_wilting_point", + "long_name": "Wilting Point", + "mipTable": "Efx", + "units": "%" + }, + "fldcapacity": { + "CMOR_varname": "fldcapacity", + "standard_name": "volume_fraction_of_condensed_water_in_soil_at_field_capacity", + "long_name": "Field Capacity", + "mipTable": "Efx", + "units": "%" + }, + "ksat": { + "CMOR_varname": "ksat", + "standard_name": "soil_hydraulic_conductivity_at_saturation", + "long_name": "Saturated Hydraulic Conductivity", + "mipTable": "Efx", + "units": "1e-6 m s-1" + }, + "rootdsl": { + "CMOR_varname": "rootdsl", + "standard_name": "root_mass_content_of_carbon", + "long_name": "Root Distribution", + "mipTable": "Efx", + "units": "kg m-2" + }, + "slthick": { + "CMOR_varname": "slthick", + "standard_name": "cell_thickness", + "long_name": "Thickness of Soil Layers", + "mipTable": "Efx", + "units": "m" + }, + "hfdsnb": { + "CMOR_varname": "hfdsnb", + "standard_name": "downward_heat_flux_at_ground_level_in_snow", + "long_name": "Downward heat flux at snow base", + "mipTable": "Eday", + "units": "W m-2" + }, + "hursminCrop": { + "CMOR_varname": "hursminCrop", + "standard_name": "relative_humidity", + "long_name": "Daily Minimum Near-Surface Relative Humidity over Crop Tile", + "mipTable": "Emon", + "units": "%" + }, + "hursminCrop": { + "CMOR_varname": "hursminCrop", + "standard_name": "relative_humidity", + "long_name": "Daily Minimum Near-Surface Relative Humidity over Crop Tile", + "mipTable": "Eday", + "units": "%" + }, + "treeFrac": { + "CMOR_varname": "treeFrac", + "standard_name": "area_fraction", + "long_name": "Tree Cover Fraction", + "mipTable": "Eyr", + "units": "%" + }, + "grassFrac": { + "CMOR_varname": "grassFrac", + "standard_name": "area_fraction", + "long_name": "Natural Grass Area Percentage", + "mipTable": "Eyr", + "units": "%" + }, + "shrubFrac": { + "CMOR_varname": "shrubFrac", + "standard_name": "area_fraction", + "long_name": "Percentage Cover by Shrub", + "mipTable": "Eyr", + "units": "%" + }, + "cropFrac": { + "CMOR_varname": "cropFrac", + "standard_name": "area_fraction", + "long_name": "Percentage Crop Cover", + "mipTable": "Eyr", + "units": "%" + }, + "vegFrac": { + "CMOR_varname": "vegFrac", + "standard_name": "area_fraction", + "long_name": "Total vegetated percentage cover", + "mipTable": "Eyr", + "units": "%" + }, + "baresoilFrac": { + "CMOR_varname": "baresoilFrac", + "standard_name": "area_fraction", + "long_name": "Bare Soil Percentage", + "mipTable": "Eyr", + "units": "%" + }, + "residualFrac": { + "CMOR_varname": "residualFrac", + "standard_name": "area_fraction", + "long_name": "Percentage of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", + "mipTable": "Eyr", + "units": "%" + }, + "va": { + "CMOR_varname": "va", + "standard_name": "northward_wind", + "long_name": "Northward Wind", + "mipTable": "AERmonZ", + "units": "m s-1" + }, + "n2o": { + "CMOR_varname": "n2o", + "standard_name": "mole_fraction_of_nitrous_oxide_in_air", + "long_name": "N2O volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "vt100": { + "CMOR_varname": "vt100", + "standard_name": "northward_heat_flux_in_air_due_to_eddy_advection", + "long_name": "Northward heat flux due to eddies", + "mipTable": "AERmonZ", + "units": "W m-2" + }, + "bry": { + "CMOR_varname": "bry", + "standard_name": "mole_fraction_of_inorganic_bromine_in_air", + "long_name": "Total inorganic bromine volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "oh": { + "CMOR_varname": "oh", + "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", + "long_name": "OH volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "zg": { + "CMOR_varname": "zg", + "standard_name": "geopotential_height", + "long_name": "Geopotential Height", + "mipTable": "AERmonZ", + "units": "m" + }, + "noy": { + "CMOR_varname": "noy", + "standard_name": "mole_fraction_of_noy_expressed_as_nitrogen_in_air", + "long_name": "Total reactive nitrogen volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "hno3": { + "CMOR_varname": "hno3", + "standard_name": "mole_fraction_of_nitric_acid_in_air", + "long_name": "HNO3 volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "h2o": { + "CMOR_varname": "h2o", + "standard_name": "mass_fraction_of_water_in_air", + "long_name": "Mass Fraction of Water", + "mipTable": "AERmonZ", + "units": "1" + }, + "ch4": { + "CMOR_varname": "ch4", + "standard_name": "mole_fraction_of_methane_in_air", + "long_name": "CH4 volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "cly": { + "CMOR_varname": "cly", + "standard_name": "mole_fraction_of_inorganic_chlorine_in_air", + "long_name": "Total inorganic chlorine volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "ho2": { + "CMOR_varname": "ho2", + "standard_name": "mole_fraction_of_hydroperoxyl_radical_in_air", + "long_name": "HO2 volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "ta": { + "CMOR_varname": "ta", + "standard_name": "air_temperature", + "long_name": "Air Temperature", + "mipTable": "AERmonZ", + "units": "K" + }, + "o3": { + "CMOR_varname": "o3", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Ozone volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "hcl": { + "CMOR_varname": "hcl", + "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", + "long_name": "HCl volume mixing ratio", + "mipTable": "AERmonZ", + "units": "mol mol-1" + }, + "sfo3max": { + "CMOR_varname": "sfo3max", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "daily maximum O3 volume mixing ratio in lowest model layer", + "mipTable": "AERday", + "units": "mol mol-1" + }, + "od550aer": { + "CMOR_varname": "od550aer", + "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", + "long_name": "ambient aerosol optical thickness at 550 nm", + "mipTable": "AERday", + "units": "1" + }, + "lossch4": { + "CMOR_varname": "lossch4", + "standard_name": "tendency_of_atmosphere_mole_concentration_of_methane_due_to_chemical_destruction", + "long_name": "Monthly Loss of atmospheric Methane", + "mipTable": "AERmon", + "units": "mol m-3 s-1" + }, + "lossco": { + "CMOR_varname": "lossco", + "standard_name": "tendency_of_atmosphere_mole_concentration_of_carbon_monoxide_due_to_chemical_destruction", + "long_name": "Monthly Loss of atmospheric Carbon Monoxide", + "mipTable": "AERmon", + "units": "mol m-3 s-1" + }, + "o3ste": { + "CMOR_varname": "o3ste", + "standard_name": "mole_fraction_of_ozone_in_air", + "long_name": "Ozone volume mixing ratio", + "mipTable": "AERmon", + "units": "mol mol-1" + }, + "lossn2o": { + "CMOR_varname": "lossn2o", + "standard_name": "tendency_of_atmosphere_mole_concentration_of_nitrous_oxide_due_to_chemical_destruction", + "long_name": "Monthly Loss of atmospheric Nitrous Oxide", + "mipTable": "AERmon", + "units": "mol m-3 s-1" + }, + "sw18O": { + "CMOR_varname": "sw18O", + "standard_name": "isotope_ratio_of_17O_to_16O_in_sea_water_excluding_solutes_and_solids", + "long_name": "Isotopic Ratio of Oxygen-17 in Sea Water", + "mipTable": "Emon", + "units": "1" + }, + "sw2H": { + "CMOR_varname": "sw2H", + "standard_name": "isotope_ratio_of_2H_to_1H_in_sea_water_excluding_solutes_and_solids", + "long_name": "Isotopic Ratio of Deuterium in Sea Water", + "mipTable": "Emon", + "units": "1" + }, + "sfcWindmax": { + "CMOR_varname": "sfcWindmax", + "standard_name": "wind_speed", + "long_name": "Mean Daily Maximum Near-Surface Wind Speed", + "mipTable": "Emon", + "units": "m s-1" + }, + "vtem": { + "CMOR_varname": "vtem", + "standard_name": "northward_transformed_eulerian_mean_air_velocity", + "long_name": "Transformed Eulerian Mean northward wind", + "mipTable": "EmonZ", + "units": "m s-1" + }, + "wtem": { + "CMOR_varname": "wtem", + "standard_name": "upward_transformed_eulerian_mean_air_velocity", + "long_name": "Transformed Eulerian Mean upward wind", + "mipTable": "EmonZ", + "units": "m s-1" + }, + "epfy": { + "CMOR_varname": "epfy", + "standard_name": "northward_eliassen_palm_flux_in_air", + "long_name": "Northward Component of the Eliassen-Palm Flux", + "mipTable": "EmonZ", + "units": "m3 s-2" + }, + "utendepfd": { + "CMOR_varname": "utendepfd", + "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", + "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", + "mipTable": "EmonZ", + "units": "m s-2" + }, + "zmtnt": { + "CMOR_varname": "zmtnt", + "standard_name": "tendency_of_air_temperature_due_to_diabatic_processes", + "long_name": "Zonal Mean Diabatic Heating Rates", + "mipTable": "EmonZ", + "units": "K s-1" + } +} \ No newline at end of file diff --git a/tools/__init__.py b/tools/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tools/catalog_builder/__init__.py b/tools/catalog_builder/__init__.py new file mode 100644 index 000000000..e69de29bb From 6bb4a88e358f0879bc8260e10ff939bbf5226f7e Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 16 Aug 2024 16:14:37 -0500 Subject: [PATCH 175/178] update src/conda/env_finite_amplitude_wave_diag.yml --- src/conda/env_finite_amplitude_wave_diag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 896ece9bf..f3b878675 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -16,4 +16,4 @@ dependencies: - bottleneck - pip - pip: - - falwa==1.2.1 + - git+https://github.com/csyhuang/hn2016_falwa.git From 9c7b0165046c92bdf92665f1e4bea7904735fae6 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Fri, 16 Aug 2024 16:16:46 -0500 Subject: [PATCH 176/178] update env_finite_amplitude_wave_diag.yml --- src/conda/env_finite_amplitude_wave_diag.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index f3b878675..1a7bfff08 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -2,18 +2,17 @@ name: _MDTF_finite_amplitude_wave_diag channels: - conda-forge dependencies: -- python=3.10 -- numpy=1.22.3 -- scipy=1.9 -- netCDF4=1.5.8 -- xarray=2023.2.0 -- cartopy=0.21.0 -- matplotlib=3.5.3 +- python=3.12 +- numpy=1.26.4 +- scipy=1.14.0 +- netCDF4=1.6.5 +- xarray=2024.1.1 +- cartopy=0.22.0 +- matplotlib=3.8.2 - pytest==7.4.0 -- pip=22.0.4 - dask - gridfill - bottleneck -- pip +- pip=23.3.1 - pip: - git+https://github.com/csyhuang/hn2016_falwa.git From d8e34f6be795914084f392106fec96944c704834 Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 18 Aug 2024 10:13:57 -0500 Subject: [PATCH 177/178] Update env file to use PyPI --- src/conda/env_finite_amplitude_wave_diag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/src/conda/env_finite_amplitude_wave_diag.yml index 1a7bfff08..96abe0bed 100644 --- a/src/conda/env_finite_amplitude_wave_diag.yml +++ b/src/conda/env_finite_amplitude_wave_diag.yml @@ -15,4 +15,4 @@ dependencies: - bottleneck - pip=23.3.1 - pip: - - git+https://github.com/csyhuang/hn2016_falwa.git + - falwa==2.0.0 From 6d1a94b48d8942a88cb4b7bc949a94aab7116a3b Mon Sep 17 00:00:00 2001 From: csyhuang Date: Sun, 18 Aug 2024 17:22:41 -0500 Subject: [PATCH 178/178] move environment file and runtime config file from /src to my POD directory --- .../default_finite_amplitude_wave_diag.jsonc | 0 .../env_finite_amplitude_wave_diag.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {src => diagnostics/finite_amplitude_wave_diag}/default_finite_amplitude_wave_diag.jsonc (100%) rename {src/conda => diagnostics/finite_amplitude_wave_diag}/env_finite_amplitude_wave_diag.yml (100%) diff --git a/src/default_finite_amplitude_wave_diag.jsonc b/diagnostics/finite_amplitude_wave_diag/default_finite_amplitude_wave_diag.jsonc similarity index 100% rename from src/default_finite_amplitude_wave_diag.jsonc rename to diagnostics/finite_amplitude_wave_diag/default_finite_amplitude_wave_diag.jsonc diff --git a/src/conda/env_finite_amplitude_wave_diag.yml b/diagnostics/finite_amplitude_wave_diag/env_finite_amplitude_wave_diag.yml similarity index 100% rename from src/conda/env_finite_amplitude_wave_diag.yml rename to diagnostics/finite_amplitude_wave_diag/env_finite_amplitude_wave_diag.yml