Gemini3D Program

Uses

  • program~~gemini3d~~UsesGraph program~gemini3d Gemini3D module~potentialbcs_mumps potentialBCs_mumps program~gemini3d->module~potentialbcs_mumps module~potential_comm potential_comm program~gemini3d->module~potential_comm iso_fortran_env iso_fortran_env program~gemini3d->iso_fortran_env module~phys_consts phys_consts program~gemini3d->module~phys_consts module~io io program~gemini3d->module~io module~mesh mesh program~gemini3d->module~mesh module~mpimod mpimod program~gemini3d->module~mpimod module~grid grid program~gemini3d->module~grid module~multifluid multifluid program~gemini3d->module~multifluid module~temporal temporal program~gemini3d->module~temporal module~timeutils timeutils program~gemini3d->module~timeutils module~precipbcs_mod precipBCs_mod program~gemini3d->module~precipbcs_mod module~neutral neutral program~gemini3d->module~neutral module~potentialbcs_mumps->iso_fortran_env module~potentialbcs_mumps->module~phys_consts module~potentialbcs_mumps->module~mesh module~potentialbcs_mumps->module~mpimod module~potentialbcs_mumps->module~grid module~potentialbcs_mumps->module~timeutils ieee_arithmetic ieee_arithmetic module~potentialbcs_mumps->ieee_arithmetic module~reader reader module~potentialbcs_mumps->module~reader module~interpolation interpolation module~potentialbcs_mumps->module~interpolation module~potential_comm->module~potentialbcs_mumps module~potential_comm->module~phys_consts module~potential_comm->module~mesh module~potential_comm->module~mpimod module~potential_comm->module~grid module~pdeelliptic PDEelliptic module~potential_comm->module~pdeelliptic module~calculus calculus module~potential_comm->module~calculus module~potential_mumps potential_mumps module~potential_comm->module~potential_mumps module~collisions collisions module~potential_comm->module~collisions module~phys_consts->iso_fortran_env module~io->iso_fortran_env module~io->module~phys_consts module~io->module~mpimod module~io->module~grid module~pathlib pathlib module~io->module~pathlib module~io->ieee_arithmetic iso_c_binding iso_c_binding module~io->iso_c_binding module~mesh->module~phys_consts module~mpimod->iso_fortran_env module~mpimod->module~phys_consts mpi mpi module~mpimod->mpi module~grid->iso_fortran_env module~grid->module~phys_consts module~grid->module~mesh module~grid->module~mpimod module~grid->module~reader module~multifluid->module~phys_consts module~multifluid->module~mesh module~multifluid->module~mpimod module~multifluid->module~grid module~multifluid->module~timeutils module~multifluid->module~precipbcs_mod module~sources sources module~multifluid->module~sources module~multifluid->module~calculus module~diffusion diffusion module~multifluid->module~diffusion module~ionization ionization module~multifluid->module~ionization module~multifluid->module~collisions module~advec_mpi advec_mpi module~multifluid->module~advec_mpi module~temporal->module~phys_consts module~temporal->module~mesh module~temporal->module~mpimod module~timeutils->iso_fortran_env module~timeutils->module~phys_consts module~precipbcs_mod->iso_fortran_env module~precipbcs_mod->module~phys_consts module~precipbcs_mod->module~mesh module~precipbcs_mod->module~mpimod module~precipbcs_mod->module~grid module~precipbcs_mod->module~timeutils module~precipbcs_mod->ieee_arithmetic module~precipbcs_mod->module~reader module~precipbcs_mod->module~interpolation module~neutral->iso_fortran_env module~neutral->module~phys_consts module~neutral->module~mesh module~neutral->module~mpimod module~neutral->module~grid module~neutral->module~timeutils module~neutral->ieee_arithmetic module~neutral->module~reader module~neutral->module~interpolation module~pathlib->iso_fortran_env module~sources->module~phys_consts module~sources->module~mesh module~sources->module~grid module~sources->module~calculus module~sources->module~collisions module~reader->iso_fortran_env module~reader->module~phys_consts module~interpolation->module~phys_consts module~pdeelliptic->iso_fortran_env module~pdeelliptic->module~phys_consts module~pdeelliptic->module~mpimod module~mumps_interface~2 mumps_interface module~pdeelliptic->module~mumps_interface~2 module~calculus->module~phys_consts module~calculus->module~mesh module~potential_mumps->iso_fortran_env module~potential_mumps->module~phys_consts module~potential_mumps->module~mesh module~potential_mumps->module~mpimod module~potential_mumps->module~interpolation module~potential_mumps->module~pdeelliptic module~potential_mumps->module~calculus module~diffusion->module~phys_consts module~diffusion->module~mesh module~diffusion->module~grid module~pdeparabolic PDEparabolic module~diffusion->module~pdeparabolic module~ionization->module~phys_consts module~ionization->module~mesh module~ionization->module~mpimod module~ionization->module~grid module~ionization->module~timeutils module~ionization->module~neutral module~ionize_fang ionize_fang module~ionization->module~ionize_fang module~collisions->iso_fortran_env module~collisions->module~phys_consts module~advec_mpi->module~phys_consts module~advec_mpi->module~mesh module~advec_mpi->module~mpimod module~advec_mpi->module~grid module~pdeparabolic->module~phys_consts module~vendor_lapack95 vendor_lapack95 module~pdeparabolic->module~vendor_lapack95 module~ionize_fang->iso_fortran_env module~ionize_fang->module~phys_consts module~mumps_rl mumps_rl module~mumps_interface~2->module~mumps_rl module~vendor_lapack95->iso_fortran_env

MAIN PROGRAM FOR GEMINI3D Need program statement for FORD stops with de facto "skip test" return code INITIALIZE MESSING PASSING VARIABLES, IDS ETC. READ FILE INPUT CHECK THE GRID SIZE AND ESTABLISH A PROCESS GRID

