fidasim Program

Uses

  • program~~fidasim~~UsesGraph program~fidasim fidasim module~mpi_utils mpi_utils program~fidasim->module~mpi_utils omp_lib omp_lib program~fidasim->omp_lib module~hdf5_utils hdf5_utils program~fidasim->module~hdf5_utils module~libfida libfida program~fidasim->module~libfida H5LT H5LT module~hdf5_utils->H5LT HDF5 HDF5 module~hdf5_utils->HDF5 module~libfida->module~mpi_utils module~libfida->module~hdf5_utils module~libfida->H5LT module~utilities utilities module~libfida->module~utilities module~eigensystem eigensystem module~libfida->module~eigensystem iso_c_binding iso_c_binding module~libfida->iso_c_binding module~libfida->HDF5 module~utilities->omp_lib module~utilities->iso_c_binding

FIDASIM 2.0.0


Calls

program~~fidasim~~CallsGraph program~fidasim fidasim proc~read_distribution read_distribution program~fidasim->proc~read_distribution proc~pnpa_f pnpa_f program~fidasim->proc~pnpa_f proc~dcx_spec dcx_spec program~fidasim->proc~dcx_spec proc~bremsstrahlung bremsstrahlung program~fidasim->proc~bremsstrahlung proc~print_banner print_banner program~fidasim->proc~print_banner proc~ndmc ndmc program~fidasim->proc~ndmc proc~read_neutrals read_neutrals program~fidasim->proc~read_neutrals proc~nbi_spec nbi_spec program~fidasim->proc~nbi_spec proc~read_npa read_npa program~fidasim->proc~read_npa proc~read_equilibrium read_equilibrium program~fidasim->proc~read_equilibrium proc~npa_weights npa_weights program~fidasim->proc~npa_weights proc~read_inputs read_inputs program~fidasim->proc~read_inputs proc~fida_mc fida_mc program~fidasim->proc~fida_mc proc~write_neutrals write_neutrals program~fidasim->proc~write_neutrals proc~make_beam_grid make_beam_grid program~fidasim->proc~make_beam_grid proc~pfida_f pfida_f program~fidasim->proc~pfida_f proc~write_spectra write_spectra program~fidasim->proc~write_spectra proc~check_compression_availability check_compression_availability program~fidasim->proc~check_compression_availability proc~pnpa_mc pnpa_mc program~fidasim->proc~pnpa_mc proc~halo halo program~fidasim->proc~halo proc~write_npa write_npa program~fidasim->proc~write_npa proc~pfida_mc pfida_mc program~fidasim->proc~pfida_mc proc~cleanup_mpi cleanup_mpi program~fidasim->proc~cleanup_mpi proc~dcx dcx program~fidasim->proc~dcx proc~fida_weights_los fida_weights_los program~fidasim->proc~fida_weights_los rng rng program~fidasim->rng proc~num_ranks num_ranks program~fidasim->proc~num_ranks proc~neutron_mc neutron_mc program~fidasim->proc~neutron_mc proc~read_chords read_chords program~fidasim->proc~read_chords proc~npa_mc npa_mc program~fidasim->proc~npa_mc proc~fida_f fida_f program~fidasim->proc~fida_f proc~read_tables read_tables program~fidasim->proc~read_tables proc~write_birth_profile write_birth_profile program~fidasim->proc~write_birth_profile proc~fida_weights_mc fida_weights_mc program~fidasim->proc~fida_weights_mc proc~halo_spec halo_spec program~fidasim->proc~halo_spec omp_set_num_threads omp_set_num_threads program~fidasim->omp_set_num_threads proc~make_diagnostic_grids make_diagnostic_grids program~fidasim->proc~make_diagnostic_grids proc~cold_spec cold_spec program~fidasim->proc~cold_spec proc~npa_f npa_f program~fidasim->proc~npa_f proc~neutron_f neutron_f program~fidasim->proc~neutron_f omp_get_num_procs omp_get_num_procs program~fidasim->omp_get_num_procs proc~init_mpi init_mpi program~fidasim->proc~init_mpi proc~my_rank my_rank program~fidasim->proc~my_rank h5fclose_f h5fclose_f proc~read_distribution->h5fclose_f proc~h5ltread_dataset_int_scalar_f h5ltread_dataset_int_scalar_f proc~read_distribution->proc~h5ltread_dataset_int_scalar_f h5close_f h5close_f proc~read_distribution->h5close_f proc~read_mc read_mc proc~read_distribution->proc~read_mc h5fopen_f h5fopen_f proc~read_distribution->h5fopen_f proc~read_f read_f proc~read_distribution->proc~read_f h5open_f h5open_f proc~read_distribution->h5open_f proc~mc_fastion_pass_grid mc_fastion_pass_grid proc~pnpa_f->proc~mc_fastion_pass_grid proc~bt_cx_rates bt_cx_rates proc~pnpa_f->proc~bt_cx_rates proc~gyro_surface gyro_surface proc~pnpa_f->proc~gyro_surface proc~ind2sub ind2sub proc~pnpa_f->proc~ind2sub proc~hit_npa_detector hit_npa_detector proc~pnpa_f->proc~hit_npa_detector proc~get_nlaunch_pass_grid get_nlaunch_pass_grid proc~pnpa_f->proc~get_nlaunch_pass_grid proc~store_npa store_npa proc~pnpa_f->proc~store_npa proc~gyro_trajectory gyro_trajectory proc~pnpa_f->proc~gyro_trajectory proc~attenuate attenuate proc~pnpa_f->proc~attenuate proc~npa_gyro_range npa_gyro_range proc~pnpa_f->proc~npa_gyro_range proc~get_plasma get_plasma proc~pnpa_f->proc~get_plasma interface~parallel_sum parallel_sum proc~pnpa_f->interface~parallel_sum proc~dcx_spec->proc~ind2sub proc~store_photons store_photons proc~dcx_spec->proc~store_photons proc~in_plasma in_plasma proc~dcx_spec->proc~in_plasma interface~randu randu proc~dcx_spec->interface~randu proc~dcx_spec->proc~get_plasma proc~dcx_spec->interface~parallel_sum interface~randn randn proc~dcx_spec->interface~randn proc~bremsstrahlung->interface~randu proc~bremsstrahlung->proc~get_plasma proc~line_basis line_basis proc~bremsstrahlung->proc~line_basis proc~bremsstrahlung->interface~parallel_sum proc~track track proc~ndmc->proc~track proc~gyro_step gyro_step proc~ndmc->proc~gyro_step proc~ndmc->interface~randu proc~store_neutrals store_neutrals proc~ndmc->proc~store_neutrals proc~get_fields get_fields proc~ndmc->proc~get_fields proc~mc_nbi mc_nbi proc~ndmc->proc~mc_nbi proc~ndmc->interface~parallel_sum h5gclose_f h5gclose_f proc~read_neutrals->h5gclose_f proc~read_neutrals->h5fclose_f proc~read_neutrals->proc~h5ltread_dataset_int_scalar_f proc~read_neutrals->h5close_f h5ltpath_valid_f h5ltpath_valid_f proc~read_neutrals->h5ltpath_valid_f proc~read_neutrals->h5fopen_f h5gopen_f h5gopen_f proc~read_neutrals->h5gopen_f proc~read_neutrals->h5open_f h5ltread_dataset_double_f h5ltread_dataset_double_f proc~read_neutrals->h5ltread_dataset_double_f proc~nbi_spec->proc~ind2sub proc~mc_nbi_cell mc_nbi_cell proc~nbi_spec->proc~mc_nbi_cell proc~nbi_spec->proc~store_photons proc~nbi_spec->proc~in_plasma proc~nbi_spec->interface~randu proc~nbi_spec->interface~parallel_sum proc~plane_basis plane_basis proc~read_npa->proc~plane_basis proc~read_npa->h5gclose_f proc~read_npa->h5fclose_f proc~read_npa->proc~h5ltread_dataset_int_scalar_f proc~read_npa->h5close_f proc~read_npa->h5ltpath_valid_f h5ltread_dataset_string_f h5ltread_dataset_string_f proc~read_npa->h5ltread_dataset_string_f proc~read_npa->h5fopen_f proc~read_npa->h5gopen_f proc~read_npa->h5open_f proc~read_npa->h5ltread_dataset_double_f h5ltread_dataset_int_f h5ltread_dataset_int_f proc~read_equilibrium->h5ltread_dataset_int_f proc~read_equilibrium->h5gclose_f proc~read_equilibrium->proc~ind2sub proc~read_equilibrium->h5fclose_f proc~read_equilibrium->proc~h5ltread_dataset_int_scalar_f proc~read_equilibrium->h5close_f proc~read_equilibrium->h5ltpath_valid_f proc~colrad colrad proc~read_equilibrium->proc~colrad interface~deriv deriv proc~read_equilibrium->interface~deriv proc~read_equilibrium->h5fopen_f proc~read_equilibrium->h5gopen_f proc~read_equilibrium->h5open_f proc~read_equilibrium->h5ltread_dataset_double_f proc~read_equilibrium->interface~randn proc~npa_weights->proc~my_rank proc~npa_weights->proc~hit_npa_detector proc~npa_weights->proc~gyro_step proc~npa_weights->proc~attenuate proc~get_beam_cx_rate get_beam_cx_rate proc~npa_weights->proc~get_beam_cx_rate proc~npa_weights->proc~get_fields proc~write_npa_weights write_npa_weights proc~npa_weights->proc~write_npa_weights proc~npa_weights->interface~parallel_sum proc~read_inputs->proc~my_rank proc~rng_seed rng_seed proc~read_inputs->proc~rng_seed proc~uvw_to_xyz uvw_to_xyz proc~fida_mc->proc~uvw_to_xyz proc~fida_mc->proc~track proc~fida_mc->interface~randu proc~fida_mc->proc~get_fields proc~gyro_correction gyro_correction proc~fida_mc->proc~gyro_correction proc~fida_mc->interface~parallel_sum proc~write_neutrals->h5fclose_f h5ltmake_dataset_int_f h5ltmake_dataset_int_f proc~write_neutrals->h5ltmake_dataset_int_f proc~write_neutrals->h5close_f proc~write_beam_grid write_beam_grid proc~write_neutrals->proc~write_beam_grid interface~h5ltmake_compressed_dataset_double_f h5ltmake_compressed_dataset_double_f proc~write_neutrals->interface~h5ltmake_compressed_dataset_double_f proc~write_neutrals->h5open_f h5ltset_attribute_string_f h5ltset_attribute_string_f proc~write_neutrals->h5ltset_attribute_string_f h5fcreate_f h5fcreate_f proc~write_neutrals->h5fcreate_f proc~tb_zyx tb_zyx proc~make_beam_grid->proc~tb_zyx proc~make_beam_grid->proc~in_plasma proc~pfida_f->proc~mc_fastion_pass_grid proc~pfida_f->proc~bt_cx_rates proc~pfida_f->proc~ind2sub proc~track_cylindrical track_cylindrical proc~pfida_f->proc~track_cylindrical proc~pfida_f->proc~get_nlaunch_pass_grid proc~pfida_f->proc~get_plasma proc~pfida_f->proc~gyro_correction proc~pfida_f->interface~parallel_sum proc~write_spectra->h5fclose_f proc~write_spectra->h5ltmake_dataset_int_f proc~write_spectra->h5close_f proc~write_spectra->interface~h5ltmake_compressed_dataset_double_f proc~write_spectra->h5open_f proc~write_spectra->h5ltset_attribute_string_f proc~write_spectra->h5fcreate_f h5zget_filter_info_f h5zget_filter_info_f proc~check_compression_availability->h5zget_filter_info_f h5zfilter_avail_f h5zfilter_avail_f proc~check_compression_availability->h5zfilter_avail_f proc~check_compression_availability->h5close_f proc~check_compression_availability->h5open_f proc~pnpa_mc->proc~uvw_to_xyz proc~pnpa_mc->proc~bt_cx_rates proc~pnpa_mc->proc~gyro_surface proc~pnpa_mc->proc~hit_npa_detector proc~pnpa_mc->proc~store_npa proc~pnpa_mc->interface~randu proc~pnpa_mc->proc~gyro_trajectory proc~pnpa_mc->proc~attenuate proc~pnpa_mc->proc~get_fields proc~pnpa_mc->proc~npa_gyro_range proc~pnpa_mc->proc~get_plasma proc~pnpa_mc->interface~parallel_sum omp_get_thread_num omp_get_thread_num proc~halo->omp_get_thread_num proc~halo->proc~track proc~halo->proc~ind2sub proc~get_nlaunch get_nlaunch proc~halo->proc~get_nlaunch proc~mc_halo mc_halo proc~halo->proc~mc_halo omp_get_max_threads omp_get_max_threads proc~halo->omp_get_max_threads proc~halo->proc~get_plasma proc~halo->interface~parallel_sum proc~write_npa->proc~num_ranks proc~write_npa->proc~my_rank proc~write_npa->h5gclose_f proc~write_npa->h5fclose_f proc~write_npa->h5ltmake_dataset_int_f proc~write_npa->h5close_f h5gcreate_f h5gcreate_f proc~write_npa->h5gcreate_f interface~h5ltmake_compressed_dataset_int_f h5ltmake_compressed_dataset_int_f proc~write_npa->interface~h5ltmake_compressed_dataset_int_f proc~write_npa->interface~h5ltmake_compressed_dataset_double_f proc~write_npa->h5open_f proc~write_npa->h5ltset_attribute_string_f proc~write_npa->h5fcreate_f proc~write_npa->interface~parallel_sum proc~pfida_mc->proc~bt_cx_rates proc~pfida_mc->proc~track_cylindrical proc~pfida_mc->interface~randu proc~pfida_mc->proc~get_fields proc~pfida_mc->proc~get_plasma proc~pfida_mc->proc~gyro_correction proc~pfida_mc->interface~parallel_sum mpi_barrier mpi_barrier proc~cleanup_mpi->mpi_barrier mpi_finalize mpi_finalize proc~cleanup_mpi->mpi_finalize proc~dcx->proc~track proc~dcx->proc~ind2sub proc~dcx->proc~get_nlaunch proc~dcx->proc~mc_halo proc~dcx->proc~get_plasma proc~dcx->interface~parallel_sum proc~fida_weights_los->proc~my_rank proc~fida_weights_los->proc~bt_cx_rates proc~fida_weights_los->proc~track proc~write_fida_weights write_fida_weights proc~fida_weights_los->proc~write_fida_weights proc~pitch_to_vec pitch_to_vec proc~fida_weights_los->proc~pitch_to_vec proc~grid_intersect grid_intersect proc~fida_weights_los->proc~grid_intersect proc~store_fw_photons_at_chan store_fw_photons_at_chan proc~fida_weights_los->proc~store_fw_photons_at_chan proc~fida_weights_los->proc~in_plasma proc~fida_weights_los->proc~colrad proc~fida_weights_los->proc~get_fields proc~fida_weights_los->proc~get_plasma proc~fida_weights_los->interface~parallel_sum proc~bb_cx_rates bb_cx_rates proc~fida_weights_los->proc~bb_cx_rates proc~neutron_mc->proc~my_rank proc~get_neutron_rate get_neutron_rate proc~neutron_mc->proc~get_neutron_rate proc~neutron_mc->proc~get_fields proc~neutron_mc->proc~get_plasma proc~neutron_mc->proc~gyro_correction proc~store_neutrons store_neutrons proc~neutron_mc->proc~store_neutrons proc~write_neutrons write_neutrons proc~neutron_mc->proc~write_neutrons proc~neutron_mc->interface~parallel_sum proc~read_chords->h5gclose_f proc~read_chords->h5fclose_f proc~read_chords->proc~h5ltread_dataset_int_scalar_f proc~read_chords->h5close_f proc~read_chords->h5ltpath_valid_f proc~read_chords->h5ltread_dataset_string_f proc~read_chords->h5fopen_f proc~read_chords->h5gopen_f proc~read_chords->h5open_f proc~read_chords->h5ltread_dataset_double_f proc~npa_mc->proc~uvw_to_xyz proc~get_indices get_indices proc~npa_mc->proc~get_indices proc~npa_mc->proc~gyro_surface proc~npa_mc->proc~hit_npa_detector proc~npa_mc->proc~store_npa proc~npa_mc->interface~randu proc~npa_mc->proc~gyro_trajectory proc~npa_mc->proc~attenuate proc~npa_mc->proc~get_beam_cx_rate proc~npa_mc->proc~get_fields proc~npa_mc->proc~npa_gyro_range proc~npa_mc->interface~parallel_sum proc~fida_f->proc~track proc~fida_f->proc~ind2sub proc~fida_f->proc~get_nlaunch proc~mc_fastion mc_fastion proc~fida_f->proc~mc_fastion proc~fida_f->proc~get_plasma proc~fida_f->proc~gyro_correction proc~fida_f->interface~parallel_sum proc~read_atomic_transitions read_atomic_transitions proc~read_tables->proc~read_atomic_transitions proc~read_tables->h5fclose_f proc~read_atomic_rate read_atomic_rate proc~read_tables->proc~read_atomic_rate proc~read_tables->proc~h5ltread_dataset_int_scalar_f proc~read_tables->h5close_f proc~read_tables->h5fopen_f proc~read_tables->h5open_f proc~read_tables->h5ltread_dataset_double_f proc~read_atomic_cross read_atomic_cross proc~read_tables->proc~read_atomic_cross proc~read_nuclear_rates read_nuclear_rates proc~read_tables->proc~read_nuclear_rates proc~write_birth_profile->proc~num_ranks proc~write_birth_profile->proc~my_rank proc~write_birth_profile->h5fclose_f proc~write_birth_profile->h5ltmake_dataset_int_f proc~write_birth_profile->h5close_f proc~xyz_to_uvw xyz_to_uvw proc~write_birth_profile->proc~xyz_to_uvw proc~write_birth_profile->proc~write_beam_grid proc~write_birth_profile->interface~h5ltmake_compressed_dataset_int_f proc~write_birth_profile->interface~h5ltmake_compressed_dataset_double_f proc~write_birth_profile->h5open_f proc~write_birth_profile->h5ltset_attribute_string_f proc~write_birth_profile->h5fcreate_f proc~write_birth_profile->interface~parallel_sum proc~fida_weights_mc->proc~my_rank proc~fida_weights_mc->proc~track proc~fida_weights_mc->proc~write_fida_weights proc~fida_weights_mc->proc~ind2sub proc~fida_weights_mc->proc~get_nlaunch proc~fida_weights_mc->interface~randu proc~get_ep_denf get_ep_denf proc~fida_weights_mc->proc~get_ep_denf proc~fida_weights_mc->proc~get_fields interface~randind randind proc~fida_weights_mc->interface~randind proc~fida_weights_mc->proc~get_plasma proc~fida_weights_mc->proc~gyro_correction proc~fida_weights_mc->interface~parallel_sum proc~halo_spec->proc~ind2sub proc~halo_spec->proc~store_photons proc~halo_spec->proc~in_plasma proc~halo_spec->interface~randu proc~halo_spec->proc~get_plasma proc~halo_spec->interface~parallel_sum proc~halo_spec->interface~randn proc~make_diagnostic_grids->proc~track proc~make_diagnostic_grids->proc~ind2sub proc~make_diagnostic_grids->proc~track_cylindrical proc~make_diagnostic_grids->proc~hit_npa_detector proc~make_diagnostic_grids->proc~grid_intersect proc~make_diagnostic_grids->interface~randu proc~make_diagnostic_grids->proc~get_fields proc~make_diagnostic_grids->proc~line_basis proc~make_diagnostic_grids->interface~parallel_sum proc~make_passive_grid make_passive_grid proc~make_diagnostic_grids->proc~make_passive_grid proc~cold_spec->proc~ind2sub proc~cold_spec->proc~store_photons proc~cold_spec->proc~get_plasma proc~cold_spec->interface~parallel_sum proc~cold_spec->interface~randn proc~npa_f->proc~get_indices proc~npa_f->proc~gyro_surface proc~npa_f->proc~ind2sub proc~npa_f->proc~hit_npa_detector proc~npa_f->proc~get_nlaunch proc~npa_f->proc~mc_fastion proc~npa_f->proc~store_npa proc~npa_f->proc~gyro_trajectory proc~npa_f->proc~attenuate proc~npa_f->proc~get_beam_cx_rate proc~npa_f->proc~npa_gyro_range proc~npa_f->proc~get_plasma proc~npa_f->interface~parallel_sum proc~neutron_f->proc~my_rank proc~neutron_f->proc~get_neutron_rate proc~neutron_f->proc~get_fields proc~neutron_f->proc~get_plasma proc~neutron_f->proc~gyro_correction proc~neutron_f->proc~store_neutrons proc~neutron_f->proc~write_neutrons proc~neutron_f->interface~parallel_sum mpi_comm_rank mpi_comm_rank proc~init_mpi->mpi_comm_rank mpi_init_thread mpi_init_thread proc~init_mpi->mpi_init_thread mpi_comm_size mpi_comm_size proc~init_mpi->mpi_comm_size mpi_init mpi_init proc~init_mpi->mpi_init proc~mc_fastion_pass_grid->interface~randu proc~mc_fastion_pass_grid->proc~get_fields proc~mc_fastion_pass_grid->interface~randind proc~get_distribution get_distribution proc~mc_fastion_pass_grid->proc~get_distribution proc~cyl_to_uvw cyl_to_uvw proc~mc_fastion_pass_grid->proc~cyl_to_uvw proc~cross_product cross_product proc~plane_basis->proc~cross_product interface~interpol_coeff interpol_coeff proc~bt_cx_rates->interface~interpol_coeff proc~track->proc~get_indices proc~track->proc~in_plasma proc~track->proc~get_fields proc~doppler_stark doppler_stark proc~track->proc~doppler_stark proc~write_fida_weights->h5fclose_f proc~write_fida_weights->h5ltmake_dataset_int_f proc~write_fida_weights->h5close_f proc~write_fida_weights->interface~h5ltmake_compressed_dataset_double_f proc~write_fida_weights->h5open_f proc~write_fida_weights->h5ltset_attribute_string_f proc~write_fida_weights->h5fcreate_f proc~read_atomic_transitions->proc~h5ltread_dataset_int_scalar_f proc~read_atomic_transitions->h5ltpath_valid_f proc~read_atomic_transitions->h5ltread_dataset_double_f proc~h5ltread_dataset_double_scalar_f h5ltread_dataset_double_scalar_f proc~read_atomic_transitions->proc~h5ltread_dataset_double_scalar_f h5ltget_dataset_ndims_f h5ltget_dataset_ndims_f proc~read_atomic_transitions->h5ltget_dataset_ndims_f proc~mc_nbi_cell->interface~randu proc~read_atomic_rate->proc~h5ltread_dataset_int_scalar_f proc~read_atomic_rate->h5ltpath_valid_f proc~read_atomic_rate->h5ltread_dataset_double_f proc~read_atomic_rate->proc~h5ltread_dataset_double_scalar_f proc~read_atomic_rate->h5ltget_dataset_ndims_f proc~store_photons->proc~uvw_to_xyz proc~store_photons->proc~get_indices proc~store_photons->proc~get_fields proc~get_passive_grid_indices get_passive_grid_indices proc~store_photons->proc~get_passive_grid_indices proc~spectrum spectrum proc~store_photons->proc~spectrum proc~track_cylindrical->proc~plane_basis proc~track_cylindrical->proc~in_plasma proc~track_cylindrical->proc~get_fields proc~track_cylindrical->proc~cyl_to_uvw proc~track_cylindrical->proc~get_passive_grid_indices proc~track_cylindrical->proc~doppler_stark proc~line_plane_intersect line_plane_intersect proc~hit_npa_detector->proc~line_plane_intersect proc~in_boundary in_boundary proc~hit_npa_detector->proc~in_boundary interface~randind_cdf randind_cdf proc~get_nlaunch->interface~randind_cdf proc~cumsum cumsum proc~get_nlaunch->proc~cumsum proc~rng_init rng_init proc~get_nlaunch->proc~rng_init proc~gyro_step->proc~cross_product proc~in_passive_grid in_passive_grid proc~grid_intersect->proc~in_passive_grid proc~get_nlaunch_pass_grid->interface~randind_cdf proc~get_nlaunch_pass_grid->proc~rng_init proc~h5ltread_dataset_int_scalar_f->h5ltread_dataset_int_f proc~store_fw_photons_at_chan->proc~spectrum proc~mc_fastion->interface~randu proc~mc_fastion->proc~get_fields proc~mc_fastion->interface~randind proc~mc_fastion->proc~get_distribution proc~store_npa->proc~xyz_to_uvw proc~store_npa->proc~get_fields proc~read_mc->proc~uvw_to_xyz proc~read_mc->h5ltread_dataset_int_f proc~read_mc->proc~h5ltread_dataset_int_scalar_f proc~read_mc->h5ltpath_valid_f proc~read_mc->proc~in_plasma proc~read_mc->h5ltread_dataset_double_f proc~in_grid in_grid proc~read_mc->proc~in_grid proc~circle_grid_intersect circle_grid_intersect proc~read_mc->proc~circle_grid_intersect proc~write_beam_grid->h5gclose_f proc~write_beam_grid->h5gcreate_f proc~write_beam_grid->proc~xyz_to_uvw proc~write_beam_grid->interface~h5ltmake_compressed_dataset_double_f proc~write_beam_grid->h5ltset_attribute_string_f proc~mc_halo->interface~randu proc~mc_halo->proc~get_plasma proc~mc_halo->interface~randn proc~in_plasma->proc~xyz_to_uvw proc~in_plasma->proc~cyl_to_uvw proc~in_plasma->interface~interpol_coeff proc~h5ltmake_compressed_dataset_int_f_2 h5ltmake_compressed_dataset_int_f_2 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_2 proc~h5ltmake_compressed_dataset_int_f_3 h5ltmake_compressed_dataset_int_f_3 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_3 proc~h5ltmake_compressed_dataset_int_f_1 h5ltmake_compressed_dataset_int_f_1 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_1 proc~h5ltmake_compressed_dataset_int_f_6 h5ltmake_compressed_dataset_int_f_6 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_6 proc~h5ltmake_compressed_dataset_int_f_7 h5ltmake_compressed_dataset_int_f_7 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_7 proc~h5ltmake_compressed_dataset_int_f_4 h5ltmake_compressed_dataset_int_f_4 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_4 proc~h5ltmake_compressed_dataset_int_f_5 h5ltmake_compressed_dataset_int_f_5 interface~h5ltmake_compressed_dataset_int_f->proc~h5ltmake_compressed_dataset_int_f_5 proc~eigen eigen proc~colrad->proc~eigen proc~get_rate_matrix get_rate_matrix proc~colrad->proc~get_rate_matrix proc~linsolve linsolve proc~colrad->proc~linsolve proc~get_ep_denf->proc~xyz_to_uvw interface~interpol interpol proc~get_ep_denf->interface~interpol proc~attenuate->proc~colrad proc~attenuate->proc~get_plasma proc~get_beam_cx_rate->proc~bt_cx_rates proc~get_beam_cx_rate->proc~get_plasma proc~get_beam_cx_rate->proc~bb_cx_rates proc~get_neutron_rate->interface~interpol_coeff proc~h5ltmake_compressed_dataset_double_f_7 h5ltmake_compressed_dataset_double_f_7 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_7 proc~h5ltmake_compressed_dataset_double_f_6 h5ltmake_compressed_dataset_double_f_6 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_6 proc~h5ltmake_compressed_dataset_double_f_5 h5ltmake_compressed_dataset_double_f_5 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_5 proc~h5ltmake_compressed_dataset_double_f_4 h5ltmake_compressed_dataset_double_f_4 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_4 proc~h5ltmake_compressed_dataset_double_f_3 h5ltmake_compressed_dataset_double_f_3 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_3 proc~h5ltmake_compressed_dataset_double_f_2 h5ltmake_compressed_dataset_double_f_2 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_2 proc~h5ltmake_compressed_dataset_double_f_1 h5ltmake_compressed_dataset_double_f_1 interface~h5ltmake_compressed_dataset_double_f->proc~h5ltmake_compressed_dataset_double_f_1 proc~get_fields->proc~uvw_to_xyz proc~get_fields->proc~xyz_to_uvw proc~get_fields->proc~in_plasma proc~calc_perp_vectors calc_perp_vectors proc~get_fields->proc~calc_perp_vectors proc~read_f->proc~h5ltread_dataset_int_scalar_f proc~read_f->h5ltpath_valid_f proc~approx_eq approx_eq proc~npa_gyro_range->proc~approx_eq proc~gyro_range gyro_range proc~npa_gyro_range->proc~gyro_range proc~mc_nbi->proc~grid_intersect proc~mc_nbi->proc~in_plasma proc~mc_nbi->interface~randu proc~mc_nbi->interface~randn proc~write_npa_weights->h5fclose_f proc~write_npa_weights->h5ltmake_dataset_int_f proc~write_npa_weights->h5close_f proc~write_npa_weights->proc~write_beam_grid proc~write_npa_weights->interface~h5ltmake_compressed_dataset_double_f proc~write_npa_weights->h5open_f proc~write_npa_weights->h5ltset_attribute_string_f proc~write_npa_weights->h5fcreate_f proc~get_plasma->proc~uvw_to_xyz proc~get_plasma->proc~xyz_to_uvw proc~get_plasma->proc~in_plasma proc~get_position get_position proc~get_plasma->proc~get_position proc~gyro_correction->proc~pitch_to_vec proc~gyro_correction->proc~gyro_step proc~gyro_correction->interface~randu proc~write_neutrons->h5fclose_f proc~write_neutrons->h5ltmake_dataset_int_f proc~write_neutrons->h5close_f proc~write_neutrons->interface~h5ltmake_compressed_dataset_double_f proc~write_neutrons->h5open_f proc~write_neutrons->h5ltset_attribute_string_f proc~write_neutrons->h5fcreate_f h5ltmake_dataset_double_f h5ltmake_dataset_double_f proc~write_neutrons->h5ltmake_dataset_double_f proc~line_basis->proc~tb_zyx proc~read_atomic_cross->proc~h5ltread_dataset_int_scalar_f proc~read_atomic_cross->h5ltpath_valid_f proc~read_atomic_cross->h5ltread_dataset_double_f proc~read_atomic_cross->proc~h5ltread_dataset_double_scalar_f proc~parallel_sum_d2 parallel_sum_d2 interface~parallel_sum->proc~parallel_sum_d2 proc~parallel_sum_d0 parallel_sum_d0 interface~parallel_sum->proc~parallel_sum_d0 proc~parallel_sum_d5 parallel_sum_d5 interface~parallel_sum->proc~parallel_sum_d5 proc~parallel_sum_d4 parallel_sum_d4 interface~parallel_sum->proc~parallel_sum_d4 proc~parallel_sum_d1 parallel_sum_d1 interface~parallel_sum->proc~parallel_sum_d1 proc~parallel_sum_i1 parallel_sum_i1 interface~parallel_sum->proc~parallel_sum_i1 proc~parallel_sum_i0 parallel_sum_i0 interface~parallel_sum->proc~parallel_sum_i0 proc~parallel_sum_i2 parallel_sum_i2 interface~parallel_sum->proc~parallel_sum_i2 proc~parallel_sum_d3 parallel_sum_d3 interface~parallel_sum->proc~parallel_sum_d3 proc~get_plasma_extrema get_plasma_extrema proc~make_passive_grid->proc~get_plasma_extrema proc~bb_cx_rates->interface~interpol_coeff proc~read_nuclear_rates->proc~h5ltread_dataset_int_scalar_f proc~read_nuclear_rates->h5ltpath_valid_f proc~read_nuclear_rates->h5ltread_dataset_double_f proc~read_nuclear_rates->proc~h5ltread_dataset_double_scalar_f mpi_allreduce mpi_allreduce proc~parallel_sum_d2->mpi_allreduce proc~parallel_sum_d0->mpi_allreduce proc~get_distribution->proc~xyz_to_uvw proc~get_distribution->interface~interpol proc~gyro_range->proc~line_plane_intersect proc~gyro_range->proc~in_boundary proc~gyro_surface_coordinates gyro_surface_coordinates proc~gyro_range->proc~gyro_surface_coordinates proc~in_gyro_surface in_gyro_surface proc~gyro_range->proc~in_gyro_surface proc~boundary_edge boundary_edge proc~gyro_range->proc~boundary_edge proc~line_gyro_surface_intersect line_gyro_surface_intersect proc~gyro_range->proc~line_gyro_surface_intersect proc~approx_ge approx_ge proc~in_grid->proc~approx_ge proc~approx_le approx_le proc~in_grid->proc~approx_le proc~circle_grid_intersect->proc~grid_intersect proc~circle_grid_intersect->proc~approx_eq proc~circle_grid_intersect->proc~in_grid proc~cyl_to_xyz cyl_to_xyz proc~get_position->proc~cyl_to_xyz proc~parallel_sum_d5->mpi_allreduce proc~parallel_sum_d4->mpi_allreduce proc~h5ltmake_compressed_dataset_double_f_7->h5ltmake_dataset_double_f h5sclose_f h5sclose_f proc~h5ltmake_compressed_dataset_double_f_7->h5sclose_f h5dclose_f h5dclose_f proc~h5ltmake_compressed_dataset_double_f_7->h5dclose_f h5pcreate_f h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_7->h5pcreate_f h5screate_simple_f h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_7->h5screate_simple_f h5pclose_f h5pclose_f proc~h5ltmake_compressed_dataset_double_f_7->h5pclose_f h5dcreate_f h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_7->h5dcreate_f h5dwrite_f h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_7->h5dwrite_f h5pset_deflate_f h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_7->h5pset_deflate_f h5pset_chunk_f h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_7->h5pset_chunk_f proc~chunk_size chunk_size proc~h5ltmake_compressed_dataset_double_f_7->proc~chunk_size h5pset_shuffle_f h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_7->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_6->h5ltmake_dataset_double_f proc~h5ltmake_compressed_dataset_double_f_6->h5sclose_f proc~h5ltmake_compressed_dataset_double_f_6->h5dclose_f proc~h5ltmake_compressed_dataset_double_f_6->h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_6->h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_6->h5pclose_f proc~h5ltmake_compressed_dataset_double_f_6->h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_6->h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_6->h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_6->h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_6->proc~chunk_size proc~h5ltmake_compressed_dataset_double_f_6->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_5->h5ltmake_dataset_double_f proc~h5ltmake_compressed_dataset_double_f_5->h5sclose_f proc~h5ltmake_compressed_dataset_double_f_5->h5dclose_f proc~h5ltmake_compressed_dataset_double_f_5->h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_5->h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_5->h5pclose_f proc~h5ltmake_compressed_dataset_double_f_5->h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_5->h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_5->h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_5->h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_5->proc~chunk_size proc~h5ltmake_compressed_dataset_double_f_5->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_4->h5ltmake_dataset_double_f proc~h5ltmake_compressed_dataset_double_f_4->h5sclose_f proc~h5ltmake_compressed_dataset_double_f_4->h5dclose_f proc~h5ltmake_compressed_dataset_double_f_4->h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_4->h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_4->h5pclose_f proc~h5ltmake_compressed_dataset_double_f_4->h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_4->h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_4->h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_4->h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_4->proc~chunk_size proc~h5ltmake_compressed_dataset_double_f_4->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_3->h5ltmake_dataset_double_f proc~h5ltmake_compressed_dataset_double_f_3->h5sclose_f proc~h5ltmake_compressed_dataset_double_f_3->h5dclose_f proc~h5ltmake_compressed_dataset_double_f_3->h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_3->h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_3->h5pclose_f proc~h5ltmake_compressed_dataset_double_f_3->h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_3->h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_3->h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_3->h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_3->proc~chunk_size proc~h5ltmake_compressed_dataset_double_f_3->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_2->h5ltmake_dataset_double_f proc~h5ltmake_compressed_dataset_double_f_2->h5sclose_f proc~h5ltmake_compressed_dataset_double_f_2->h5dclose_f proc~h5ltmake_compressed_dataset_double_f_2->h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_2->h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_2->h5pclose_f proc~h5ltmake_compressed_dataset_double_f_2->h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_2->h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_2->h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_2->h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_2->proc~chunk_size proc~h5ltmake_compressed_dataset_double_f_2->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_double_f_1->h5ltmake_dataset_double_f proc~h5ltmake_compressed_dataset_double_f_1->h5sclose_f proc~h5ltmake_compressed_dataset_double_f_1->h5dclose_f proc~h5ltmake_compressed_dataset_double_f_1->h5pcreate_f proc~h5ltmake_compressed_dataset_double_f_1->h5screate_simple_f proc~h5ltmake_compressed_dataset_double_f_1->h5pclose_f proc~h5ltmake_compressed_dataset_double_f_1->h5dcreate_f proc~h5ltmake_compressed_dataset_double_f_1->h5dwrite_f proc~h5ltmake_compressed_dataset_double_f_1->h5pset_deflate_f proc~h5ltmake_compressed_dataset_double_f_1->h5pset_chunk_f proc~h5ltmake_compressed_dataset_double_f_1->proc~chunk_size proc~h5ltmake_compressed_dataset_double_f_1->h5pset_shuffle_f proc~parallel_sum_d1->mpi_allreduce proc~h5ltmake_compressed_dataset_int_f_2->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_2->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_2->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_2->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_2->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_2->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_2->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_2->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_2->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_2->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_2->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_2->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_int_f_3->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_3->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_3->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_3->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_3->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_3->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_3->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_3->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_3->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_3->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_3->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_3->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_int_f_1->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_1->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_1->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_1->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_1->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_1->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_1->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_1->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_1->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_1->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_1->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_1->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_int_f_6->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_6->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_6->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_6->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_6->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_6->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_6->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_6->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_6->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_6->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_6->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_6->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_int_f_7->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_7->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_7->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_7->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_7->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_7->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_7->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_7->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_7->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_7->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_7->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_7->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_int_f_4->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_4->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_4->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_4->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_4->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_4->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_4->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_4->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_4->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_4->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_4->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_4->h5pset_shuffle_f proc~h5ltmake_compressed_dataset_int_f_5->h5ltmake_dataset_int_f proc~h5ltmake_compressed_dataset_int_f_5->h5sclose_f proc~h5ltmake_compressed_dataset_int_f_5->h5dclose_f proc~h5ltmake_compressed_dataset_int_f_5->h5pcreate_f proc~h5ltmake_compressed_dataset_int_f_5->h5screate_simple_f proc~h5ltmake_compressed_dataset_int_f_5->h5pclose_f proc~h5ltmake_compressed_dataset_int_f_5->h5dcreate_f proc~h5ltmake_compressed_dataset_int_f_5->h5dwrite_f proc~h5ltmake_compressed_dataset_int_f_5->h5pset_deflate_f proc~h5ltmake_compressed_dataset_int_f_5->h5pset_chunk_f proc~h5ltmake_compressed_dataset_int_f_5->proc~chunk_size proc~h5ltmake_compressed_dataset_int_f_5->h5pset_shuffle_f proc~parallel_sum_i1->mpi_allreduce proc~parallel_sum_i0->mpi_allreduce proc~parallel_sum_i2->mpi_allreduce proc~elmtrans elmtrans proc~eigen->proc~elmtrans proc~balback balback proc~eigen->proc~balback proc~hqr2 hqr2 proc~eigen->proc~hqr2 proc~elmhes elmhes proc~eigen->proc~elmhes proc~balance balance proc~eigen->proc~balance proc~interpol3d_2d_arr interpol3D_2D_arr interface~interpol->proc~interpol3d_2d_arr proc~interpol2d_arr interpol2D_arr interface~interpol->proc~interpol2d_arr proc~interpol3d_arr interpol3D_arr interface~interpol->proc~interpol3d_arr proc~interpol2d_2d_arr interpol2D_2D_arr interface~interpol->proc~interpol2d_2d_arr proc~interpol1d_arr interpol1D_arr interface~interpol->proc~interpol1d_arr proc~get_rate_matrix->interface~interpol_coeff proc~rng_init->proc~my_rank proc~rng_init->proc~rng_seed proc~cyl_interpol3d_coeff cyl_interpol3D_coeff interface~interpol_coeff->proc~cyl_interpol3d_coeff proc~interpol1d_coeff_arr interpol1D_coeff_arr interface~interpol_coeff->proc~interpol1d_coeff_arr proc~cyl_interpol3d_coeff_arr cyl_interpol3D_coeff_arr interface~interpol_coeff->proc~cyl_interpol3d_coeff_arr proc~interpol1d_coeff interpol1D_coeff interface~interpol_coeff->proc~interpol1d_coeff proc~interpol2d_coeff interpol2D_coeff interface~interpol_coeff->proc~interpol2d_coeff proc~interpol2d_coeff_arr interpol2D_coeff_arr interface~interpol_coeff->proc~interpol2d_coeff_arr proc~parallel_sum_d3->mpi_allreduce proc~h5ltread_dataset_double_scalar_f->h5ltread_dataset_double_f proc~matinv matinv proc~linsolve->proc~matinv dgetrf dgetrf proc~linsolve->dgetrf dgetrs dgetrs proc~linsolve->dgetrs proc~get_plasma_extrema->proc~in_plasma proc~in_passive_grid->proc~approx_ge proc~in_passive_grid->proc~approx_le proc~uvw_to_cyl uvw_to_cyl proc~in_passive_grid->proc~uvw_to_cyl proc~cyl_to_xyz->proc~uvw_to_xyz proc~cyl_to_xyz->proc~cyl_to_uvw proc~approx_ge->proc~approx_eq proc~cyl_interpol3d_coeff->proc~interpol2d_coeff proc~interpol1d_coeff_arr->proc~interpol1d_coeff proc~cyl_interpol3d_coeff_arr->proc~cyl_interpol3d_coeff proc~cyl_interpol3d_coeff_arr->proc~interpol2d_coeff proc~approx_le->proc~approx_eq proc~ludcmp ludcmp proc~matinv->proc~ludcmp proc~interpol3d_2d_arr->interface~interpol_coeff proc~interpol2d_arr->interface~interpol_coeff proc~interpol3d_arr->interface~interpol_coeff proc~interpol2d_2d_arr->interface~interpol_coeff proc~hqrvec hqrvec proc~hqr2->proc~hqrvec proc~interpol2d_coeff_arr->proc~interpol2d_coeff proc~interpol1d_arr->interface~interpol_coeff proc~outerprod outerprod proc~ludcmp->proc~outerprod

