{"action":"created","issue":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/533","repository_url":"https://api.github.com/repos/StrikeNP/trac_test","labels_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/533/labels{/name}","comments_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/533/comments","events_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/533/events","html_url":"https://github.com/StrikeNP/trac_test/issues/533","id":330448485,"node_id":"MDU6SXNzdWUzMzA0NDg0ODU=","number":533,"title":"Add delta function to rrainm and Nrm for use in KK microphysical formulas (Trac #533)","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":958019852,"node_id":"MDU6TGFiZWw5NTgwMTk4NTI=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/Migrated%20from%20Trac","name":"Migrated from Trac","color":"FFFFFF","default":false},{"id":958043400,"node_id":"MDU6TGFiZWw5NTgwNDM0MDA=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/bmg2@uwm.edu","name":"bmg2@uwm.edu","color":"FFFFFF","default":false},{"id":958042830,"node_id":"MDU6TGFiZWw5NTgwNDI4MzA=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/clubb_src","name":"clubb_src","color":"FFFFFF","default":false},{"id":958019578,"node_id":"MDU6TGFiZWw5NTgwMTk1Nzg=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/enhancement","name":"enhancement","color":"a2eeef","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":62,"created_at":"2018-06-07T21:50:32Z","updated_at":"2018-06-09T09:07:48Z","closed_at":null,"author_association":"OWNER","body":"\n'''Introduction'''\n\nIn https://github.com/larson-group/cpt/issues/150, we are trying to boost the rain in trade-wind cumuli in CAM-CLUBB by integrating the autoconversion and accretion formulas over CLUBB's PDF.  So far, the results have been mixed (cpt:https://github.com/larson-group/clubb/issues/150).  Right now, the biggest error seems to be that MG underpredicts Nrm (cpt:https://github.com/larson-group/clubb/issues/150), which may lead to overly large raindrop and underestimated below-cloud evaporation.  This may cause CLUBB to transport too much vapor into the Cu anvil.\n\nHowever, troubleshooting MG is difficult, in part because we don't have a good reference.  Our CLUBB standalone RICO simulation predicts an anvil at 72 hours, and grossly underpredicts both rrainm and Nrm.  In this simulation, Nc is assumed to obey a double-delta PDF, but rrainm is a single lognormal.  We think that this leads to excessive rain outside of cloud and insufficient accretion.  We hope that using a delta-lognormal PDF for rrrain and Nr will lead more rain to fall within cloud, increasing rainfall.  Once we have a better CLUBB standalone benchmark, we'll return to CLUBB-MG.\n\nSince we converted Nc to a double delta function PDF, our simulation of RICO by CLUBB standalone no longer produces rain.  We think the reason is that Nc is now greatly increased within cloud.  Accretion is too small and evaporation is too great.  To increase rain, we think it may be to add a delta function to the PDFs of rrainm and Nrm.  This will prevent rain from falling throughout the entirety of the grid box in CLUBB.\n\n'''Technical spec'''\n\nFor the joint PDF of rrainm and s, let's use the following functional form:\n\n```text\n  P(s,rrain, Nr) = rain_frac * P(s, rrain, Nr) \n                      + (one - rain_frac) * delta(rrain) * delta(Nr) * P(s)\n```\nTo implement this in KK, we merely need to call the existing accretion subroutine using within-rain inputs, and multiply the result by ```rain_frac```.  Likewise for evaporation.  To enclose this code in KK, let's use the flag ```l_use_rain_frac```.  For now, let's ignore the microphysical source terms that change the variances, although later we'll want to construct them.  Also, we'll have to remember that when ```l_use_rain_frac = .true.```, then KK and LH results will no longer converge.  Therefore, let's idiot-proof the code by exiting with an error message whenever someone tries to use ```LH_microphys_type /= disabled``` and also sets ```l_use_rain_frac = .true.```.  We'll have to think about how this code will cooperate with Jan's code to diagnose correlations, considering that Jan's code deals with grid-box wprrp, not within-lognormal wprrp.\n\nLet's compute rain_frac similarly to how it is done in MG.  That is, let's compute it diagnostically, starting at the top of the grid column, and computing rain_frac at a level as the maximum cloud frac among all layers above.  We should output rain_frac to disk in order to make sure it looks reasonable.\n\n'''Tests'''\n\nLet's see if it produces improved results for RICO without changing RF02 much.  Post a plotgen.\n\nAttachments:\n\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_precip_frac_KK.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_precip_frac_corrs.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_all.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_new_output.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rrm_ts_850.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rrm_RICO_3_ts.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rrm_auto_RICO_850_857.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rcm_RICO_850_857.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rr_Vrrprrp_RICO_ts_850.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rrm_cl_RICO_ts_850.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/microphys_utilities.F90\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_frac_on.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RICO_std_auto_accr.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RICO_pfrac_on_auto_accr.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_pfrac_on_ts_off.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rico_output.txt\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_new_precip_r6195.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RICO_budget_plots.maff\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RICO_cKrrainm.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rico_100x_incr.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/rico_1000x_cKrrainm.eps\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RICO_eddy_diff_LES.jpg\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RF02_DS_eddy_diff_LES.jpg\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/RF02_DO_eddy_diff_LES.jpg\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/wprrp_to_corr_wrr.pdf\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/533/plot_rico.maff\n\nMigrated from http://carson.math.uwm.edu/trac/clubb/ticket/533\n```json\n{\n    \"status\": \"closed\", \n    \"changetime\": \"2014-07-29T19:54:01\", \n    \"description\": \"\\n'''Introduction'''\\n\\nIn cpt:ticket:150, we are trying to boost the rain in trade-wind cumuli in CAM-CLUBB by integrating the autoconversion and accretion formulas over CLUBB's PDF.  So far, the results have been mixed (cpt:comment:29:ticket:150).  Right now, the biggest error seems to be that MG underpredicts Nrm (cpt:comment:33:ticket:150), which may lead to overly large raindrop and underestimated below-cloud evaporation.  This may cause CLUBB to transport too much vapor into the Cu anvil.\\n\\nHowever, troubleshooting MG is difficult, in part because we don't have a good reference.  Our CLUBB standalone RICO simulation predicts an anvil at 72 hours, and grossly underpredicts both rrainm and Nrm.  In this simulation, Nc is assumed to obey a double-delta PDF, but rrainm is a single lognormal.  We think that this leads to excessive rain outside of cloud and insufficient accretion.  We hope that using a delta-lognormal PDF for rrrain and Nr will lead more rain to fall within cloud, increasing rainfall.  Once we have a better CLUBB standalone benchmark, we'll return to CLUBB-MG.\\n\\nSince we converted Nc to a double delta function PDF, our simulation of RICO by CLUBB standalone no longer produces rain.  We think the reason is that Nc is now greatly increased within cloud.  Accretion is too small and evaporation is too great.  To increase rain, we think it may be to add a delta function to the PDFs of rrainm and Nrm.  This will prevent rain from falling throughout the entirety of the grid box in CLUBB.\\n\\n'''Technical spec'''\\n\\nFor the joint PDF of rrainm and s, let's use the following functional form:\\n{{{\\n  P(s,rrain, Nr) = rain_frac * P(s, rrain, Nr) \\n                      + (one - rain_frac) * delta(rrain) * delta(Nr) * P(s)\\n}}}\\nTo implement this in KK, we merely need to call the existing accretion subroutine using within-rain inputs, and multiply the result by {{{rain_frac}}}.  Likewise for evaporation.  To enclose this code in KK, let's use the flag {{{l_use_rain_frac}}}.  For now, let's ignore the microphysical source terms that change the variances, although later we'll want to construct them.  Also, we'll have to remember that when {{{l_use_rain_frac = .true.}}}, then KK and LH results will no longer converge.  Therefore, let's idiot-proof the code by exiting with an error message whenever someone tries to use {{{LH_microphys_type /= disabled}}} and also sets {{{l_use_rain_frac = .true.}}}.  We'll have to think about how this code will cooperate with Jan's code to diagnose correlations, considering that Jan's code deals with grid-box wprrp, not within-lognormal wprrp.\\n\\nLet's compute rain_frac similarly to how it is done in MG.  That is, let's compute it diagnostically, starting at the top of the grid column, and computing rain_frac at a level as the maximum cloud frac among all layers above.  We should output rain_frac to disk in order to make sure it looks reasonable.\\n\\n'''Tests'''\\n\\nLet's see if it produces improved results for RICO without changing RF02 much.  Post a plotgen.\", \n    \"reporter\": \"vlarson@uwm.edu\", \n    \"cc\": \"vlarson@uwm.edu\", \n    \"resolution\": \"Verified by V. Larson\", \n    \"_ts\": \"1406663641671875\", \n    \"component\": \"clubb_src\", \n    \"summary\": \"Add delta function to rrainm and Nrm for use in KK microphysical formulas\", \n    \"priority\": \"major\", \n    \"keywords\": \"\", \n    \"time\": \"2012-11-20T21:40:41\", \n    \"milestone\": \"\", \n    \"owner\": \"bmg2@uwm.edu\", \n    \"type\": \"enhancement\"\n}\n```\n"},"comment":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/comments/395953450","html_url":"https://github.com/StrikeNP/trac_test/issues/533#issuecomment-395953450","issue_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/533","id":395953450,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NTk1MzQ1MA==","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-09T09:07:48Z","updated_at":"2018-06-09T09:07:48Z","author_association":"OWNER","body":"Trac update at 2013/05/25 at 20:01\n\nvlarson@uwm.edu commented:\n\nReplying to [comment:44 bmg2@…]:\n> Replying to [comment:43 vlarson@…]:\n> > In ​mmf:wiki:PNNLTwentyThreeMayTwentyThirteen, Minghuai Wang of PNNL suggested that adding turbulent transport of hydrometeors might help raise the altitude at which rain mixing ratio peaks, which is a problem in our RICO simulations (see, e.g., comment:32 and comment:40).  Do you think it is worth trying to boost c_Krrainm in tunable_parameters.in?  Minghuai showed some results from arm_97 that seemed to indicate that boosting c_Krrainm might be beneficial.  I would expect that boosting c_Krrainm would smear out the profile of rrainm in the vertical.  This would reduce the peak value of rain mixing ratio, but perhaps this might be counteracted by increasing rain aloft, which might increase accretion and hence rain.\n> \n> We could try it.  I don't have any idea as to what the value of K_r (based on c_Krrainm) should be.  In other words, what values are reasonable?  What we should do is obtain results of wprrp (and wpNrp) from RICO LES.  Since we are using the down-gradient approximation for hydrometeors in CLUBB:\n> ```wprrp = - K_r d<r_r>/dz``` and ```wpNrp = - K_r d<N_r>/dz```;\n> we could tune CLUBB's wprrp and wpNrp to match wprrp and wpNrp from the LES by finding the appropriate value of c_Krrainm (K_r in the above equations equals c_Krrainm * Kh_zm + nu_r). \n\nYes, we should match LES.  At this point, trying different values of c_Krrainm would just be a quick way to test the sensitivity of the rain profile to turbulent transport of rain.  \n\n"}}
{"actor":{"display_login":"StrikeNP"}}