following grid_size these are in scope LOAD UP THE GRID STRUCTURE/MODULE VARS. FOR THIS SIMULATION read in a previously generated grid from filenames listed in input file

CREATE/PREP OUTPUT DIRECTORY AND OUTPUT SIMULATION SIZE AND GRID DATA ONLY THE ROOT PROCESS WRITES OUTPUT DATA ALLOCATE ARRAYS (AT THIS POINT ALL SIZES ARE SET FOR EACH PROCESS SUBGRID) allocate space for neutral perturbations in case they are used with this run ALLOCATE MEMORY FOR ROOT TO STORE CERTAIN VARS. OVER ENTIRE GRID ALLOCATE MEMORY FOR AURORAL EMISSIONS, IF CALCULATED LOAD ICS AND DISTRIBUTE TO WORKERS (REQUIRES GRAVITY FOR INITIAL GUESSING)

this assumes that the grid is defined s.t. the x1 direction corresponds to the magnetic field direction (hence zero B2 and B3).

INITIALIZE ELECTRODYNAMIC QUANTITIES FOR POLARIZATION CURRENT only root stores entire potential array INITIALIZE AURORAL EMISSION MAP

MAIN LOOP TIME STEP CALCULATION throttle how quickly we allow dt to increase hard-code these to zero for the first time step GET NEUTRAL PERTURBATIONS FROM ANOTHER MODEL this triggers the code to load the neutral frame correspdonding ot the beginning time of the simulation POTENTIAL SOLUTION UPDATE THE FLUID VARIABLES NOW OUR SOLUTION IS FULLY UPDATED SO UPDATE TIME VARIABLES TO MATCH... print every 10th time step to avoid extreme amounts of console printing OUTPUT close enough to warrant an output now... GLOW OUTPUT DEALLOCATE MAIN PROGRAM DATA DEALLOCATE MODULE VARIABLES (MAY HAPPEN AUTOMATICALLY IN F2003???) SHUT DOWN MPI


Calls

