home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.fortran
- Path: sparky!uunet!haven.umd.edu!decuac!pa.dec.com!rdg.dec.com!news.crl.dec.com!dbased.nuo.dec.com!e2big.mko.dec.com!quark.enet.dec.com!lionel
- From: lionel@quark.enet.dec.com (Steve Lionel)
- Subject: Re: SUMMARY: CHARACTER FUNCTION as dummy argument
- Message-ID: <1992Dec15.151332.5658@e2big.mko.dec.com>
- Lines: 52
- Sender: usenet@e2big.mko.dec.com (Mr. USENET)
- Reply-To: lionel@quark.enet.dec.com (Steve Lionel)
- Organization: Digital Equipment Corporation, Nashua NH
- References: <BURLEY.92Dec15044825@apple-gunkies.gnu.ai.mit.edu>
- Date: Tue, 15 Dec 1992 15:13:32 GMT
-
-
- In article <BURLEY.92Dec15044825@apple-gunkies.gnu.ai.mit.edu>,
- burley@apple-gunkies.gnu.ai.mit.edu (Craig Burley) writes:
-
- |>If anyone has a system that supports the code in Sample 1 (like VAX/VMS
- |>FORTRAN), it'd be interesting to see how well it handled the following:
- |>
- |>C Sample 6
- |> CHARACTER*(*) CFUNC
- |> EXTERNAL CFUNC
- |> CALL X (CFUNC)
- |> PRINT *, 'Done!'
- |> END
- |>C
- |> SUBROUTINE X (CFUNC)
- |> CHARACTER*(*) CFUNC
- |> EXTERNAL CFUNC
- |> PRINT *, 'Try this:'
- |> PRINT *, CFUNC()
- |> PRINT *, 'Now try this:'
- |> CALL Y (CFUNC(), CFUNC())
- |> END
- |>C
- |> SUBROUTINE Y (ARG1, ARG2)
- |> CHARACTER*(*) ARG1, ARG2
- |> PRINT *, ARG1(1:10), LEN (ARG1)
- |> PRINT *, ARG2(1:10), LEN (ARG2)
- |> END
- |>C
- |> CHARACTER*(*) FUNCTION CFUNC ()
- |> INTEGER I,J
- |> CHARACTER C
- |> SAVE I,C
- |> DATA I/50/, C/'A'/
- |> DO 10 J = 1, I
- |> CFUNC(J:J) = C
- |>10 CONTINUE
- |> I = 2 * I
- |> C = CHAR (ICHAR (C) + 1)
- |> END
- |>
- |>
-
- VAX FORTRAN disallows the CHARACTER*(*) declaration for something that is
- not a formal argument; this seems to me the only correct choice.
- --
-
- Steve Lionel lionel@quark.enet.dec.com
- SDT Languages Group
- Digital Equipment Corporation
- 110 Spit Brook Road
- Nashua, NH 03062
-