module - Can we avoid creating a local variable if an optional argument is not PRESENT? -


i having problem present statement fortran 95. using silverfrost's plato , ftn95 compiler (in "release win32" mode). wanted create subroutine sub(a,b), b optional variable. far good, problem arises when try give new value b if (.not. present(b)) b=0. code:

module mod contains   subroutine sub(a,b)   implicit none   integer ::   integer,optional :: b   if (.not. present(b)) b=0   print*, a,b   end subroutine sub end module mod  program test use mod implicit none  integer :: i=2, j=1  call sub(i,j) call sub(i) call sub(j)  end program test 

is there elegant way out of situation, or need create variable, b_aux instance, , use following code?:

if (present(b))   b_aux=b   else     b_aux=0 endif 

you can't use non-existent variable, approach such auxiliary local variable needed.


Popular posts from this blog

php - How should I create my API for mobile applications (Needs Authentication) -

5 Reasons to Blog Anonymously (and 5 Reasons Not To)

Google AdWords and AdSense - A Dynamic Small Business Marketing Duo