program~~gemini3d~~CallsGraph program~gemini3d Gemini3D interface~input_plasma input_plasma program~gemini3d->interface~input_plasma proc~make_precip_fileinput make_precip_fileinput program~gemini3d->proc~make_precip_fileinput proc~mpibreakdown mpibreakdown program~gemini3d->proc~mpibreakdown proc~make_dneu make_dneu program~gemini3d->proc~make_dneu proc~clear_grid clear_grid program~gemini3d->proc~clear_grid interface~neutral_atmos neutral_atmos program~gemini3d->interface~neutral_atmos proc~clear_potential_fileinput clear_potential_fileinput program~gemini3d->proc~clear_potential_fileinput interface~read_configfile read_configfile program~gemini3d->interface~read_configfile proc~mpi_manualgrid mpi_manualgrid program~gemini3d->proc~mpi_manualgrid proc~dt_comm dt_comm program~gemini3d->proc~dt_comm interface~create_outdir create_outdir program~gemini3d->interface~create_outdir proc~mpisetup mpisetup program~gemini3d->proc~mpisetup proc~clear_precip_fileinput clear_precip_fileinput program~gemini3d->proc~clear_precip_fileinput interface~output_plasma output_plasma program~gemini3d->interface~output_plasma interface~electrodynamics electrodynamics program~gemini3d->interface~electrodynamics interface~output_aur output_aur program~gemini3d->interface~output_aur interface~read_grid read_grid program~gemini3d->interface~read_grid proc~grid_size grid_size program~gemini3d->proc~grid_size proc~clear_dneu clear_dneu program~gemini3d->proc~clear_dneu proc~neutral_perturb neutral_perturb program~gemini3d->proc~neutral_perturb proc~dateinc dateinc program~gemini3d->proc~dateinc proc~mpigrid mpigrid program~gemini3d->proc~mpigrid proc~input_plasma input_plasma interface~input_plasma->proc~input_plasma mpi_finalize mpi_finalize proc~mpibreakdown->mpi_finalize proc~clear_grav clear_grav proc~clear_grid->proc~clear_grav proc~neutral_atmos neutral_atmos interface~neutral_atmos->proc~neutral_atmos proc~read_configfile read_configfile interface~read_configfile->proc~read_configfile proc~id2grid ID2grid proc~mpi_manualgrid->proc~id2grid mpi_recv mpi_recv proc~dt_comm->mpi_recv proc~dt_calc dt_calc proc~dt_comm->proc~dt_calc mpi_send mpi_send proc~dt_comm->mpi_send proc~create_outdir create_outdir interface~create_outdir->proc~create_outdir mpi_init mpi_init proc~mpisetup->mpi_init mpi_comm_size mpi_comm_size proc~mpisetup->mpi_comm_size mpi_comm_rank mpi_comm_rank proc~mpisetup->mpi_comm_rank proc~output_plasma output_plasma interface~output_plasma->proc~output_plasma proc~electrodynamics_curv electrodynamics_curv interface~electrodynamics->proc~electrodynamics_curv proc~output_aur output_aur interface~output_aur->proc~output_aur proc~read_grid read_grid interface~read_grid->proc~read_grid proc~grid_size->mpi_recv interface~get_simsize3 get_simsize3 proc~grid_size->interface~get_simsize3 proc~grid_size->mpi_send proc~neutral_perturb_axisymm neutral_perturb_axisymm proc~neutral_perturb->proc~neutral_perturb_axisymm proc~neutral_perturb_3d neutral_perturb_3D proc~neutral_perturb->proc~neutral_perturb_3d proc~neutral_perturb_cart neutral_perturb_cart proc~neutral_perturb->proc~neutral_perturb_cart proc~day_wrap day_wrap proc~dateinc->proc~day_wrap proc~mpigrid->proc~id2grid proc~gridproj_dneu2d gridproj_dneu2D proc~neutral_perturb_axisymm->proc~gridproj_dneu2d proc~timeinterp_dneu timeinterp_dneu proc~neutral_perturb_axisymm->proc~timeinterp_dneu proc~spaceinterp_dneu2d spaceinterp_dneu2D proc~neutral_perturb_axisymm->proc~spaceinterp_dneu2d proc~read_dneu2d read_dneu2D proc~neutral_perturb_axisymm->proc~read_dneu2d proc~gridproj_dneu3d gridproj_dneu3D proc~neutral_perturb_3d->proc~gridproj_dneu3d proc~spaceinterp_dneu3d spaceinterp_dneu3D proc~neutral_perturb_3d->proc~spaceinterp_dneu3d proc~read_dneu3d read_dneu3D proc~neutral_perturb_3d->proc~read_dneu3d proc~neutral_perturb_3d->proc~timeinterp_dneu proc~read_grid_root read_grid_root proc~read_grid->proc~read_grid_root proc~read_grid_workers read_grid_workers proc~read_grid->proc~read_grid_workers proc~meters METERS proc~neutral_atmos->proc~meters proc~doy_calc doy_calc proc~neutral_atmos->proc~doy_calc proc~gtd7 GTD7 proc~neutral_atmos->proc~gtd7 proc~get_simsize3 get_simsize3 interface~get_simsize3->proc~get_simsize3 proc~day_wrap->proc~day_wrap proc~daysmonth daysmonth proc~day_wrap->proc~daysmonth interface~mkdir mkdir proc~create_outdir->interface~mkdir proc~realbits_log realbits_log proc~create_outdir->proc~realbits_log proc~gitlog gitlog proc~create_outdir->proc~gitlog proc~compiler_log compiler_log proc~create_outdir->proc~compiler_log interface~copyfile copyfile proc~create_outdir->interface~copyfile interface~output_root_stream_mpi output_root_stream_mpi proc~output_plasma->interface~output_root_stream_mpi proc~output_workers_mpi output_workers_mpi proc~output_plasma->proc~output_workers_mpi interface~input_root_mpi input_root_mpi proc~input_plasma->interface~input_root_mpi proc~input_workers_mpi input_workers_mpi proc~input_plasma->proc~input_workers_mpi interface~output_aur_workers output_aur_workers proc~output_aur->interface~output_aur_workers interface~output_aur_root output_aur_root proc~output_aur->interface~output_aur_root interface~potential_workers_mpi potential_workers_mpi proc~electrodynamics_curv->interface~potential_workers_mpi interface~potential_root_mpi potential_root_mpi proc~electrodynamics_curv->interface~potential_root_mpi proc~capacitance capacitance proc~electrodynamics_curv->proc~capacitance proc~conductivities conductivities proc~electrodynamics_curv->proc~conductivities proc~assert_file_exists assert_file_exists proc~read_configfile->proc~assert_file_exists proc~check_ini_io check_ini_io proc~read_configfile->proc~check_ini_io proc~expanduser expanduser proc~read_configfile->proc~expanduser proc~check_nml_io check_nml_io proc~read_configfile->proc~check_nml_io interface~assert_directory_exists assert_directory_exists proc~read_configfile->interface~assert_directory_exists proc~neutral_perturb_cart->proc~gridproj_dneu2d proc~neutral_perturb_cart->proc~timeinterp_dneu proc~neutral_perturb_cart->proc~spaceinterp_dneu2d proc~neutral_perturb_cart->proc~read_dneu2d proc~output_aur_workers output_aur_workers interface~output_aur_workers->proc~output_aur_workers proc~mkdir mkdir interface~mkdir->proc~mkdir proc~output_root_stream_mpi~2 output_root_stream_mpi interface~output_root_stream_mpi->proc~output_root_stream_mpi~2 proc~gridproj_dneu2d->mpi_recv proc~gridproj_dneu2d->interface~get_simsize3 proc~gridproj_dneu2d->mpi_send proc~clear_unitvecs clear_unitvecs proc~gridproj_dneu2d->proc~clear_unitvecs proc~home home proc~expanduser->proc~home proc~input_root_mpi input_root_mpi interface~input_root_mpi->proc~input_root_mpi proc~output_aur_root output_aur_root interface~output_aur_root->proc~output_aur_root proc~potential_workers_mpi potential_workers_mpi interface~potential_workers_mpi->proc~potential_workers_mpi lx lx proc~get_simsize3->lx proc~read_grid_root->mpi_send g2 g2 proc~read_grid_root->g2 interface~bcast_send3d_x2i bcast_send3D_x2i proc~read_grid_root->interface~bcast_send3d_x2i interface~bcast_send1d_2 bcast_send1D_2 proc~read_grid_root->interface~bcast_send1d_2 interface~get_grid3 get_grid3 proc~read_grid_root->interface~get_grid3 g1 g1 proc~read_grid_root->g1 interface~bcast_send bcast_send proc~read_grid_root->interface~bcast_send interface~bcast_send3d_x3i bcast_send3D_x3i proc~read_grid_root->interface~bcast_send3d_x3i interface~bcast_send1d_3 bcast_send1D_3 proc~read_grid_root->interface~bcast_send1d_3 g3 g3 proc~read_grid_root->g3 interface~bcast_send3d_ghost bcast_send3D_ghost proc~read_grid_root->interface~bcast_send3d_ghost proc~gridproj_dneu3d->mpi_recv proc~gridproj_dneu3d->interface~get_simsize3 proc~gridproj_dneu3d->mpi_send proc~gridproj_dneu3d->proc~clear_unitvecs proc~slabrange slabrange proc~gridproj_dneu3d->proc~slabrange proc~doy_calc->proc~daysmonth proc~interp3 interp3 proc~spaceinterp_dneu3d->proc~interp3 proc~assert_directory_exists assert_directory_exists interface~assert_directory_exists->proc~assert_directory_exists proc~read_dneu3d->proc~dateinc proc~read_dneu3d->mpi_recv proc~date_filename date_filename proc~read_dneu3d->proc~date_filename interface~bcast_recv bcast_recv proc~input_workers_mpi->interface~bcast_recv sw sw proc~gtd7->sw pma pma proc~gtd7->pma proc~glob7s GLOB7S proc~gtd7->proc~glob7s tn3 tn3 proc~gtd7->tn3 tn2 tn2 proc~gtd7->tn2 tgn3 tgn3 proc~gtd7->tgn3 tn1 tn1 proc~gtd7->tn1 proc~densm DENSM proc~gtd7->proc~densm proc~gts7 GTS7 proc~gtd7->proc~gts7 pdm pdm proc~gtd7->pdm tgn2 tgn2 proc~gtd7->tgn2 tgn1 tgn1 proc~gtd7->tgn1 pavgm pavgm proc~gtd7->pavgm proc~glatf GLATF proc~gtd7->proc~glatf proc~vtst7 VTST7 proc~gtd7->proc~vtst7 interface~gather_send gather_send proc~output_workers_mpi->interface~gather_send proc~copyfile copyfile interface~copyfile->proc~copyfile proc~read_grid_workers->mpi_recv proc~read_grid_workers->g2 interface~bcast_recv1d_2 bcast_recv1D_2 proc~read_grid_workers->interface~bcast_recv1d_2 interface~bcast_recv3d_x2i bcast_recv3D_x2i proc~read_grid_workers->interface~bcast_recv3d_x2i proc~read_grid_workers->interface~bcast_recv proc~read_grid_workers->g1 interface~bcast_recv3d_ghost bcast_recv3D_ghost proc~read_grid_workers->interface~bcast_recv3d_ghost interface~bcast_recv1d_3 bcast_recv1D_3 proc~read_grid_workers->interface~bcast_recv1d_3 interface~bcast_recv3d_x3i bcast_recv3D_x3i proc~read_grid_workers->interface~bcast_recv3d_x3i proc~read_grid_workers->g3 interface~interp2 interp2 proc~spaceinterp_dneu2d->interface~interp2 interface~potential_root_mpi_curv potential_root_mpi_curv interface~potential_root_mpi->interface~potential_root_mpi_curv proc~maxwell_colln maxwell_colln proc~conductivities->proc~maxwell_colln proc~coulomb_colln coulomb_colln proc~conductivities->proc~coulomb_colln proc~read_dneu2d->proc~dateinc proc~read_dneu2d->mpi_recv proc~read_dneu2d->mpi_send proc~read_dneu2d->proc~date_filename proc~output_aur_root->proc~date_filename interface~gather_recv gather_recv proc~output_aur_root->interface~gather_recv proc~glob7s->sw swc swc proc~glob7s->swc apt apt proc~glob7s->apt plg plg proc~glob7s->plg t t proc~glob7s->t proc~interp2 interp2 interface~interp2->proc~interp2 interface~bcast_recv1d_23_2 bcast_recv1D_23_2 interface~bcast_recv1d_2->interface~bcast_recv1d_23_2 interface~bcast_send3d_x2i_23 bcast_send3D_x2i_23 interface~bcast_send3d_x2i->interface~bcast_send3d_x2i_23 proc~splini SPLINI proc~densm->proc~splini proc~splint SPLINT proc~densm->proc~splint xs xs proc~densm->xs amax1 amax1 proc~densm->amax1 proc~spline SPLINE proc~densm->proc~spline zeta zeta proc~densm->zeta ys ys proc~densm->ys proc~potential_root_mpi_curv potential_root_mpi_curv interface~potential_root_mpi_curv->proc~potential_root_mpi_curv interface~bcast_recv3d_x2i_23 bcast_recv3D_x2i_23 interface~bcast_recv3d_x2i->interface~bcast_recv3d_x2i_23 proc~gts7->sw proc~gts7->pma proc~gts7->proc~glob7s proc~gts7->tn1 proc~gts7->pdm proc~gts7->tgn1 proc~gts7->proc~vtst7 pt pt proc~gts7->pt alog alog proc~gts7->alog proc~ccor CCOR proc~gts7->proc~ccor mt mt proc~gts7->mt alpha alpha proc~gts7->alpha ptl ptl proc~gts7->ptl proc~densu DENSU proc~gts7->proc~densu zn1 zn1 proc~gts7->zn1 proc~dnet DNET proc~gts7->proc~dnet proc~scalh SCALH proc~gts7->proc~scalh altl altl proc~gts7->altl ptm ptm proc~gts7->ptm amod amod proc~gts7->amod ps ps proc~gts7->ps pd pd proc~gts7->pd proc~globe7 GLOBE7 proc~gts7->proc~globe7 proc~ccor2 CCOR2 proc~gts7->proc~ccor2 pdl pdl proc~gts7->pdl interface~bcast_send1d_23_2 bcast_send1D_23_2 interface~bcast_send1d_2->interface~bcast_send1d_23_2 proc~get_grid3 get_grid3 interface~get_grid3->proc~get_grid3 proc~output_aur_workers->interface~gather_send interface~bcast_recv2d_23 bcast_recv2D_23 interface~bcast_recv->interface~bcast_recv2d_23 interface~bcast_recv4d_23 bcast_recv4D_23 interface~bcast_recv->interface~bcast_recv4d_23 interface~bcast_recv3d_23 bcast_recv3D_23 interface~bcast_recv->interface~bcast_recv3d_23 interface~bcast_recv1d_23 bcast_recv1D_23 interface~bcast_recv->interface~bcast_recv1d_23 interface~bcast_recv3d_ghost_23 bcast_recv3D_ghost_23 interface~bcast_recv3d_ghost->interface~bcast_recv3d_ghost_23 interface~bcast_send1d_23 bcast_send1D_23 interface~bcast_send->interface~bcast_send1d_23 interface~bcast_send2d_23 bcast_send2D_23 interface~bcast_send->interface~bcast_send2d_23 interface~bcast_send4d_23 bcast_send4D_23 interface~bcast_send->interface~bcast_send4d_23 interface~bcast_send3d_23 bcast_send3D_23 interface~bcast_send->interface~bcast_send3d_23 interface~bcast_send3d_x3i_23 bcast_send3D_x3i_23 interface~bcast_send3d_x3i->interface~bcast_send3d_x3i_23 interface~gather_send4d_23 gather_send4D_23 interface~gather_send->interface~gather_send4d_23 interface~gather_send2d_23 gather_send2D_23 interface~gather_send->interface~gather_send2d_23 interface~gather_send3d_23 gather_send3D_23 interface~gather_send->interface~gather_send3d_23 interface~bcast_send1d_23_3 bcast_send1D_23_3 interface~bcast_send1d_3->interface~bcast_send1d_23_3 interface~bcast_recv1d_23_3 bcast_recv1D_23_3 interface~bcast_recv1d_3->interface~bcast_recv1d_23_3 proc~input_root_mpi->interface~get_simsize3 proc~input_root_mpi->interface~bcast_send tmp tmp proc~input_root_mpi->tmp interface~bcast_recv3d_x3i_23 bcast_recv3D_x3i_23 interface~bcast_recv3d_x3i->interface~bcast_recv3d_x3i_23 proc~potential_workers_mpi->mpi_recv proc~potential_workers_mpi->interface~bcast_recv proc~potential_workers_mpi->interface~gather_send interface~grad3d3 grad3D3 proc~potential_workers_mpi->interface~grad3d3 proc~elliptic_workers elliptic_workers proc~potential_workers_mpi->proc~elliptic_workers proc~halo_pot halo_pot proc~potential_workers_mpi->proc~halo_pot interface~integral3d1_curv_alt integral3D1_curv_alt proc~potential_workers_mpi->interface~integral3d1_curv_alt interface~integral3d1 integral3D1 proc~potential_workers_mpi->interface~integral3d1 interface~grad3d2 grad3D2 proc~potential_workers_mpi->interface~grad3d2 interface~grad3d1 grad3D1 proc~potential_workers_mpi->interface~grad3d1 interface~div3d div3D proc~potential_workers_mpi->interface~div3d proc~utsec2filestem utsec2filestem proc~date_filename->proc~utsec2filestem proc~vtst7->sw glatl glatl proc~vtst7->glatl stll stll proc~vtst7->stll proc~vtst7->swc swl swl proc~vtst7->swl fl fl proc~vtst7->fl fal fal proc~vtst7->fal secl secl proc~vtst7->secl apl apl proc~vtst7->apl gll gll proc~vtst7->gll iydl iydl proc~vtst7->iydl swcl swcl proc~vtst7->swcl proc~output_root_stream_mpi~2->proc~date_filename proc~output_root_stream_mpi~2->interface~gather_recv interface~bcast_send3d_ghost_23 bcast_send3D_ghost_23 interface~bcast_send3d_ghost->interface~bcast_send3d_ghost_23 proc~bcast_recv1d_23_3 bcast_recv1D_23_3 interface~bcast_recv1d_23_3->proc~bcast_recv1d_23_3 proc~bcast_recv2d_23 bcast_recv2D_23 interface~bcast_recv2d_23->proc~bcast_recv2d_23 proc~bcast_recv3d_x2i_23 bcast_recv3D_x2i_23 interface~bcast_recv3d_x2i_23->proc~bcast_recv3d_x2i_23 amin1 amin1 proc~splini->amin1 proc~densu->proc~splini proc~densu->proc~splint proc~densu->xs proc~densu->amax1 proc~densu->proc~spline proc~densu->zeta proc~densu->ys proc~dnet->alog proc~bcast_send1d_23_3 bcast_send1D_23_3 interface~bcast_send1d_23_3->proc~bcast_send1d_23_3 proc~bcast_recv4d_23 bcast_recv4D_23 interface~bcast_recv4d_23->proc~bcast_recv4d_23 proc~bcast_send2d_23 bcast_send2D_23 interface~bcast_send2d_23->proc~bcast_send2d_23 proc~potential_root_mpi_curv->mpi_send proc~potential_root_mpi_curv->interface~bcast_send proc~potential_root_mpi_curv->interface~grad3d3 proc~potential_root_mpi_curv->proc~halo_pot proc~potential_root_mpi_curv->interface~integral3d1_curv_alt proc~potential_root_mpi_curv->interface~integral3d1 proc~potential_root_mpi_curv->interface~grad3d2 proc~potential_root_mpi_curv->interface~grad3d1 proc~potential_root_mpi_curv->interface~gather_recv proc~potential_root_mpi_curv->interface~div3d interface~potential2d_polarization_periodic potential2D_polarization_periodic proc~potential_root_mpi_curv->interface~potential2d_polarization_periodic proc~potential3d_fieldresolved_decimate potential3D_fieldresolved_decimate proc~potential_root_mpi_curv->proc~potential3d_fieldresolved_decimate proc~potentialbcs2d potentialBCs2D proc~potential_root_mpi_curv->proc~potentialbcs2d interface~potential2d_fieldresolved potential2D_fieldresolved proc~potential_root_mpi_curv->interface~potential2d_fieldresolved proc~potentialbcs2d_fileinput potentialBCs2D_fileinput proc~potential_root_mpi_curv->proc~potentialbcs2d_fileinput interface~potential2d_polarization potential2D_polarization proc~potential_root_mpi_curv->interface~potential2d_polarization proc~bcast_send1d_23_2 bcast_send1D_23_2 interface~bcast_send1d_23_2->proc~bcast_send1d_23_2 proc~bcast_send3d_x2i_23 bcast_send3D_x2i_23 interface~bcast_send3d_x2i_23->proc~bcast_send3d_x2i_23 proc~bcast_recv3d_23 bcast_recv3D_23 interface~bcast_recv3d_23->proc~bcast_recv3d_23 proc~bcast_recv3d_x3i_23 bcast_recv3D_x3i_23 interface~bcast_recv3d_x3i_23->proc~bcast_recv3d_x3i_23 interface~grad3d3_curv_23 grad3D3_curv_23 interface~grad3d3->interface~grad3d3_curv_23 proc~bcast_recv1d_23_2 bcast_recv1D_23_2 interface~bcast_recv1d_23_2->proc~bcast_recv1d_23_2 u u proc~spline->u proc~bcast_recv3d_ghost_23 bcast_recv3D_ghost_23 interface~bcast_recv3d_ghost_23->proc~bcast_recv3d_ghost_23 proc~check_mumps_status check_mumps_status proc~elliptic_workers->proc~check_mumps_status proc~quiet_mumps quiet_mumps proc~elliptic_workers->proc~quiet_mumps mumps_exec mumps_exec proc~elliptic_workers->mumps_exec interface~halo halo proc~halo_pot->interface~halo proc~gather_send4d_23 gather_send4D_23 interface~gather_send4d_23->proc~gather_send4d_23 proc~bcast_send4d_23 bcast_send4D_23 interface~bcast_send4d_23->proc~bcast_send4d_23 proc~integral3d1_curv_alt integral3D1_curv_alt interface~integral3d1_curv_alt->proc~integral3d1_curv_alt interface~integral3d1_curv integral3D1_curv interface~integral3d1->interface~integral3d1_curv proc~gather_send2d_23 gather_send2D_23 interface~gather_send2d_23->proc~gather_send2d_23 interface~grad3d2_curv_23 grad3D2_curv_23 interface~grad3d2->interface~grad3d2_curv_23 proc~bcast_send3d_ghost_23 bcast_send3D_ghost_23 interface~bcast_send3d_ghost_23->proc~bcast_send3d_ghost_23 proc~gather_send3d_23 gather_send3D_23 interface~gather_send3d_23->proc~gather_send3d_23 htmp htmp proc~get_grid3->htmp proc~bcast_send3d_x3i_23 bcast_send3D_x3i_23 interface~bcast_send3d_x3i_23->proc~bcast_send3d_x3i_23 interface~grad3d1_curv_23 grad3D1_curv_23 interface~grad3d1->interface~grad3d1_curv_23 proc~globe7->sw proc~globe7->swc proc~globe7->apt proc~globe7->plg proc~globe7->t sumex sumex proc~globe7->sumex sg0 sg0 proc~globe7->sg0 g0 g0 proc~globe7->g0 proc~bcast_send3d_23 bcast_send3D_23 interface~bcast_send3d_23->proc~bcast_send3d_23 interface~gather_recv4d_23 gather_recv4D_23 interface~gather_recv->interface~gather_recv4d_23 interface~gather_recv3d_23 gather_recv3D_23 interface~gather_recv->interface~gather_recv3d_23 interface~gather_recv2d_23 gather_recv2D_23 interface~gather_recv->interface~gather_recv2d_23 interface~div3d_curv_23 div3D_curv_23 interface~div3d->interface~div3d_curv_23 proc~utsec2filestem->proc~day_wrap proc~bcast_send3d_x2i_23->mpi_send proc~slabinds slabinds proc~bcast_send3d_x2i_23->proc~slabinds proc~gather_recv4d_23 gather_recv4D_23 interface~gather_recv4d_23->proc~gather_recv4d_23 proc~potential2d_polarization_periodic potential2D_polarization_periodic interface~potential2d_polarization_periodic->proc~potential2d_polarization_periodic proc~gather_recv3d_23 gather_recv3D_23 interface~gather_recv3d_23->proc~gather_recv3d_23 proc~bcast_recv4d_23->mpi_recv proc~grad3d3_curv_23 grad3D3_curv_23 interface~grad3d3_curv_23->proc~grad3d3_curv_23 proc~bcast_recv2d_23->mpi_recv proc~bcast_send1d_23_2->proc~id2grid proc~gather_send3d_23->mpi_send proc~gather_recv2d_23 gather_recv2D_23 interface~gather_recv2d_23->proc~gather_recv2d_23 proc~bcast_send2d_23->mpi_send proc~bcast_send2d_23->proc~slabinds proc~bcast_recv1d_23_3->mpi_recv proc~potential3d_fieldresolved_decimate->interface~grad3d3 proc~potential3d_fieldresolved_decimate->interface~grad3d2 proc~potential3d_fieldresolved_decimate->interface~grad3d1 proc~interp1 interp1 proc~potential3d_fieldresolved_decimate->proc~interp1 interface~elliptic3d_cart elliptic3D_cart proc~potential3d_fieldresolved_decimate->interface~elliptic3d_cart proc~div3d_curv_23 div3D_curv_23 interface~div3d_curv_23->proc~div3d_curv_23 proc~bcast_send3d_x3i_23->mpi_send proc~bcast_send3d_x3i_23->proc~slabinds proc~potential2d_fieldresolved potential2D_fieldresolved interface~potential2d_fieldresolved->proc~potential2d_fieldresolved proc~grad3d1_curv_23 grad3D1_curv_23 interface~grad3d1_curv_23->proc~grad3d1_curv_23 proc~bcast_recv3d_23->mpi_recv proc~bcast_send3d_23->mpi_send proc~bcast_send3d_23->proc~slabinds proc~bcast_recv3d_x3i_23->mpi_recv proc~gather_send4d_23->mpi_send proc~bcast_recv3d_x2i_23->mpi_recv proc~bcast_send1d_23_3->proc~id2grid proc~integral3d1_curv integral3D1_curv interface~integral3d1_curv->proc~integral3d1_curv proc~bcast_recv3d_ghost_23->mpi_recv proc~gather_send2d_23->mpi_send proc~grad3d2_curv_23 grad3D2_curv_23 interface~grad3d2_curv_23->proc~grad3d2_curv_23 proc~potentialbcs2d_fileinput->proc~dateinc proc~potentialbcs2d_fileinput->interface~interp2 proc~potentialbcs2d_fileinput->proc~date_filename proc~potentialbcs2d_fileinput->proc~interp1 interface~get_grid2 get_grid2 proc~potentialbcs2d_fileinput->interface~get_grid2 interface~get_simsize2 get_simsize2 proc~potentialbcs2d_fileinput->interface~get_simsize2 proc~bcast_send4d_23->mpi_send proc~bcast_send4d_23->proc~slabinds interface~halo_23 halo_23 interface~halo->interface~halo_23 proc~bcast_recv1d_23_2->mpi_recv proc~potential2d_polarization potential2D_polarization interface~potential2d_polarization->proc~potential2d_polarization proc~bcast_send3d_ghost_23->mpi_send proc~bcast_send3d_ghost_23->proc~slabinds interface~grad2d1_curv_alt grad2D1_curv_alt proc~potential2d_polarization_periodic->interface~grad2d1_curv_alt interface~elliptic2d_polarization_periodic elliptic2D_polarization_periodic proc~potential2d_polarization_periodic->interface~elliptic2d_polarization_periodic proc~grad2d3_curv_periodic grad2D3_curv_periodic proc~potential2d_polarization_periodic->proc~grad2d3_curv_periodic interface~grad2d3 grad2D3 proc~potential2d_polarization->interface~grad2d3 proc~potential2d_polarization->interface~grad2d1_curv_alt interface~elliptic2d_polarization elliptic2D_polarization proc~potential2d_polarization->interface~elliptic2d_polarization proc~halo_23 halo_23 interface~halo_23->proc~halo_23 proc~elliptic3d_cart elliptic3D_cart interface~elliptic3d_cart->proc~elliptic3d_cart proc~slabinds->proc~id2grid proc~get_grid2 get_grid2 interface~get_grid2->proc~get_grid2 proc~get_simsize2 get_simsize2 interface~get_simsize2->proc~get_simsize2 proc~gather_recv4d_23->mpi_recv proc~gather_recv4d_23->proc~slabinds interface~elliptic2d_cart elliptic2D_cart proc~potential2d_fieldresolved->interface~elliptic2d_cart proc~gather_recv2d_23->mpi_recv proc~gather_recv2d_23->proc~slabinds proc~gather_recv3d_23->mpi_recv proc~gather_recv3d_23->proc~slabinds mpi_irecv mpi_irecv proc~halo_23->mpi_irecv proc~grid2id grid2ID proc~halo_23->proc~grid2id mpi_isend mpi_isend proc~halo_23->mpi_isend mpi_waitall mpi_waitall proc~halo_23->mpi_waitall proc~grad2d3_curv_23 grad2D3_curv_23 interface~grad2d3->proc~grad2d3_curv_23 proc~grad2d1_curv_alt_23 grad2D1_curv_alt_23 interface~grad2d1_curv_alt->proc~grad2d1_curv_alt_23 proc~elliptic2d_polarization elliptic2D_polarization interface~elliptic2d_polarization->proc~elliptic2d_polarization proc~elliptic3d_cart->proc~check_mumps_status proc~elliptic3d_cart->proc~quiet_mumps proc~elliptic3d_cart->mumps_exec mumps_perm mumps_perm proc~elliptic3d_cart->mumps_perm proc~elliptic2d_cart elliptic2D_cart interface~elliptic2d_cart->proc~elliptic2d_cart proc~elliptic2d_polarization_periodic elliptic2D_polarization_periodic interface~elliptic2d_polarization_periodic->proc~elliptic2d_polarization_periodic proc~elliptic2d_polarization->proc~check_mumps_status proc~elliptic2d_polarization->proc~quiet_mumps proc~elliptic2d_polarization->mumps_exec proc~elliptic2d_polarization->mumps_perm proc~elliptic2d_cart->proc~check_mumps_status proc~elliptic2d_cart->proc~quiet_mumps proc~elliptic2d_cart->mumps_exec proc~elliptic2d_cart->mumps_perm proc~elliptic2d_polarization_periodic->proc~check_mumps_status proc~elliptic2d_polarization_periodic->proc~quiet_mumps proc~elliptic2d_polarization_periodic->mumps_exec proc~elliptic2d_polarization_periodic->mumps_perm