Contents

Source Code


Variables

Type AttributesNameInitial
character(len=3) :: arg =''
integer :: i
integer :: narg
integer :: nthreads
integer :: max_threads
integer :: seed

Source Code

program fidasim
    !+ FIDASIM {!../VERSION!}
    use libfida
    use hdf5_utils
#ifdef _OMP
    use omp_lib
#endif
#ifdef _MPI
    use mpi_utils
#endif
    implicit none
    character(3)          :: arg = ''
    integer               :: i,narg,nthreads,max_threads,seed

#ifdef _VERSION
    version = _VERSION
#endif

#ifdef _MPI
    call init_mpi()
    if(my_rank().eq.0) call print_banner()
#else
    call print_banner()
#endif

    narg = command_argument_count()
    if(narg.eq.0) then
#ifdef _MPI
        if(my_rank().eq.0) write(*,'(a)') "usage: mpirun -np [num_processes] ./fidasim namelist_file"
        call cleanup_mpi()
#else
        write(*,'(a)') "usage: ./fidasim namelist_file [num_threads]"
#endif
        stop
    else
        call get_command_argument(1,namelist_file)
    endif

    !! Check if compression is possible
    call check_compression_availability()

    !! measure time
    call date_and_time (values=time_start)

    call read_inputs()

#ifdef _OMP
    max_threads = OMP_get_num_procs()
    if(narg.ge.2) then
        call get_command_argument(2,arg)
        read(arg,'(i3)') nthreads
    else
        nthreads = max_threads
    endif
    max_threads = min(nthreads,max_threads)
    if(inputs%verbose.ge.1) then
        write(*,'(a)') "---- OpenMP settings ----"
        write(*,'(T2,"Number of threads: ",i2)') max_threads
        write(*,*) ''
    endif
    call OMP_set_num_threads(max_threads)
