Function: org-babel-execute:fortran

org-babel-execute:fortran is a byte-compiled function defined in ob-fortran.el.gz.

Signature

(org-babel-execute:fortran BODY PARAMS)

Documentation

This function should only be called by org-babel-execute:fortran.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-fortran.el.gz
(defun org-babel-execute:fortran (body params)
  "This function should only be called by `org-babel-execute:fortran'."
  (let* ((tmp-src-file (org-babel-temp-file "fortran-src-" ".F90"))
         (tmp-bin-file (org-babel-temp-file "fortran-bin-" org-babel-exeext))
         (cmdline (cdr (assq :cmdline params)))
         (flags (cdr (assq :flags params)))
         (full-body (org-babel-expand-body:fortran body params)))
    (with-temp-file tmp-src-file (insert full-body))
    (org-babel-eval
     (format "%s -o %s %s %s"
	     org-babel-fortran-compiler
	     (org-babel-process-file-name tmp-bin-file)
	     (mapconcat 'identity
			(if (listp flags) flags (list flags)) " ")
	     (org-babel-process-file-name tmp-src-file)) "")
    (let ((results
           (org-trim
            (org-remove-indentation
	     (org-babel-eval
	      (concat tmp-bin-file (if cmdline (concat " " cmdline) "")) "")))))
      (org-babel-reassemble-table
       (org-babel-result-cond (cdr (assq :result-params params))
	 (org-babel-read results)
         (let ((tmp-file (org-babel-temp-file "f-")))
           (with-temp-file tmp-file (insert results))
           (org-babel-import-elisp-from-file tmp-file)))
       (org-babel-pick-name
        (cdr (assq :colname-names params)) (cdr (assq :colnames params)))
       (org-babel-pick-name
        (cdr (assq :rowname-names params)) (cdr (assq :rownames params)))))))