Contents


Variables

Type AttributesNameInitial
integer :: ierr
integer, dimension(3):: ymd

VARIABLES READ IN FROM CONFIG.INI FILE year,month,day of simulation

real(kind=wp) :: UTsec

UT (s)

real(kind=wp) :: UTsec0

UT start time of simulation (s)

real(kind=wp) :: tdur

duration of simulation

real(kind=wp), dimension(3):: activ

f10.7a,f10.7,ap

real(kind=wp) :: tcfl

target CFL number

real(kind=wp) :: Teinf

exospheric temperature

integer :: potsolve

what type of potential solve

integer :: flagperiodic

toggles whether or not the grid is treated as periodic in the x3 dimension (affects some of the message passing)

integer :: flagoutput

what type of output to do (1 - everything; 2 - avg'd parms.; 3 - ne only)

integer :: flagcap

internal capacitance?

character(len=:), allocatable:: infile

INPUT AND OUTPUT FILES command line argument input file

character(len=:), allocatable:: outdir

" " output directory

character(len=:), allocatable:: indatsize

grid size and data filenames

character(len=:), allocatable:: indatgrid

grid size and data filenames

type(curvmesh) :: x

GRID STRUCTURE structure containg grid locations, finite differences, etc.: see grid module for details

real(kind=wp), dimension(:,:,:,:), allocatable:: ns

STATE VARIABLES fluid state variables

real(kind=wp), dimension(:,:,:,:), allocatable:: vs1

STATE VARIABLES fluid state variables

real(kind=wp), dimension(:,:,:,:), allocatable:: vs2

STATE VARIABLES fluid state variables

real(kind=wp), dimension(:,:,:,:), allocatable:: vs3

STATE VARIABLES fluid state variables

real(kind=wp), dimension(:,:,:,:), allocatable:: Ts

STATE VARIABLES fluid state variables

real(kind=wp), dimension(:,:,:), allocatable:: E1

electrodynamic state variables

real(kind=wp), dimension(:,:,:), allocatable:: E2

electrodynamic state variables

real(kind=wp), dimension(:,:,:), allocatable:: E3

electrodynamic state variables

real(kind=wp), dimension(:,:,:), allocatable:: J1

electrodynamic state variables

real(kind=wp), dimension(:,:,:), allocatable:: J2

electrodynamic state variables

real(kind=wp), dimension(:,:,:), allocatable:: J3

electrodynamic state variables

real(kind=wp), dimension(:,:,:), allocatable:: rhov2

inductive state vars. (for future use - except for B1 which is used for the background field)

real(kind=wp), dimension(:,:,:), allocatable:: rhov3

inductive state vars. (for future use - except for B1 which is used for the background field)

real(kind=wp), dimension(:,:,:), allocatable:: B1

inductive state vars. (for future use - except for B1 which is used for the background field)

real(kind=wp), dimension(:,:,:), allocatable:: B2

inductive state vars. (for future use - except for B1 which is used for the background field)

real(kind=wp), dimension(:,:,:), allocatable:: B3

inductive state vars. (for future use - except for B1 which is used for the background field)

real(kind=wp), dimension(:,:,:), allocatable:: rhom

inductive auxiliary

real(kind=wp), dimension(:,:,:), allocatable:: v1

inductive auxiliary

real(kind=wp), dimension(:,:,:), allocatable:: v2

inductive auxiliary

real(kind=wp), dimension(:,:,:), allocatable:: v3

inductive auxiliary

real(kind=wp), dimension(:,:,:,:), allocatable:: nn

neutral density array

real(kind=wp), dimension(:,:,:), allocatable:: Tn

neutral temperature and velocities

real(kind=wp), dimension(:,:,:), allocatable:: vn1

neutral temperature and velocities

real(kind=wp), dimension(:,:,:), allocatable:: vn2

neutral temperature and velocities

real(kind=wp), dimension(:,:,:), allocatable:: vn3

neutral temperature and velocities

real(kind=wp), dimension(:,:,:), allocatable:: Phiall

full-grid potential solution. To store previous time step value

real(kind=wp), dimension(:,:,:), allocatable:: iver

integrated volume emission rate of aurora calculated by GLOW

real(kind=wp) :: t =0._wp

time from beginning of simulation (s) and time step (s)

real(kind=wp) :: dt =1e-6_wp

time from beginning of simulation (s) and time step (s)

real(kind=wp) :: dtprev

time from beginning of simulation (s) and time step (s)

real(kind=wp) :: tout

time for next output and time between outputs

real(kind=wp) :: dtout

time for next output and time between outputs

real(kind=wp) :: tstart

temp. vars. for measuring performance of code blocks

real(kind=wp) :: tfin

temp. vars. for measuring performance of code blocks

integer :: it

time and species loop indices

integer :: isp

time and species loop indices

real(kind=wp), allocatable:: dl1
real(kind=wp), allocatable:: dl2
real(kind=wp), allocatable:: dl3
integer :: flagdneu

toggles neutral perturbations (0 - none; 1 - file-based neutral inputs)

integer :: interptype

toggles whether the neutral input data are interpreted (0 - Cartesian; 1 - axisymmetric)

real(kind=wp) :: dxn

finite differences for the neutral input data in the horizontal and vertical directions

real(kind=wp) :: drhon

finite differences for the neutral input data in the horizontal and vertical directions

real(kind=wp) :: dzn

finite differences for the neutral input data in the horizontal and vertical directions

real(kind=wp) :: sourcemlat

mag. lat./long for the neutral source location

real(kind=wp) :: sourcemlon

mag. lat./long for the neutral source location

character(len=:), allocatable:: sourcedir

directory where neutral input data are located

real(kind=wp) :: dtneu

time interval [s] in between neutral inputs

integer :: flagprecfile

PRECIPITATION FILE INPUT VARIABLES flag toggling precipitation file input (0 - no; 1 - yes)

real(kind=wp) :: dtprec

time interval between precip. inputs

character(len=:), allocatable:: precdir

directory containing precip. input files

integer :: flagE0file

ELECTRIC FIELD FILE INPUT VARIABLES flag toggling electric field (potential BCs) file input (0 - no; 1 - yes)

real(kind=wp) :: dtE0

time interval between electric field file inputs

character(len=:), allocatable:: E0dir

directory containing electric field file input data

integer :: flagglow

GLOW MODULE INPUT VARIABLES flag toggling GLOW module run (include aurora) (0 - no; 1 - yes)

real(kind=wp) :: dtglow

time interval between GLOW runs (s)

real(kind=wp) :: dtglowout

time interval between GLOW auroral outputs (s)

real(kind=wp) :: tglowout

time for next GLOW output

logical :: nooutput =.false.

FOR HANDLING OUTPUT

integer :: argc
character(len=256) :: argv
integer :: lid2in
integer :: lid3in
character(len=10) :: date
character(len=10) :: time
real(kind=wp), parameter:: dtscale =2d0

TO CONTROL THROTTLING OF TIME STEP

MAIN PROGRAM