Add fortran to babel
[org-mode.git] / testing / examples / ob-fortran-test.org
1 * Test org fortran file
2 #+begin_src fortran
3 print *, 'Hello world'
4 #+end_src
5
6 #+begin_src fortran
7 integer, parameter :: i = 10
8 print *, 'i = ', i
9 #+end_src
10
11 #+begin_src fortran :var N = 10
12 print *, 'N = ', N
13 #+end_src
14
15 Define for preprocessed fortran
16 #+begin_src fortran :defines N 42
17 implicit none
18 print *, 'N = ', N
19 #+end_src
20
21 #+begin_src fortran :var s="word"
22 print *, 's = ', s
23 print *, 'size(s) = ', size(s)
24 #+end_src
25
26 #+begin_src fortran :var s=42.0
27 print *, 's = ', s
28 print *, 'kind(s) = ', kind(s)
29 #+end_src
30
31 #+begin_src fortran
32 program ex
33 print *, "output of ex program"
34 end program ex
35 #+end_src
36
37 Should fail (TODO: add input variables for the case with explicit
38 program statement)
39 #+begin_src fortran :var s="word"
40 program ex
41 print *, "output of ex program"
42 end program ex
43 #+end_src
44
45 Real array as input
46 #+begin_src fortran :var s='(1.0 2.0 3.0)
47 print *, s
48 #+end_src
49
50 #+tblname: test_tbl
51 | 1.0 |
52 | 2.0 |
53
54 Real array as input
55 #+begin_src fortran :var s=test_tbl
56 print *, s
57 #+end_src
58
59 Fails to compile (TODO: error check in ob-fortran.el)
60 #+begin_src fortran :var s='(1 ())
61 print *, s
62 #+end_src
63
64 Should fail to compile with gfortran
65 #+begin_src fortran :flags --std=f95 --pedantic-error
66 program ex
67 integer*8 :: i
68 end program ex
69 #+end_src
70
71 Pass parameters to the program
72 #+begin_src fortran :cmdline "23"
73 character(len=255) :: cmd
74 call get_command(cmd)
75 write (*,*) trim(cmd)
76 #+end_src