#else
    max_threads = 1
#endif

#ifdef _MPI
    istart = my_rank()+1
    istep = num_ranks()
    if(inputs%verbose.ge.1) then
        write(*,'(a)') "---- MPI settings ----"
        write(*,'(T2,"Number of processes: ",i3)') istep
        write(*,*) ''
    endif
#endif

    !! ----------------------------------------------------------
    !! ------ INITIALIZE THE RANDOM NUMBER GENERATOR  -----------
    !! ----------------------------------------------------------
    allocate(rng(max_threads))
#ifdef _OMP
    do i=1,max_threads
        if(inputs%seed.lt.0) then
            call rng_init(rng(i), inputs%seed)
        else
            call rng_init(rng(i), inputs%seed + i)
        endif
    enddo
#else
    call rng_init(rng(1), inputs%seed)
#endif
    if(inputs%verbose.ge.1) then
        write(*,'(a)') "---- Random Number Generator settings ----"
        write(*,'(T2,"RNG Seed: ",i10)') inputs%seed
        write(*,*) ''
    endif

    !! ----------------------------------------------------------
    !! ------- READ GRIDS, PROFILES, LOS, TABLES, & FBM --------
    !! ----------------------------------------------------------
    call read_tables()
    call read_equilibrium()
    call make_beam_grid()
    if(inputs%calc_beam.ge.1) call read_beam()
    call read_distribution()

    allocate(spec_chords%inter(beam_grid%nx,beam_grid%ny,beam_grid%nz))
    if((inputs%calc_spec.ge.1).or.(inputs%calc_fida_wght.ge.1)) then
        call read_chords()
    endif

    if((inputs%calc_npa.ge.1).or.(inputs%calc_npa_wght.ge.1).or.(inputs%calc_pnpa.ge.1)) then
        call read_npa()
    endif

    call make_diagnostic_grids()

    !! ----------------------------------------------------------
    !! --------------- ALLOCATE THE RESULT ARRAYS ---------------
    !! ----------------------------------------------------------
    !! neutral density array!
    allocate(neut%full(nlevs,beam_grid%nx,beam_grid%ny,beam_grid%nz))
    allocate(neut%half(nlevs,beam_grid%nx,beam_grid%ny,beam_grid%nz))
    allocate(neut%third(nlevs,beam_grid%nx,beam_grid%ny,beam_grid%nz))
    allocate(neut%dcx(nlevs,beam_grid%nx,beam_grid%ny,beam_grid%nz))
    allocate(neut%halo(nlevs,beam_grid%nx,beam_grid%ny,beam_grid%nz))
    neut%full = 0.d0
    neut%half = 0.d0
    neut%third = 0.d0
    neut%dcx = 0.d0
    neut%halo = 0.d0

    !! birth profile
    if(inputs%calc_birth.ge.1) then
        allocate(birth%dens(3, &
                            beam_grid%nx, &
                            beam_grid%ny, &
                            beam_grid%nz))
        allocate(birth%part(int(3*inputs%n_birth*inputs%n_nbi)))
    endif

    if(inputs%calc_spec.ge.1) then
        if(inputs%calc_brems.ge.1) then
            allocate(spec%brems(inputs%nlambda,spec_chords%nchan))
            spec%brems = 0.d0
        endif
        if(inputs%calc_bes.ge.1) then
            allocate(spec%full(inputs%nlambda,spec_chords%nchan))
            allocate(spec%half(inputs%nlambda,spec_chords%nchan))
            allocate(spec%third(inputs%nlambda,spec_chords%nchan))
            spec%full = 0.d0
            spec%half = 0.d0
            spec%third = 0.d0
        endif
        if(inputs%calc_dcx.ge.1) then
            allocate(spec%dcx(inputs%nlambda,spec_chords%nchan))
            spec%dcx = 0.d0
        endif
        if(inputs%calc_halo.ge.1) then
            allocate(spec%halo(inputs%nlambda,spec_chords%nchan))
            spec%halo = 0.d0
        endif
        if(inputs%calc_cold.ge.1) then
            allocate(spec%cold(inputs%nlambda,spec_chords%nchan))
            spec%cold = 0.d0
        endif
        if(inputs%calc_fida.ge.1) then
            allocate(spec%fida(inputs%nlambda,spec_chords%nchan,particles%nclass))
            spec%fida = 0.d0
        endif
        if(inputs%calc_pfida.ge.1) then
            allocate(spec%pfida(inputs%nlambda,spec_chords%nchan,particles%nclass))
            spec%pfida = 0.d0
        endif
    endif

    if(inputs%calc_npa.ge.1)then
        npa%nchan = npa_chords%nchan
        allocate(npa%part(npa%nmax))
        if(inputs%dist_type.eq.1) then
            npa%nenergy = fbm%nenergy
            allocate(npa%energy(npa%nenergy))
            npa%energy = fbm%energy
        else
            allocate(npa%energy(npa%nenergy))
            do i=1,npa%nenergy
                npa%energy(i)=real(i-0.5)
            enddo
        endif
        allocate(npa%flux(npa%nenergy,npa%nchan,particles%nclass))
        npa%flux = 0.0
    endif

    if(inputs%calc_pnpa.ge.1)then
        pnpa%nchan = npa_chords%nchan
        allocate(pnpa%part(pnpa%nmax))
        if(inputs%dist_type.eq.1) then
            pnpa%nenergy = fbm%nenergy
            allocate(pnpa%energy(pnpa%nenergy))
            pnpa%energy = fbm%energy
        else
            allocate(pnpa%energy(pnpa%nenergy))
            do i=1,pnpa%nenergy
                pnpa%energy(i)=real(i-0.5)
            enddo
        endif
        allocate(pnpa%flux(pnpa%nenergy,pnpa%nchan,particles%nclass))
        pnpa%flux = 0.0
    endif

    if(inputs%calc_neutron.ge.1)then
        allocate(neutron%rate(particles%nclass))
        neutron%rate = 0.d0
    endif

    !! -----------------------------------------------------------------------
    !! --------------- CALCULATE/LOAD the BEAM and HALO DENSITY---------------
    !! -----------------------------------------------------------------------
    if(inputs%load_neutrals.eq.1) then
        call read_neutrals()

        if(inputs%calc_bes.ge.1) then
            if(inputs%verbose.ge.1) then
                write(*,*) 'nbi:     ' , time(time_start)
            endif
            call nbi_spec()
            if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
        endif

        if(inputs%calc_dcx.ge.1) then
            if(inputs%verbose.ge.1) then
                write(*,*) 'dcx:     ' , time(time_start)
            endif
            call dcx_spec()
            if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
        endif

        if(inputs%calc_halo.ge.1) then
            if(inputs%verbose.ge.1) then
                write(*,*) 'halo:    ' , time(time_start)
            endif
            call halo_spec()
            if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
        endif
    else
        if(inputs%calc_beam.ge.1) then
            !! ----------- BEAM NEUTRALS ---------- !!
            if(inputs%calc_nbi_dens.ge.1) then
                if(inputs%verbose.ge.1) then
                    write(*,*) 'nbi:     ' , time(time_start)
                endif
                call ndmc
                if(inputs%verbose.ge.1) write(*,'(30X,a)') ''

                if(inputs%calc_birth.eq.1)then
                    if(inputs%verbose.ge.1) then
                        write(*,*) 'write birth:    ' , time(time_start)
                    endif
                    call write_birth_profile()
                    if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
                endif
            endif

            !! ---------- DCX (Direct charge exchange) ---------- !!
            if(inputs%calc_dcx_dens.ge.1) then
                if(inputs%verbose.ge.1) then
                    write(*,*) 'dcx:     ' , time(time_start)
                endif
                call dcx()
                if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
            endif

            !! ---------- HALO ---------- !!
            if(inputs%calc_halo_dens.ge.1) then
                if(inputs%verbose.ge.1) then
                    write(*,*) 'halo:    ' , time(time_start)
                endif
                call halo()
                if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
            endif

            !! ---------- WRITE NEUTRALS ---------- !!
            if(inputs%verbose.ge.1) then
                write(*,*) 'write neutrals:    ' , time(time_start)
            endif
