Skip to content

adding inner loop to Thompson microphysics#685

Merged
climbfuji merged 6 commits into
NCAR:mainfrom
RuiyuSun:innerloop
Jul 23, 2021
Merged

adding inner loop to Thompson microphysics#685
climbfuji merged 6 commits into
NCAR:mainfrom
RuiyuSun:innerloop

Conversation

@RuiyuSun
Copy link
Copy Markdown
Contributor

This is to add an inner loop to the Thomspon microphysics scheme with a namelist option.

@climbfuji
Copy link
Copy Markdown
Collaborator

This PR is trying to do the same a the existing subcycling capability. I suggest we test if the bug fix for Thompson subcycling #684 fixes the issue with decreasing hydrometeors and associated low radar reflectivity. If #684 fixes the problem, I suggest to not merge this PR #685 in favor of the more general CCPP approach. If #684 doesn't fix the problem, we should consider removing the subcycling changes from Thompson MP and just use the inner loop approach from @RuiyuSun.

@yangfanglin
Copy link
Copy Markdown

Dom,

Won't it be more flexible to use namelist options to turn on and off sub-stepping Thompson MP and control the number of sub-steps ? Using the sub-cycling approach one has to update SDF and recompile the model every time a change is made.

@climbfuji
Copy link
Copy Markdown
Collaborator

Dom,

Won't it be more flexible to use namelist options to turn on and off sub-stepping Thompson MP and control the number of sub-steps ? Using the sub-cycling approach one has to update SDF and recompile the model every time a change is made.

Both approaches have their pros and cons. The SDF approach is more general, because the same capability can be used for other schemes in the same way. The namelist option has the advantage that one doesn't have to recompile. I am fine either way, but we should decide on one or the other option in my opinion. Having both approaches coded up seems like a recipe for confusion (although Ruiyu made it work - I will have one request for change later to avoid duplicating the diagnostics code in module_mp_thompson.F90). Greg, what do you think? Any preference from your side? @gthompsnWRF

@yangfanglin
Copy link
Copy Markdown

Dom,

We can discuss this at the meeting today and make a decision later based on testing results. Both approaches still have issues.

@climbfuji
Copy link
Copy Markdown
Collaborator

Dom,

We can discuss this at the meeting today and make a decision later based on testing results. Both approaches still have issues.

Sounds good to me.

@climbfuji
Copy link
Copy Markdown
Collaborator

One of the "issues" I am seeing is the slightly complicated logic in lines 1155-1157 in module_mp_thompson.F90 that "corrects" the user dt_inner value so that you get an integer number of steps. Another approach is to specify the number of steps, but either way the user has to make sure that dt_atmos and nsteps / dt_inner are set consistently.

@RuiyuSun
Copy link
Copy Markdown
Contributor Author

RuiyuSun commented Jun 28, 2021 via email

@climbfuji
Copy link
Copy Markdown
Collaborator

climbfuji commented Jun 28, 2021 via email

@RuiyuSun
Copy link
Copy Markdown
Contributor Author

RuiyuSun commented Jun 28, 2021 via email

@climbfuji
Copy link
Copy Markdown
Collaborator

That is right. A message at the first step will be helpful. Another potential advantage of the inner loop is that it does not go through the conversions between the moist and dry mixing ratios. On Mon, Jun 28, 2021 at 11:29 AM Dom Heinzeller @.***> wrote:

Yes, I have been struggling with whether to perform the conversion only at the first (convert to) and last (convert from) time step. This would be ok and essentially the same as your inner loop, but only as long as nobody puts another scheme/computation in the Thompson subcycle group in the suite definition file.

Comment thread physics/module_mp_thompson.F90 Outdated

!> - Call calc_refl10cm()

diagflag_presenti: IF ( PRESENT (diagflag) ) THEN
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code duplication in lines 1432-1472 can and should be avoided if I see this correctly by using the appropriate combination of conditions.

@RuiyuSun
Copy link
Copy Markdown
Contributor Author

RuiyuSun commented Jun 29, 2021 via email

Copy link
Copy Markdown
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me except one tiny change, thanks for updating the logic.

Comment thread physics/module_mp_thompson.F90 Outdated
!> - Call calc_refl10cm()

diagflag_present: IF ( PRESENT (diagflag) ) THEN
diagflag_presenti: IF ( PRESENT (diagflag) ) THEN
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you revert this change (additional i) please?

Comment thread physics/module_mp_thompson.F90 Outdated
enddo
endif
ENDIF diagflag_present
ENDIF diagflag_presenti
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, can you revert this change (additional i) please?

@climbfuji climbfuji requested a review from gthompsnWRF June 30, 2021 20:46
@RuiyuSun
Copy link
Copy Markdown
Contributor Author

RuiyuSun commented Jul 1, 2021 via email

@climbfuji
Copy link
Copy Markdown
Collaborator

@RuiyuSun since we discussed at the last Thompson MP meeting that the way forward is to temporarily accept both approaches (inner loop and subcycling), would you mind if I sent you a PR to include my bug fixes in your PR?

climbfuji and others added 3 commits July 1, 2021 11:16
Merge "Bugfix in Thompson MP, pass correct timestep to core routine" into "Adding inner loop to Thompson microphysics"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants