|
MPI-AMRVAC 3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
|
There are two ways to add variables to the dat files:
This method adds extra variables in the dat file (which is also used for restart) and it is used in many tests: ard/analytic_test_1d, demo/Advect_ParticleSampling_2D, hd/Gresho_Chan_2D, ... To see all the tests which use this method, in the tests folder run:
find . -name 'mod_usr.t' -exec grep -H "var_set_extravar" {} \;
This method consists in:
usr_init subroutine (in mod_usr.t) using var_set_extravarusr_process_grid, usr_modify_output,... and set there the extra variables (and properly assign the pointer to the implemented subroutine in usr_init).With this method an extra dat file is generated with new variables. (see amrvacio/mod_convert.t).
convert_type to "dat_generic_mpi": &filelist
...
convert_type = "dat_generic_mpi"
...
/
usr_init subroutine (use mod_convert): call add_convert_method2(dump_vars, 4, "jx jy jz sxr", "_aux_")or
call add_convert_method(dump_vars, 4, (/" jx", " jy", " jz", "sxr"/), "_aux_")The first way is preferred as because Fortran requires the strrings in an array to have the same length and extra spaces might be necessary for this. The last argument
_aux_ is the suffix added to base_filename in order to generate the name of the new dat file.dump_vars function: function dump_vars(ixI^L, ixO^L, w, x, nwc) result(wnew) use mod_global_parameters use mod_thermal_emission integer, intent(in) :: ixI^L,ixO^L, nwc double precision, intent(in) :: w(ixO^S, 1:nw) double precision, intent(in) :: x(ixO^S,1:ndim) double precision :: wnew(ixO^S, 1:nwc) double precision :: current(ixI^S,7-2*ndir:3) integer :: idirmin,idir double precision :: tmp(ixI^S) call get_current(w,ixI^L,ixO^L,idirmin,current) wnew(ixO^S,1) = current(ixO^S,1) wnew(ixO^S,2) = current(ixO^S,2) wnew(ixO^S,3) = current(ixO^S,3) call get_SXR(ixI^L,ixO^L,w,x,te_fl_c,tmp,9,12) wnew(ixO^S,4) = tmp(ixO^S) end function dump_vars
&mhd_list mhd_dump_full_vars=.true. /A new file is created with hardcoded suffix
new.&twofl_list twofl_dump_full_vars=.true. /A new file is created with hardcoded suffix
new.&twofl_list twofl_dump_coll_terms=.true. /A new file is created with hardcoded suffix
_coll.