Function: org-babel-expand-body:fortran

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

Signature

(org-babel-expand-body:fortran BODY PARAMS)

Documentation

Expand a fortran BODY according to its header arguments defined in PARAMS.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-fortran.el.gz
(defun org-babel-expand-body:fortran (body params)
  "Expand a fortran BODY according to its header arguments defined in PARAMS."
  (let ((vars (org-babel--get-vars params))
        (prologue (cdr (assq :prologue params)))
        (epilogue (cdr (assq :epilogue params)))
        (main-p (not (string= (cdr (assq :main params)) "no")))
        (includes (or (cdr (assq :includes params))
                      (org-babel-read (org-entry-get nil "includes" t))))
        (defines (org-babel-read
                  (or (cdr (assq :defines params))
                      (org-babel-read (org-entry-get nil "defines" t))))))
    (mapconcat 'identity
	       (list
		;; includes
		(mapconcat
		 (lambda (inc) (format "#include %s" inc))
		 (if (listp includes) includes (list includes)) "\n")
		;; defines
		(mapconcat
		 (lambda (inc) (format "#define %s" inc))
		 (if (listp defines) defines (list defines)) "\n")
		;; body
		(if main-p
		    (org-babel-fortran-ensure-main-wrap
		     (concat
		      ;; variables
		      (mapconcat 'org-babel-fortran-var-to-fortran vars "\n")
                      (and prologue (concat prologue "\n"))
		      body
                      (and prologue (concat prologue "\n")))
		     params)
                  (concat
                   (and prologue (concat prologue "\n"))
		   body
                   (and epilogue (concat "\n" epilogue "\n"))))
                "\n")
               "\n")))