program test CHARACTER*20 N REAL A,B A = 10. B = MOD(A,1.0) n = 'bug' call bug(a,b) call bug(a,b,n) write(*,*)B stop end subroutine bug(x,b,name) real x,b OPTIONAL name CHARACTER*(*) name if(PRESENT(name))THEN write(*,*)'the name was here',name ELSE write(*,*)'there was no name' ENDIF b=x*x return end