{"action":"created","issue":{"url":"https://api.github.com/repos/jacobwilliams/bspline-fortran/issues/14","repository_url":"https://api.github.com/repos/jacobwilliams/bspline-fortran","labels_url":"https://api.github.com/repos/jacobwilliams/bspline-fortran/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/jacobwilliams/bspline-fortran/issues/14/comments","events_url":"https://api.github.com/repos/jacobwilliams/bspline-fortran/issues/14/events","html_url":"https://github.com/jacobwilliams/bspline-fortran/issues/14","id":136163438,"number":14,"title":"pure procedures?","user":{"login":"danhar","id":3855298,"avatar_url":"https://avatars.githubusercontent.com/u/3855298?v=3","gravatar_id":"","url":"https://api.github.com/users/danhar","html_url":"https://github.com/danhar","followers_url":"https://api.github.com/users/danhar/followers","following_url":"https://api.github.com/users/danhar/following{/other_user}","gists_url":"https://api.github.com/users/danhar/gists{/gist_id}","starred_url":"https://api.github.com/users/danhar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danhar/subscriptions","organizations_url":"https://api.github.com/users/danhar/orgs","repos_url":"https://api.github.com/users/danhar/repos","events_url":"https://api.github.com/users/danhar/events{/privacy}","received_events_url":"https://api.github.com/users/danhar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-02-24T19:32:42Z","updated_at":"2016-02-25T15:03:59Z","closed_at":null,"body":"Would it be a good and feasible idea to make the procedures `pure`? Since the `save` variables are gone, that's one less obstacle. The other obstacle are the error messages. Since an error flag is already present, one could move the messages to a separate (non-pure) type-bound subroutine which takes flag as input and prints the corresponding message.\r\n\r\nIn my case, the spline evaluation appears in a bottleneck part of the code that could benefit from optimization which the compiler can do for `pure` procedures, and bspline is the only element preventing this."},"comment":{"url":"https://api.github.com/repos/jacobwilliams/bspline-fortran/issues/comments/188825707","html_url":"https://github.com/jacobwilliams/bspline-fortran/issues/14#issuecomment-188825707","issue_url":"https://api.github.com/repos/jacobwilliams/bspline-fortran/issues/14","id":188825707,"user":{"login":"szaghi","id":1661942,"avatar_url":"https://avatars.githubusercontent.com/u/1661942?v=3","gravatar_id":"","url":"https://api.github.com/users/szaghi","html_url":"https://github.com/szaghi","followers_url":"https://api.github.com/users/szaghi/followers","following_url":"https://api.github.com/users/szaghi/following{/other_user}","gists_url":"https://api.github.com/users/szaghi/gists{/gist_id}","starred_url":"https://api.github.com/users/szaghi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szaghi/subscriptions","organizations_url":"https://api.github.com/users/szaghi/orgs","repos_url":"https://api.github.com/users/szaghi/repos","events_url":"https://api.github.com/users/szaghi/events{/privacy}","received_events_url":"https://api.github.com/users/szaghi/received_events","type":"User","site_admin":false},"created_at":"2016-02-25T15:03:59Z","updated_at":"2016-02-25T15:03:59Z","body":"Not sure, but `me` is the passed argument right? What if you declare it `intent(inout)`? \r\n\r\nIf you use a function constructor the `me` becomes the *result* and it should be not polymorphic or it should be an allocatable class, I guess (not sure again)."}}