mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 22:47:56 +00:00
Add a matrix input to ob-fortran.el
* lisp/ob-fortran.el: add a branch which handles nested lists * testing/examples/ob-fortran-test.org: add a test for matrix input * testing/lisp/test-ob-fortran.el: add a test for matrix input
This commit is contained in:
parent
e3cc1ca792
commit
d7e884d86c
|
@ -143,6 +143,12 @@ of the same value."
|
|||
((stringp val)
|
||||
(format "character(len=%d), parameter :: %S = '%s'\n"
|
||||
(length val) var val))
|
||||
;; val is a matrix
|
||||
((and (listp val) (listp (car val)))
|
||||
(format "real, parameter :: %S(%d,%d) = transpose( reshape( %s , (/ %d, %d /) ) )\n"
|
||||
var (length val) (length (car val))
|
||||
(org-babel-fortran-transform-list val)
|
||||
(length (car val)) (length val)))
|
||||
((listp val)
|
||||
(format "real, parameter :: %S(%d) = %s\n"
|
||||
var (length val) (org-babel-fortran-transform-list val)))
|
||||
|
|
|
@ -50,6 +50,28 @@ write (*, '(3f5.2)'), s
|
|||
write (*, '(2f5.2)'), s
|
||||
#+end_src
|
||||
|
||||
* matrix
|
||||
:PROPERTIES:
|
||||
:ID: 3f73ab19-d25a-428d-8c26-e8c6aa933976
|
||||
:END:
|
||||
Real matrix as input
|
||||
#+name: fortran-input-matrix1
|
||||
| 0.0 | 42.0 |
|
||||
| 0.0 | 0.0 |
|
||||
| 0.0 | 0.0 |
|
||||
|
||||
#+name: fortran-input-matrix2
|
||||
| 0.0 | 0.0 | 0.0 |
|
||||
| 0.0 | 0.0 | 42.0 |
|
||||
|
||||
#+begin_src fortran :var s=fortran-input-matrix1 :results silent
|
||||
write (*, '(i2)'), nint(s(1,2))
|
||||
#+end_src
|
||||
|
||||
#+begin_src fortran :var s=fortran-input-matrix2 :results silent
|
||||
write (*, '(i2)'), nint(s(2,3))
|
||||
#+end_src
|
||||
|
||||
* failing
|
||||
:PROPERTIES:
|
||||
:ID: 891ead4a-f87a-473c-9ae0-1cf348bcd04f
|
||||
|
|
|
@ -68,6 +68,18 @@
|
|||
(org-babel-next-src-block 2)
|
||||
(should (equal "1.00 2.00" (org-babel-execute-src-block)))))
|
||||
|
||||
(ert-deftest ob-fortran/list-matrix-from-table1 ()
|
||||
"Test real matrix from a table"
|
||||
(org-test-at-id "3f73ab19-d25a-428d-8c26-e8c6aa933976"
|
||||
(org-babel-next-src-block 1)
|
||||
(should (= 42 (org-babel-execute-src-block)))))
|
||||
|
||||
(ert-deftest ob-fortran/list-matrix-from-table2 ()
|
||||
"Test real matrix from a table"
|
||||
(org-test-at-id "3f73ab19-d25a-428d-8c26-e8c6aa933976"
|
||||
(org-babel-next-src-block 2)
|
||||
(should (= 42 (org-babel-execute-src-block)))))
|
||||
|
||||
(ert-deftest ob-fortran/no-variables-with-main ()
|
||||
"Test :var with explicit 'program'"
|
||||
(org-test-at-id "891ead4a-f87a-473c-9ae0-1cf348bcd04f"
|
||||
|
|
Loading…
Reference in a new issue