Developer notes
Before you will extend Bifrost code make sure you read coding style document
Naming convention¶
Modules are called _mod
. All modules should contain
an initialisation procedure called init_
, where for instance data
should be read in.
Only setup file that does not depend on the paralization scheme is
params
, all other should make sure read/write should be done by the
master only!
Local sizes are xs-xe
,ys-ye
,zs-ze
for the trustworthy grid, while
boudnary points are xsb-xeb
,ysb-yeb
,zsb-zeb
, making the points in
x-direction distributed as:
All major procedures that uses input procedures needs to have a
subroutine called resolve_params_<procedure>(name,value)
and should
have a call to read_params(<procedure>)
with <procedure>
being
mhd
,hd
,radiation
, eos
, etc. These are not meant for large io
operations, but only for reading the text input file generated for/by
IDL
or Python
The case statements in the resolve_params_<proc>
should contain only lowercase letters, the variable names in the .in
file are converted to lowercase before being parsed to the respective
resolve_params_<proc>
.
init_<hd,mhd,...>
should make a check to see if the required number of
work arrays are allocated, and allocate more if they are not - see
example in mhd_mpi.f90