- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using some VML routines (for calculating things including the normal cdf, inverse normal cdf). I'd like to call these from functions/subroutines declared as pure. If I change the respective interface block to include the pure keyword, my code compiles and executes as expected. Is this safe? Thanks.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
How do you change the function declaration by adding pure? For example, for the following function, virngpoisson( method, stream, n, r, lambda )
Only the output vector, and stream may be changed after the function call. It has no other side effect. If they are taken as the output value, it is fine to define the subroutine as pure.
Thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I haven't used the routine you mentioned, but for one I have (to compute normal cdf), I just add the following interface in my (pure) subroutine which calls this.
Is this OK?
[fortran]interface pure subroutine vdcdfnorm(n,a,r) integer,intent(in) :: n real(kind=8),intent(in) :: a(n) real(kind=8),intent(out) :: r(n) end subroutine end interface[/fortran]
Is this OK?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
It is fine for this one. r is the only output forthis function.
Thanks,
Chao
It is fine for this one. r is the only output forthis function.
Thanks,
Chao

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page