-
Notifications
You must be signed in to change notification settings - Fork 383
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide aerosol initialization support for SCM runs #1350
Conversation
@wlin7 : Would you please help me reviewing these changes. I am not so familiar with how SCM works in the model. Please feel free to add more reviewers. |
No problem, @singhbalwinder . I am going to review the changes and add others as needed. |
Hi @bogensch, This PR covers multiple issues. I have reviewed all except one file: tracer_data.F90, which I will do after an update from you. Suggestions and findings itemized below.
iii) scm_dgnum, scm_std, scm_num, and scm_div are delcared as public allocatable arrays to be used by other modules (such as iop.F90). Don't know if it is safe to use public module variables like these. Just seem unusual to me. But please ignore this comment if you are confident with that. iv) Those public allocatable arrays are used in tracer_data.F90; but in the declaration block of tracer_data.F90, it has
Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove the changes to config_machines.xml from this branch and use a different PR for that (if needed).
Thanks @wlin7 for your careful review. I have pushed changes to my branch to reflect your comments. Responses to some of your points below:
|
Thanks @bogensch for the quick work. I am comfortable with all your updates. For 2) I agreed with you and @PeterCaldwell to let user be fully aware of doing what are intended with the SCAM generic. Would it be useful to have inline comments somewhere along with the compset alias to remind what are typically required to be set in user_nl, provided user would look up for such a generic compset? I have yet to review the tracer_data.F90. Thanks for pointing out there is an appropriate "use scamMod" at the subroutine level. It should be good then. For the 5), it was just out of my curiosity of the purpose of using swrad_off lwrad_off. My thinking is, when either of them is off, surface energy balance would be very different, which would affect the model calculated surface fluxes (latent and sensible heat), and the results will be up to interpretation. It does not have to be enforced with prescribed surface fluxes, though, esp. if there is consideration for more flexible experimental design. |
Thanks Wuyin for your careful review. Your suggestions have definitely improved the SCM! In terms of the last point - the goal of lwrad_off is to allow cases like RICO where the LW radiative cooling is prescribed as part of the "advective forcing" so it's not that there's no radiation (which would be a really weird case and users would deserve whatever bizarre surface fluxes they got), it's just that it's coming from somewhere other than the radiation scheme. Are you saying that LW fluxes at the surface are used directly by the surface flux calculation (which would screw things up unless fluxes were prescribed, as you suggest)? The swrad_off case is easier to justify - we see this case in the real world every time it's night outside! ;-) |
Thanks Pete for sharing your thoughts. This sounds good with me and it represents an important added capability for the SCM. Regarding LW fluxes at surface, I am not sure if they are directly used to calculate surface fluxes. My thought was that indirectly through energy budget, it definitely matters, esp. over an extended period of simulation. Nevertheless, the current implementation as is should be good to go. |
Hi Pete, I am quite ignorant of the aerosol science so I am just focusing on the code logic, aided by your inline comments, concerning prescribe_aero.F90 and tracer_data.F90. In precribe_aero.F90 on resetting randn to 0, should it also check if scm_observed_aero = true? Similarly in tracer_data.F90 on setting file%stepTime = true, should scm_observed_aero also be true, to maintain what has been used until this update? The array q_a(3,6) has fixed shape, but used within loop over nmodes and nspec that would be dynamically obtained. Could this be a problem, say, when MAM4 is used? In subroutine ver_profile_aero, your comments suggest to apply a threshold-based treatment below and above 500 hPa. This design does not appear to be realized by the current codes. Can you please double check whether the implementation or the comments should be updated? |
Forgot to mention: what is the implication of changing several true/fasle in cice/cime_config/config_component.xml from lower to upper case concerning CICE_AUTO_DECOM? Is it to fix SCM issue over ocean/ice grids? I had problem with SCM over ocean grids during cice.buildbnml and at runtime involving cice codes and build options. I had to apply some adhoc treatment to get over it. It would be great if this change fix it. |
Hi, Wuyin, we are keeping the first two modifications you mention in prescribed_aero.F90 and tracer_data.F90 as per the reasoning in Lebassi-Habtezion and Caldwell 2014. For now, we will keep q_a(3,6) fixed shape since all the supported cases we will add to the ACME library (at this time) will only have observed aerosols for the three modes. In the future, we will update this, which will require further mods. In regards to the ver_profile_aero, while i did not write this block of code, it seems to me the code is doing what the comments say. Also, yes changes to CICE_AUTO_DECOM is to allow the SCM to run over ocean/ice grids, which was broken. |
Thanks Pete for the explanation. All are good with me, except that I remain confused between the comments and codes in subroutine ver_profile_aero. vertprof_aero(k) uses different assignment expressions for k=1, 2, and the others. I don't see how it recognizes the 500 cutoff. Going over the code again, if in the following statement (within the 'else' block)
'k-2' in the right hand side is replaced with 'counti-2', it would realize the design as described in the comments. Did I miss something? |
ah, okay @wlin7, I see what you mean now. I cleaned up the code and updated the comments to match what is actually being computer (but kept the solution non-answer changing). |
Thanks Pete. I have no further comment on this PR. |
@singhbalwinder do you know how to clean up history? Some of the commits on this branch can be squashed together. |
Do you mean interactive rebase? |
Yes. |
Ok, I will squash commits which do not add much meaningful info before merging to next. |
@singhbalwinder can you get this ready to merge? |
|
||
<namelist_defaults> | ||
|
||
<ncdata hgrid="64x128" nlev="72" scam="1" >atm/cam/inic/gaus/cami_0000-09-01_64x128_L72_c031210.nc</ncdata> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bogensch : I don't see this file on acem or cesm SVN inputdata servers. Would you please upload it on the server? Here are the instructions: https://acme-climate.atlassian.net/wiki/display/WORKFLOW/ACME+Input+Data+Repository#ACMEInputDataRepository-UploadingFiles(fordeveloperscreatingnewACMEconfigurations):
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@singhbalwinder done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
@rljacob : Yes, I will work on it and merge it soon. |
@singhbalwinder can you merge this to next today? Its open. |
f92a942
to
de332e1
Compare
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
merged to next |
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
Provide aerosol initialization support for SCM runs Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected. [BFB] * bogensch/atm/SCM_dev_BLH_v3: bug fix compset updates fix to generic SCM use case first step of PR review modifications change comments in file bug fix for compilation in full model SCM modifications
Code employs the aerosol specification methods of Lebassi-Habtezion and Caldwell (2015) to allow for scientifically credible SCM simulations. Specifically, the user can specify the liquid/ice concentration via the namelist or specify observed aerosols provided they are included in the IOP file. Also included in this PR are optional switches to turn off longwave and shortwave radiation calculations to enable a match of GCSS idealizations for certain cases. acme_developer tests have been peformed and this tag is bit-4-bit, as expected.
[BFB]