File: README

package info (click to toggle)
libctl 3.0.2-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 2,084 kB
  • ctags: 976
  • sloc: sh: 8,567; ansic: 5,584; lisp: 2,219; makefile: 102
file content (46 lines) | stat: -rw-r--r-- 1,623 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Example program using libctl.  This consists of:

main.c: skeleton main program.  To create a real program using libctl,
	you will only need to make slight changes to this file.

example.scm: a sample specification file that contains
	a few parameters similar to what you might give to a
	photonic crystal program.  This uses the geometry
	classes and utilities in utils/libgeom.

example.c: example of a main subroutine (called by main.c) which
	demonstrates how the input/output variables are automatically
	read/written.

run.ctl: example control file that creates some data for the program
	to read.

Makefile: makefile for the example program.  (Also a good starting point
	for the Makefile of a real program using libctl.)

So, to compile and run everything, you simply type:

make
example run.ctl

Since run.ctl does not call (run), this drops you into Guile's
interactive mode, where you can start typing in Scheme commands.  For
example, you can try:

(help)  ; prints help on data structures and variables defined by
	; the specification file

k-points   ; prints the value of the k-points variable (set by run.ctl)

(run)   ; runs the example program (exports the input variables,
	; calls run_program in main.c, and imports the output variables).

Type Ctrl-D or (quit) to exit.

Another pair of interesting files to look at, after you have run make,
are ctl-io.c and ctl-io.h.  These files are automatically generated
from the specifications file.  They define the data structures
corresponding to the input/output variables, and handle importing and
exporting variable values between C and Scheme.

Have fun!