m2lines / convection-parameterization-in-CAM

Deployment of the convection parameterization scheme (previously from within SAM) deployed into the CAM model
MIT License
3 stars 2 forks source link

Establish dead code fragments #36

Closed jatkinson1000 closed 1 year ago

jatkinson1000 commented 1 year ago

Whilst refactoring the code as part of #33 there are a few questions that have come up.

Looking at Janni's original repo there are a number of subdirectories under sam_cases/, each with a different version of nn_convection_flux.f90, nn_diffusion.f90, and parameters file prm.

It seems that the code was designed to test a variety of configurations with/without certain variables during development through the use of switches such as rf_uses_rh etc. Is this behavior that needs preserving, or is there a 'final'/'best' version of the net that we are wanting to implement?

If we only want one version of the net then we can(should) remove dead code fragments to speed things up and simplify the code.

If we are wanting to implement a specific net, then which one of the instances in sam_cases/ is it, or is it the nn_convection_flux.f90 file in the sam_code_NN/ directory?

If the latter then is this governed by the parameters listed as defaults in setparm.f90, as there is no prm parameters file in the main directory?

Finally I note that there is a file nn_diffusion.f90. Do we need to do anything with this? My understanding was that we were extracting nn_convection_flux.f90, but perhaps I have misunderstood?

jatkinson1000 commented 1 year ago

Tagging @paogorman and @yaniyuval in the hopes that they might be able to advise.

paogorman commented 1 year ago

Some answers:

paogorman commented 1 year ago

I believe the correct nn_convection_flux.f90 file to use is https://github.com/yaniyuval/Neural_nework_parameterization/blob/v.1.0.3/sam_code_NN/sam_cases/run_files_x8_5_layers/nn_convection_flux.f90 Note this is the same as: https://github.com/yaniyuval/Neural_nework_parameterization/blob/v.1.0.3/sam_code_NN/nn_convection_flux.f90

dorchard commented 1 year ago

Given that we don't need the rf_uses_qp option, can we delete all code that pertains to that flag being true (all the name lists set it to false at the moment)? That would leave a leaner code base to work with.

paogorman commented 1 year ago

Yes, that code should be deleted.

On Fri, May 12, 2023 at 10:20 AM Dominic Orchard @.***> wrote:

Given that we don't need the rf_uses_qp option, should we delete all code that pertains to that flag, i.e., that would run when this is equal to true (all the name lists set it to false at the moment)? That would leave a leaner code base to work with.

— Reply to this email directly, view it on GitHub https://github.com/m2lines/convection-parameterization-in-CAM/issues/36#issuecomment-1545823967, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARPLW6YIFE6RNQSNJEUILCTXFZBJTANCNFSM6AAAAAAX6GRJEY . You are receiving this because you were mentioned.Message ID: @.*** com>

jatkinson1000 commented 1 year ago

Thanks @paogorman I assume do_yin_input (equatorial distance) is always used? Likewise for Tin_feature_rf? If this is the case I'll refactor to remove the if statements and clean things up.

What about qin_feature_rf?

Finally @yaniyuval please could you clarify which input parameters are used for the 'final' net? I'm assuming it's those in setparm.f90 given the absence of a prm file?

paogorman commented 1 year ago

Yes do_yin_input, Tin_feature_rf and qin_feature_rf will be always used.

The prm file is in this directory: https://github.com/yaniyuval/Neural_nework_parameterization/tree/main/sam_code_NN/sam_cases/run_files_x8_5_layers