{"action":"created","issue":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/680","repository_url":"https://api.github.com/repos/StrikeNP/trac_test","labels_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/680/labels{/name}","comments_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/680/comments","events_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/680/events","html_url":"https://github.com/StrikeNP/trac_test/issues/680","id":332199096,"node_id":"MDU6SXNzdWUzMzIxOTkwOTY=","number":680,"title":"Refactor CLUBB so that it is more obvious what code changes will break a host model (Trac #680)","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":963997231,"node_id":"MDU6TGFiZWw5NjM5OTcyMzE=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/Migrated%20from%20Trac","name":"Migrated from Trac","color":"FFFFFF","default":false},{"id":963997516,"node_id":"MDU6TGFiZWw5NjM5OTc1MTY=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/clubb_src","name":"clubb_src","color":"FFFFFF","default":false},{"id":963997043,"node_id":"MDU6TGFiZWw5NjM5OTcwNDM=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/enhancement","name":"enhancement","color":"a2eeef","default":true},{"id":964009148,"node_id":"MDU6TGFiZWw5NjQwMDkxNDg=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/schemena@uwm.edu","name":"schemena@uwm.edu","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":3423155,"node_id":"MDk6TWlsZXN0b25lMzQyMzE1NQ==","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":34,"closed_issues":110,"state":"open","created_at":"2018-06-13T20:01:14Z","updated_at":"2018-06-15T20:55:53Z","due_on":null,"closed_at":null},"comments":81,"created_at":"2018-06-13T23:21:03Z","updated_at":"2018-06-15T22:14:58Z","closed_at":null,"author_association":"OWNER","body":"\n**Introduction**\n\nOften we make a change to CLUBB standalone without realizing that it will break WRF-CLUBB or CAM-CLUBB.  We need to make the interface between the core of CLUBB and a host model more clear (this interface is discussed more in ticket:621).  Also, it would be handy to have the interface summarized in the code itself.  Let's explore possibilities.\n\nHere are some earlier attempts to manually list what subroutines are called by host models:\n\nwiki:CLUBBSubroutinesToCall\n\ncomment:https://github.com/larson-group/description/issues/621\n\nwrf:wiki:WRF_CLUBB_call_tree\n\nhttps://github.com/larson-group/cam/issues/12#comment:1\n\n\n**Technical spec**\n\nOne possibility is to create a new module, ```clubb_api_module```, that contains an explicit interface to each CLUBB subroutines and functions that needs to be called by a host model.  We could include a banner that warns the coder that if any of these interfaces are changed, it needs to be changed in the host model as well.  That might make it easier to remember.  In addition, we could hand ```clubb_api_module``` to host model developers so that they can have a summary of what CLUBB subroutines and functions they need to call.\n\nPerhaps we don't even need to manually maintain an interface.  Perhaps we could just put use statements to advance_clubb_core, etc., in ```clubb_api_module```.\n\nPerhaps there are other reorganizations that would divide CLUBB standalone more cleanly into a \"host model\" part and a core part.\n\n**Tests**\n\nResults should be bin diff identical.\n\nAttachments:\n\n[api_commitment_test.py](https://github.com/larson-group/trac_attachment_archive/blob/master/clubb/api_commitment_test.py)\n[clubb_api_module.F90](https://github.com/larson-group/trac_attachment_archive/blob/master/clubb/clubb_api_module.F90)\n[host_model_breakdown_Jul-2-2014.pdf](https://github.com/larson-group/trac_attachment_archive/blob/master/clubb/host_model_breakdown_Jul-2-2014.pdf)\n\nMigrated from http://carson.math.uwm.edu/trac/clubb/ticket/680\n```json\n{\n    \"status\": \"closed\", \n    \"changetime\": \"2014-10-23T21:28:11\", \n    \"description\": \"\\n'''Introduction'''\\n\\nOften we make a change to CLUBB standalone without realizing that it will break WRF-CLUBB or CAM-CLUBB.  We need to make the interface between the core of CLUBB and a host model more clear (this interface is discussed more in ticket:621).  Also, it would be handy to have the interface summarized in the code itself.  Let's explore possibilities.\\n\\nHere are some earlier attempts to manually list what subroutines are called by host models:\\n\\nwiki:CLUBBSubroutinesToCall\\n\\ncomment:description:ticket:621\\n\\nwrf:wiki:WRF_CLUBB_call_tree\\n\\ncam:ticket:12#comment:1\\n\\n\\n'''Technical spec'''\\n\\nOne possibility is to create a new module, {{{clubb_api_module}}}, that contains an explicit interface to each CLUBB subroutines and functions that needs to be called by a host model.  We could include a banner that warns the coder that if any of these interfaces are changed, it needs to be changed in the host model as well.  That might make it easier to remember.  In addition, we could hand {{{clubb_api_module}}} to host model developers so that they can have a summary of what CLUBB subroutines and functions they need to call.\\n\\nPerhaps we don't even need to manually maintain an interface.  Perhaps we could just put use statements to advance_clubb_core, etc., in {{{clubb_api_module}}}.\\n\\nPerhaps there are other reorganizations that would divide CLUBB standalone more cleanly into a \\\"host model\\\" part and a core part.\\n\\n'''Tests'''\\n\\nResults should be bin diff identical.\", \n    \"reporter\": \"vlarson@uwm.edu\", \n    \"cc\": \"vlarson@uwm.edu, raut@uwm.edu\", \n    \"resolution\": \"fixed\", \n    \"_ts\": \"1414099691233371\", \n    \"component\": \"clubb_src\", \n    \"summary\": \"Refactor CLUBB so that it is more obvious what code changes will break a host model\", \n    \"priority\": \"minor\", \n    \"keywords\": \"\", \n    \"time\": \"2014-04-25T22:43:47\", \n    \"milestone\": \"3. Refactor CLUBB\", \n    \"owner\": \"schemena@uwm.edu\", \n    \"type\": \"enhancement\"\n}\n```\n"},"comment":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/comments/397755605","html_url":"https://github.com/StrikeNP/trac_test/issues/680#issuecomment-397755605","issue_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/680","id":397755605,"node_id":"MDEyOklzc3VlQ29tbWVudDM5Nzc1NTYwNQ==","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-15T22:14:58Z","updated_at":"2018-06-15T22:14:58Z","author_association":"OWNER","body":"**Trac update on 2014/07/21 at 18:28**\n**schemena@uwm.edu commented:**\n\nCommit comment from clubb:r7088:\n\nFor https://github.com/larson-group/clubb/issues/680. Added mt95 to the CLUBB API.\n\n"}}
{"actor":{"display_login":"StrikeNP"}}