{"action":"created","issue":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/718","repository_url":"https://api.github.com/repos/StrikeNP/trac_test","labels_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/718/labels{/name}","comments_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/718/comments","events_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/718/events","html_url":"https://github.com/StrikeNP/trac_test/issues/718","id":334663480,"node_id":"MDU6SXNzdWUzMzQ2NjM0ODA=","number":718,"title":"Remove unnecessary microphysics parameters from CLUBB core (Trac #718)","user":{"login":"StrikeNP","id":2577059,"node_id":"MDQ6VXNlcjI1NzcwNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/2577059?v=4","gravatar_id":"","url":"https://api.github.com/users/StrikeNP","html_url":"https://github.com/StrikeNP","followers_url":"https://api.github.com/users/StrikeNP/followers","following_url":"https://api.github.com/users/StrikeNP/following{/other_user}","gists_url":"https://api.github.com/users/StrikeNP/gists{/gist_id}","starred_url":"https://api.github.com/users/StrikeNP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StrikeNP/subscriptions","organizations_url":"https://api.github.com/users/StrikeNP/orgs","repos_url":"https://api.github.com/users/StrikeNP/repos","events_url":"https://api.github.com/users/StrikeNP/events{/privacy}","received_events_url":"https://api.github.com/users/StrikeNP/received_events","type":"User","site_admin":false},"labels":[{"id":971577014,"node_id":"MDU6TGFiZWw5NzE1NzcwMTQ=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/Migrated%20from%20Trac","name":"Migrated from Trac","color":"FFFFFF","default":false},{"id":971577274,"node_id":"MDU6TGFiZWw5NzE1NzcyNzQ=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/clubb_src","name":"clubb_src","color":"FFFFFF","default":false},{"id":971649570,"node_id":"MDU6TGFiZWw5NzE2NDk1NzA=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/raut@uwm.edu","name":"raut@uwm.edu","color":"FFFFFF","default":false},{"id":971577163,"node_id":"MDU6TGFiZWw5NzE1NzcxNjM=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/task","name":"task","color":"FFFFFF","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/StrikeNP/trac_test/milestones/4","html_url":"https://github.com/StrikeNP/trac_test/milestone/4","labels_url":"https://api.github.com/repos/StrikeNP/trac_test/milestones/4/labels","id":3442833,"node_id":"MDk6TWlsZXN0b25lMzQ0MjgzMw==","number":4,"title":"3. Refactor CLUBB","description":null,"creator":{"login":"StrikeNP","id":2577059,"node_id":"MDQ6VXNlcjI1NzcwNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/2577059?v=4","gravatar_id":"","url":"https://api.github.com/users/StrikeNP","html_url":"https://github.com/StrikeNP","followers_url":"https://api.github.com/users/StrikeNP/followers","following_url":"https://api.github.com/users/StrikeNP/following{/other_user}","gists_url":"https://api.github.com/users/StrikeNP/gists{/gist_id}","starred_url":"https://api.github.com/users/StrikeNP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StrikeNP/subscriptions","organizations_url":"https://api.github.com/users/StrikeNP/orgs","repos_url":"https://api.github.com/users/StrikeNP/repos","events_url":"https://api.github.com/users/StrikeNP/events{/privacy}","received_events_url":"https://api.github.com/users/StrikeNP/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":119,"state":"open","created_at":"2018-06-21T18:01:51Z","updated_at":"2018-06-23T23:04:30Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2018-06-21T21:24:34Z","updated_at":"2018-06-23T23:04:49Z","closed_at":null,"author_association":"OWNER","body":"**Introduction**\n\nLeaving flags inside of `parameters_microphys` that don't in any way change the behavior of CLUBB core causes confusion. Let's weed out the flags we need, and move everything else out of CLUBB core.\n\nThis likely means creating a new module, `parameters_silhs.F90`, and including SILHS-specific parameters inside of it.\n\n**Test**\n\nOutput will be so bin-diff identical that it won't even be funny!\n\nAttachments:\n\n[plot_explicit_ta_configs.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_explicit_ta_configs.maff)\n[plot_new_pdf_config_1_plot_2.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_new_pdf_config_1_plot_2.maff)\n[plot_combo_pdf_run_3.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_combo_pdf_run_3.maff)\n[plot_input_fields_rtp3_thlp3_1.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_input_fields_rtp3_thlp3_1.maff)\n[plot_new_pdf_20180522_test_1.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_new_pdf_20180522_test_1.maff)\n[plot_attempts_8_10.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_attempts_8_10.maff)\n[plot_attempt_8_only.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_attempt_8_only.maff)\n[plot_beta_1p3.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_beta_1p3.maff)\n[plot_beta_1p3_all.maff](https://github.com/larson-group/trac_attachment_archive/blob/master/trac_test/822/plot_beta_1p3_all.maff)\n\nMigrated from http://carson.math.uwm.edu/trac/clubb/ticket/718\n```json\n{\n    \"status\": \"closed\", \n    \"changetime\": \"2014-08-16T00:36:19\", \n    \"description\": \"'''Introduction'''\\n\\nLeaving flags inside of `parameters_microphys` that don't in any way change the behavior of CLUBB core causes confusion. Let's weed out the flags we need, and move everything else out of CLUBB core.\\n\\nThis likely means creating a new module, `parameters_silhs.F90`, and including SILHS-specific parameters inside of it.\\n\\n'''Test'''\\n\\nOutput will be so bin-diff identical that it won't even be funny!\", \n    \"reporter\": \"raut@uwm.edu\", \n    \"cc\": \"vlarson@uwm.edu, dschanen@uwm.edu\", \n    \"resolution\": \"fixed\", \n    \"_ts\": \"1408149379104939\", \n    \"component\": \"clubb_src\", \n    \"summary\": \"Remove unnecessary microphysics parameters from CLUBB core\", \n    \"priority\": \"major\", \n    \"keywords\": \"\", \n    \"time\": \"2014-07-23T22:17:10\", \n    \"milestone\": \"3. Refactor CLUBB\", \n    \"owner\": \"raut@uwm.edu\", \n    \"type\": \"task\"\n}\n```\n"},"comment":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/comments/399716286","html_url":"https://github.com/StrikeNP/trac_test/issues/718#issuecomment-399716286","issue_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/718","id":399716286,"node_id":"MDEyOklzc3VlQ29tbWVudDM5OTcxNjI4Ng==","user":{"login":"StrikeNP","id":2577059,"node_id":"MDQ6VXNlcjI1NzcwNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/2577059?v=4","gravatar_id":"","url":"https://api.github.com/users/StrikeNP","html_url":"https://github.com/StrikeNP","followers_url":"https://api.github.com/users/StrikeNP/followers","following_url":"https://api.github.com/users/StrikeNP/following{/other_user}","gists_url":"https://api.github.com/users/StrikeNP/gists{/gist_id}","starred_url":"https://api.github.com/users/StrikeNP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StrikeNP/subscriptions","organizations_url":"https://api.github.com/users/StrikeNP/orgs","repos_url":"https://api.github.com/users/StrikeNP/repos","events_url":"https://api.github.com/users/StrikeNP/events{/privacy}","received_events_url":"https://api.github.com/users/StrikeNP/received_events","type":"User","site_admin":false},"created_at":"2018-06-23T23:04:49Z","updated_at":"2018-06-23T23:04:49Z","author_association":"OWNER","body":"**Trac update on 2014/07/24 at 14:00**\n**vlarson@uwm.edu commented:**\n\nReplying to [comment:6 raut@…]:\n> Replying to [comment:5 bmg2@…]:\n> > Replying to [comment:4 raut@…]:\n>\n> > > Replying to [comment:3 bmg2@…]:\n>\n>>\n> > > > Unfortunately, these are namelist variables (I assume you're talking about ```rr_sigma2_on_mu2_ip_cloud``` and stuff like that).  That is why these weren't already removed.  We're sort of stuck with them.  I don't know if we can use an array in a namelist, but even if we could, it would be a very bad idea.  There would be nothing in a namelist to stop someone from say ... trying to add a value for the graupel index to the ```sigma2_on_mu2_ip_cloud``` array when we are using KK microphysics -- big disaster waiting to happen.\n\n\n>\n>>\n>>>\n\nCould we create an assertion check that could catch such errors?\n\n> > > Good point. However, they only need be local variables in the microphysics initialization function, rather than global variables like they are now.\n>\n>>\n> > \n>\n> > This will take some refactoring since all of the ```_sigma2_on_mu2_ip_``` variables are brought into ```sigma2_on_mu2_ip_array_cloud``` and ```sigma2_on_mu2_ip_array_below``` in ```corr_matrix_module.F90```, which is part of CLUBB_core.\n> \n> Indeed.\n> \n> I have found a solution that uses a derived type. I found out recently that if you have a derived type, say,\n> \n\n```text\n> type various_terms\n>   real :: &\n>   rr_sigma = 1.0, &\n>   nr_sigma = 2.0\n> end type various_terms\n> ```\n> \n> Then you can include code like:\n> \n> \n\n```text\n> type(various_terms) terms\n> \n> namelist /super_awesome_namelist/ terms\n> ```\n> \n> Then a user could populate the namelist like:\n> \n\n```text\n> &super_awesome_namelist\n> terms%rr_sigma = 13.0\n> /\n> ```\n> \n> The key advantage here is that all of the terms do not need to be duplicated in the namelist statement, only the derived type instance needs to appear in the namelist.  \n\n\nWe would need to make sure that we don't run into the danger with intent(out) discussed at http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html.\n\n> Also, no global variables are needed, since we can just pass this derived type into some subroutine like `setup_corr_varnce_array` without making the argument list obnoxiously long!\n> \n> I think this method will be very useful for host models. We found that CAM-CLUBB-SILHS doesn't include all the parameters that we want in its SILHS namelist -- with this refactoring, including all the parameters is trivial!!\n\nKate is already packing and unpacking derived types like pdf_parameters because CAM's state variable can't handle them.  Will CAM have a similar problem with the new derived type?\n\n\n"}}
{"actor":{"display_login":"StrikeNP"}}