Commit Graph

251 Commits

Author SHA1 Message Date
Michele Guerini Rocco
aea31018a9
Revert "Change documentation formatting"
This reverts commit 10ab2d73.
The change broke the generation of the manual with help2man.
2022-05-11 01:15:07 +02:00
Michele Guerini Rocco
e81308d048
add option to set parameters from the command-line 2022-05-11 01:15:07 +02:00
Michele Guerini Rocco
3e49247d15
src/main.f90: fix typo 2022-05-11 01:15:06 +02:00
a2d4c25bb2
Change documentation formatting
Revert temporarily to default fonts to improve portability.
Add section header markers to the man page.
2022-05-11 01:15:06 +02:00
9a6063389e
Add wave frequency to parameters stored in file headers 2022-05-11 01:15:06 +02:00
efd4fc51e5
src/gray_params.f90: improve handling of absolute paths 2022-05-11 01:15:06 +02:00
d3a87e1044
Close open units on exit to flush the buffer 2022-05-11 01:15:05 +02:00
b379a20192
Makefile: change docs rule to make it work on macOS 2022-05-11 01:15:05 +02:00
Michele Guerini Rocco
6938d8c061
Makefile: make the .d rule portable
The \+ syntax is not POSIX and supported only by GNU sed.
This changes both the grep and sed commands to use extended regex.

Note: sed -E option is not POSIX either, but widely supported.
2022-05-11 01:15:05 +02:00
Michele Guerini Rocco
a30cd09e8e
src/math.f90: use the intrinsic gamma function
- remove the `gamm` function
- rewrite `fact` in terms of `gamma`
2022-05-11 01:15:05 +02:00
Michele Guerini Rocco
98599b2b7d
src/dispersion.f90: compute factorials incrementally 2022-05-11 01:15:05 +02:00
Michele Guerini Rocco
91a2e6cf07
src: implement toggling of output units
This actually implements the --units option
2022-05-11 01:15:04 +02:00
Michele Guerini Rocco
96359bc3fd
src: use hypot and norm2 when possible 2022-05-11 01:15:04 +02:00
Michele Guerini Rocco
18c1126d28
src/gray_params.f90: improve print_parameters
- add all missing parameters (not *data*)
- use shorter formatting
2022-05-11 01:15:04 +02:00
Michele Guerini Rocco
add59dbdda
src: use the logging system everywhere 2022-05-11 01:15:04 +02:00
Michele Guerini Rocco
f2f41ec023
src/logger.f90: init
This change adds a minimal logging system. The log messages carry a
timestamp in μs, the identifier of the emitter (fortran module +
procedure) and a log level. For simplicity the format is hardcoded.
2022-05-11 01:15:04 +02:00
Michele Guerini Rocco
ed0917aa8c
src/conical.f90: eliminate dead code
Use the intrinsic functions when possible (bessel_j0, bessel_j1) and
remove other unused functions.
2022-05-11 01:15:03 +02:00
Michele Guerini Rocco
ef1617713f
src: simplify handling of free units
This changes the behavior of `get_free_unit` to simplify the handling of
optional unit numbers.
2022-05-11 01:15:03 +02:00
Michele Guerini Rocco
095ee7ecf2
default.nix: exlcude result from source 2022-05-11 01:15:03 +02:00
Michele Guerini Rocco
da1ddd186e
default.nix: enable parallel build 2022-05-11 01:15:03 +02:00
Michele Guerini Rocco
5a8e64a595
Makefile: fix shell quoting 2022-05-11 01:15:03 +02:00
Michele Guerini Rocco
9a39251f44
doc/gray.1 generate from gray --help 2022-05-11 01:15:02 +02:00
Michele Guerini Rocco
01a6f9145c
initial gray CLI work
This lays down the basis for the gray command-line interface.
All options works but currently --units and -v/-q have no effect.
2022-05-11 01:15:02 +02:00
Michele Guerini Rocco
93d936ce24
Makefile: ignore instrisic modules
This excludes intristic modules like `iso_fortran_env` from the
automatic generation of the prerequisites.
2022-05-11 01:15:02 +02:00
Michele Guerini Rocco
2bee7be103
src/graycore.f90 -> src/gray_core.f90
Rename for consistency with other modules.
2022-05-11 01:15:02 +02:00
Michele Guerini Rocco
d18e05353a
src: remove unused parameters 2022-05-11 01:15:02 +02:00
Michele Guerini Rocco
7818ac731c
src/gray_jetto1beamf90: update for graycore changes 2022-05-11 01:15:01 +02:00
Michele Guerini Rocco
f56e1cbc05
src/coreprofiles.f90: use derived types 2022-05-11 01:15:01 +02:00
Michele Guerini Rocco
948a512254
src: use derived type arguments (work in progress)
This change structures the arguments of most functions, in particular
gray_main, into well-defined categories using derived types.

