summaryrefslogtreecommitdiff
path: root/lisp/ob-fortran.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ob-fortran.el')
-rw-r--r--lisp/ob-fortran.el7
1 files changed, 7 insertions, 0 deletions
diff --git a/lisp/ob-fortran.el b/lisp/ob-fortran.el
index 1eab03e..df7bfa0 100644
--- a/lisp/ob-fortran.el
+++ b/lisp/ob-fortran.el
@@ -32,6 +32,7 @@
(declare-function org-entry-get "org"
(pom property &optional inherit literal-nil))
+(declare-function org-every "org" (pred seq))
(defvar org-babel-tangle-lang-exts)
(add-to-list 'org-babel-tangle-lang-exts '("fortran" . "F90"))
@@ -143,6 +144,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) (org-every #'listp 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)))