#ifdef _MPI
            if(my_rank().eq.0) call write_neutrals()
#else
            call write_neutrals()
#endif
            if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
        endif
    endif

    !! -----------------------------------------------------------------------
    !!------------------------------ COLD D-ALPHA ----------------------------
    !! -----------------------------------------------------------------------
    if(inputs%calc_cold.ge.1) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'cold:    ' ,time(time_start)
        endif
        call cold_spec()
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    !! -----------------------------------------------------------------------
    !!----------------------------- BREMSSTRAHLUNG ---------------------------
    !! -----------------------------------------------------------------------
    if(inputs%calc_brems.ge.1) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'bremsstrahlung:    ' ,time(time_start)
        endif
        call bremsstrahlung()
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    !! -----------------------------------------------------------------------
    !! --------------------- CALCULATE the FIDA RADIATION --------------------
    !! -----------------------------------------------------------------------
    if(inputs%calc_fida.ge.1)then
        if(inputs%verbose.ge.1) then
            write(*,*) 'fida:    ' ,time(time_start)
        endif
        if(inputs%dist_type.eq.1) then
            call fida_f()
        else
            call fida_mc()
        endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    if(inputs%calc_pfida.ge.1)then
        if(inputs%verbose.ge.1) then
            write(*,*) 'pfida:   ' ,time(time_start)
        endif
        if(inputs%dist_type.eq.1) then
            call pfida_f()
        else
            call pfida_mc()
        endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    if(inputs%calc_spec.ge.1) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'write spectra:    ' , time(time_start)
        endif