All types are defined in the gray_params.f90 (location subject to
change) and are organised as follows:

  gray_parameters (statically allocated data)
  ├── antenna_parameters
  ├── ecrh_cd_parameters
  ├── equilibrium_parameters
  ├── misc_parameters
  ├── output_parameters
  ├── profiles_parameters
  └── raytracing_parameters

  gray_data - inputs of gray_main (dynamically-allocated arrays)
  ├── equilibrium_data
  └── profiles_data

  gray_results - outputs of gray_main (dynamically-allocated arrays)
2022-05-11 01:15:01 +02:00
Michele Guerini Rocco
4f867bad14
src/magsurf_data.f90: fix memory leak 2022-05-11 01:15:01 +02:00
Michele Guerini Rocco
b1694bc575
src/pec.f90: fix uninitialised memory use
If the condition `sccsa > zero` is not met, ratj{a,b}mx remain
unitialised and print_finals may write them to fort.7.
2022-05-11 01:15:00 +02:00
Michele Guerini Rocco
5a50ce1cef
Makefile: add debug option 2022-05-11 01:15:00 +02:00
Michele Guerini Rocco
d9b03fc5e6
doc/3.io-files.md: fix some inconsistencies in gray_params 2022-05-11 01:15:00 +02:00
Michele Guerini Rocco
78c96c7648
doc/2.physics.md: fix equation spacing 2022-05-11 01:15:00 +02:00
Michele Guerini Rocco
712260ae26
doc/3.io-files.md: all angles are in degrees 2022-05-11 01:15:00 +02:00
Michele Guerini Rocco
58ee0bdc1b
doc: add anchor links to headings 2022-05-11 01:14:59 +02:00
Michele Guerini Rocco
861a723ebc
src/equilibrium.f90: fix mixed tab/spaces 2022-05-11 01:14:59 +02:00
Michele Guerini Rocco
08dad4ff45
add documentation 2021-12-15 02:30:58 +01:00
Michele Guerini Rocco
bfbd479d20
src/const_and_precisions.f90: clean up
- formatting
  - remove commented out constants
  - remove constants not used anywhere in GRAY
2021-12-15 02:30:56 +01:00
Michele Guerini Rocco
693af2a763
merge graysum and gray
Note that graysum, now as sum_mode, still doesn't support multipass.
2021-12-15 02:30:55 +01:00
Michele Guerini Rocco
37ee881024
src/gray-externals.f90: remove
Apparently, this module only constains old unused routines.
2021-12-15 02:30:54 +01:00
Michele Guerini Rocco
1648a7878a
src/gray_params.f90: handle file not found error 2021-12-15 02:30:53 +01:00
Michele Guerini Rocco
023facac6b
src/gray_params.f90: formatting 2021-12-15 02:30:52 +01:00
Michele Guerini Rocco
75c30ee834
move manual into a doc subdirectory 2021-12-15 02:30:51 +01:00
Michele Guerini Rocco
cb873fbcf6
src/multipass.f90: fix file mode 2021-12-15 02:30:50 +01:00
Michele Guerini Rocco
f58a8ba308
add Nix package 2021-12-15 02:30:49 +01:00
Michele Guerini Rocco
1a7db631de
actually use the configure script 2021-12-15 02:30:48 +01:00
Michele Guerini Rocco
8dfb214ea0
scripts: make shebangs more portable
Use env to find the interpreter instead of a hard-coded path.
2021-12-15 02:30:47 +01:00
Michele Guerini Rocco
f16471aad4
configure: fix several shellcheck warnings 2021-12-15 02:30:45 +01:00
ad7852d9c2
rework the build system
- unify the three makefiles into a single generic one

- automatically generate link targets (via the `depend` script)
  and object dependencies (via a make rule)

- move all build artifacts under the build/ directory

- replace svn with git for the version information

- add a `static` variable to toggle between static/shared builds

- add a target to build the dependency graph of GRAY modules
2021-12-10 16:21:31 +01:00