Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

array_group in Registry variables


New member
Can you tell me more about the array_group specification in some registry variables?
I couldn't find anything in the tutorial materials or users guide.

I see array groups for

Does this enable the variable to be advected, similar to WRF? What's the difference between moist and number?

This is a question that requires full understanding of the Registry. Please read this document to understand how it works.
Thanks for your quick reply. I suppose this means the MPAS "array_group" functions similarly to WRF's "use" specification.
I'm not entirely sure how to "translate" the contents in the WRF document to MPAS, though. I can see there are similarities between the models but it doesn't mean the implementation is the same.

I suppose the moist array_group is then advected by the model dynamics, just like it's done in WRF.

How about the distinction between array_group "moist" and "number" and "aer_cam"? In my case, I'm developing a new microphysics scheme, and I want to add an aerosol variable that serves as a CNN. This means I'll have a variable for when it's dry and multiple species for when it's combined with a hydrometeor (e.g. aero_dry, aero_qc, aero_qr). Should I group them with aer_cam or moist?

Does the dynamics transport all of them equally, such that I'd get the same output if I chose any of these groups?
I am sorry that I cannot answer your questions. This is more software-oriented and I am also in the learning process to understand how it works. MPAS borrows the 'registry' idea from WRF, yet I agree with you that the implementation could be different.
I will forward your question to our software engineers and hopefully someone can get back to you soon.
Hello Maria,

I'm a software engineer on MPAS, but many details were decided before I joined. I also don't have WRF experience, so I may not be able to help much with the "translation."

That said:
I suppose the moist array_group is then advected by the model dynamics, just like it's done in WRF.
From my understanding, every member of the scalars var_array are advected. So both the "moist" and "number" groups.

How about the distinction between array_group "moist" and "number" and "aer_cam"?
"moist" is a special group that shouldn't be modified or have new members added. The "moist" members are used to update some other state/prognostic variables. The "number" group is used by only a few (micro)physics schemes so I'm less sure of how they fit in other than being advected. The "aer_cam" group is different since those all belong to the "aerosols" var_array. It is currently assumed that these are "climatological" aerosols and thus do not vary w.r.t. space or time.

My recommendation would be to add your own array_group, probably to the scalars var_array, for what you're attempting. You will probably want to look at materials from our MPAS-A Tutorial especially: the slides on Adding Passives Tracers to MPAS Atmosphere Simulations (PDF) and the section "6. Adding new passive tracers" from the Practice Guide.
Got it ;) Thanks for helping me with this, Ming and gdicker!
I'll follow your suggestion and create my own array group within the scalars array.