#ifdef _MPI
        if(my_rank().eq.0) call write_spectra()
#else
        call write_spectra()
#endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    !! -----------------------------------------------------------------------
    !! ----------------------- CALCULATE the NPA FLUX ------------------------
    !! -----------------------------------------------------------------------
    if(inputs%calc_npa.ge.1)then
        if(inputs%verbose.ge.1) then
            write(*,*) 'npa:     ' ,time(time_start)
        endif
        if(inputs%dist_type.eq.1) then
            call npa_f()
        else
            call npa_mc()
        endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    if(inputs%calc_pnpa.ge.1)then
        if(inputs%verbose.ge.1) then
            write(*,*) 'pnpa:     ' ,time(time_start)
        endif
        if(inputs%dist_type.eq.1) then
            call pnpa_f()
        else
            call pnpa_mc()
        endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    if((inputs%calc_npa.ge.1).or.(inputs%calc_pnpa.ge.1)) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'write npa:    ' , time(time_start)
        endif
        call write_npa()
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    !! -------------------------------------------------------------------
    !! ------------------- Calculation of neutron flux -------------------
    !! -------------------------------------------------------------------
    if(inputs%calc_neutron.ge.1) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'neutron rate:    ', time(time_start)
        endif
        if(inputs%dist_type.eq.1) then
            call neutron_f()
        else
            call neutron_mc()
        endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    !! -------------------------------------------------------------------
    !! ----------- Calculation of weight functions -----------------------
    !! -------------------------------------------------------------------
    if(inputs%calc_fida_wght.ge.1) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'fida weight function:    ', time(time_start)
        endif
        if(inputs%calc_fida_wght.eq.1) then
            call fida_weights_los()
        else
            call fida_weights_mc()
        endif
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

    if(inputs%calc_npa_wght.ge.1) then
        if(inputs%verbose.ge.1) then
            write(*,*) 'npa weight function:    ', time(time_start)
        endif
        call npa_weights()
        if(inputs%verbose.ge.1) write(*,'(30X,a)') ''
    endif

#ifdef _MPI
    call cleanup_mpi()
#endif

    if(inputs%verbose.ge.1) then
        write(*,*) 'END: hour:minute:second ', time(time_start)
    endif

end program fidasim