Modules

ModuleSource FileDescription
advecadvec.f90
advec_mpiadvec_mpi.f90

do not import grid sizes in case we want do subgrid advection...

calculuscalculus.f90

we do not want the full-grid sizes (lx1,lx2,lx3) in scope since we routinely need to do subgrid derivatives ROUTINES BELOW DO NOT ACCOUNT FOR METRIC FACTORS... As such they need to really be renamed to avoid confusion (they aren't curvilinear derivatives)

   divdiv.f90
   gradientgradient.f90
   integralintegral.f90
collisionscollisions.f90
diffusiondiffusion.f90

This module sets up the ionospheric diffusion problem and then passes it off to the parabolic solvers.

Read more…
gridgrid.f90
   grid_readread.f90
      readgrid_hdf5readgrid_hdf5.f90
      readgrid_rawreadgrid_raw.f90
interpolationinterpolation.f90
   interpolation2dinterp2d.f90
ioio.f90

HANDLES INPUT AND OUTPUT OF PLASMA STATE PARAMETERS (NOT GRID INPUTS)

   inputinput.f90
      path_existspath_exists.f90

this is for non-Intel compilers

      path_existspath_exists_intel.f90

Intel compilers require non-standard inquire(directory=)

   io_auroraaurora.f90
      io_aurora_hdf5aurora_hdf5.f90
      io_aurora_hdf5aurora_ncdf.f90
      io_aurora_rawaurora_raw.f90
   magmag.f90
   mag_hdf5mag_hdf5.f90
   mag_hdf5mag_ncdf.f90
   mag_rawmag_raw.f90
   outputoutput.f90
   plasmaplasma.f90

plasma.f90 uses submodules in plasma_input_.f90 and plasma_output_.f90 for raw, hdf5 or netcdf4 I/O

      plasma_input_hdf5plasma_input_hdf5.f90
      plasma_input_rawplasma_input_raw.f90
      plasma_output_hdf5plasma_output_ncdf.f90
      plasma_output_hdf5plasma_output_hdf5.f90
      plasma_output_rawplasma_output_raw.f90
ionizationionization.f90

we need the unperturbed msis temperatures to apply the simple chapman theory used by this module

   glow_dummyglow_dummy.f90
   glow_modglow_run.F90

subroutine to allocate use-associated variables

ionize_fangfang.f90
ionratefang_run.f90

these are convenience wrappers for the low-level Fang procedures for if you didn't already have a background atmosphere from the big simulations.

logginglogging.f90
meshmesh.f90
mpimodmpimod.F90Read more…
   mpihalompihalo.f90

HALOS AN ARRAY THAT IS SPLIT ALONG THE 2 AND 3 RANKS

   mpirecvmpirecv.f90
   mpisendmpisend.f90
multifluidmultifluid.f90
mumps_interfacemumps_real32.f90
mumps_interfacemumps_real64.f90
mumps_rlmumps_real32.f90
mumps_rlmumps_real64.f90
neutralneutral.f90

ALL ARRAYS THAT FOLLOW ARE USED WHEN INCLUDING NEUTRAL PERTURBATIONS FROM ANOTHER MODEL ARRAYS TO STORE THE NEUTRAL GRID INFORMATION as long as the neutral module is in scope these persist and do not require a "save"; this variable only used by the axisymmetric interpolation THIS SHARES SO MUCH CODE WITH THE AXISYMMETRIC VERSION THAT THEY SHOULD PROBABLY BE COMBINED

   atmosatmos.f90
pathlibpathlib.f90
   pathlib_unixpathlib_unix.f90
   pathlib_windowspathlib_windows.f90
PDEellipticPDEelliptic.f90

Various tools for solving elliptic partial differential equations - uses MUMPS, scalapack, lapack, openmpi, and blas

   elliptic2delliptic2d.f90
   elliptic3delliptic3d.f90
PDEparabolicPDEparabolic.f90

a module for use for solving parabolic partial differential equations

Read more…
phys_constsphys_consts.F90
potential_commpotential_comm_mumps.f90

THIS MODULE IS MEANT TO WORK WITH THE MUMPS 2D INTEGRATED SOLVER IF THE GRID IS 3D, OR A FIELD-RESOLVED SOLVER IF THE GRID IS 2D (MUMPS CAN'T HANDLE 3D VERY WELL).

Read more…
   potential_rootpotential_root.f90
   potential_workerpotential_worker.f90
potential_mumpspotential_mumps.f90
   potential2dpotential2d.f90
potentialBCs_mumpspotentialBCs_mumps.f90
precipBCs_modprecipBCs_mod.f90
readerreader.f90

simple file reading procedures

   reader_hdf5reader_hdf5.f90
   reader_rawreader_raw.f90
sourcessources.f90
   sources_mpisources_mpi.f90
temporaltemporal.f90
timeutilstimeutils.f90
vendor_lapack95gbsv.f90
module~~graph~~ModuleGraph module~pathlib_windows pathlib_windows module~pathlib pathlib module~pathlib_windows->module~pathlib module~timeutils timeutils module~phys_consts phys_consts module~timeutils->module~phys_consts iso_fortran_env iso_fortran_env module~timeutils->iso_fortran_env module~path_exists path_exists module~input input module~path_exists->module~input module~potential_comm potential_comm module~mesh mesh module~potential_comm->module~mesh module~potential_comm->module~phys_consts module~potential_mumps potential_mumps module~potential_comm->module~potential_mumps module~collisions collisions module~potential_comm->module~collisions module~pdeelliptic PDEelliptic module~potential_comm->module~pdeelliptic module~potentialbcs_mumps potentialBCs_mumps module~potential_comm->module~potentialbcs_mumps module~grid grid module~potential_comm->module~grid module~mpimod mpimod module~potential_comm->module~mpimod module~calculus calculus module~potential_comm->module~calculus module~grid_read grid_read module~grid_read->module~grid module~pathlib_unix pathlib_unix module~pathlib_unix->module~pathlib module~reader_raw reader_raw module~reader reader module~reader_raw->module~reader module~reader_raw->iso_fortran_env module~reader->module~phys_consts module~reader->iso_fortran_env module~mesh->module~phys_consts module~mag mag module~io io module~mag->module~io module~mpisend mpisend module~mpisend->module~mpimod module~readgrid_raw readgrid_raw module~readgrid_raw->module~grid_read module~readgrid_raw->module~phys_consts module~phys_consts->iso_fortran_env module~glow_mod glow_mod module~glow_mod->module~phys_consts module~ionization ionization module~glow_mod->module~ionization module~glow_mod->iso_fortran_env cglow cglow module~glow_mod->cglow module~diffusion diffusion module~diffusion->module~mesh module~diffusion->module~phys_consts module~pdeparabolic PDEparabolic module~diffusion->module~pdeparabolic module~diffusion->module~grid module~mpihalo mpihalo module~mpihalo->module~mpimod module~mpirecv mpirecv module~mpirecv->module~mpimod module~potential_mumps->module~mesh module~potential_mumps->module~phys_consts module~potential_mumps->module~pdeelliptic module~interpolation interpolation module~potential_mumps->module~interpolation module~potential_mumps->module~mpimod module~potential_mumps->module~calculus module~potential_mumps->iso_fortran_env module~sources_mpi sources_mpi module~sources sources module~sources_mpi->module~sources module~sources_mpi->module~mpimod module~pdeparabolic->module~phys_consts module~vendor_lapack95 vendor_lapack95 module~pdeparabolic->module~vendor_lapack95 module~temporal temporal module~temporal->module~mesh module~temporal->module~phys_consts module~temporal->module~mpimod module~reader_hdf5 reader_hdf5 module~reader_hdf5->module~reader h5fortran h5fortran module~reader_hdf5->h5fortran module~interpolation2d interpolation2d module~interpolation2d->module~interpolation module~output output module~output->module~io module~output->iso_fortran_env module~ionization->module~timeutils module~ionization->module~mesh module~ionization->module~phys_consts module~ionize_fang ionize_fang module~ionization->module~ionize_fang module~neutral neutral module~ionization->module~neutral module~ionization->module~grid module~ionization->module~mpimod module~collisions->module~phys_consts module~collisions->iso_fortran_env module~glow_dummy glow_dummy module~glow_dummy->module~ionization module~readgrid_hdf5 readgrid_hdf5 module~readgrid_hdf5->module~grid_read module~readgrid_hdf5->module~phys_consts module~readgrid_hdf5->h5fortran module~vendor_lapack95->iso_fortran_env module~integral integral module~integral->module~calculus module~potential2d potential2d module~potential2d->module~potential_mumps module~potential2d->module~pdeelliptic module~potential2d->module~grid module~potential2d->module~calculus module~mumps_rl mumps_rl module~mag_raw mag_raw module~mag_raw->module~timeutils module~mag_raw->module~io module~elliptic2d elliptic2d module~elliptic2d->module~pdeelliptic module~mumps_interface~2 mumps_interface module~mumps_interface~2->module~mumps_rl module~pdeelliptic->module~phys_consts module~pdeelliptic->module~mumps_interface~2 module~pdeelliptic->module~mpimod module~pdeelliptic->iso_fortran_env module~io_aurora io_aurora module~io_aurora->module~io module~plasma_input_hdf5 plasma_input_hdf5 module~plasma_input_hdf5->module~timeutils module~plasma plasma module~plasma_input_hdf5->module~plasma module~plasma_input_hdf5->h5fortran module~plasma_output_hdf5~2 plasma_output_hdf5 module~plasma_output_hdf5~2->module~timeutils module~plasma_output_hdf5~2->module~plasma module~plasma_output_hdf5~2->h5fortran module~gradient gradient module~gradient->module~calculus module~precipbcs_mod precipBCs_mod module~precipbcs_mod->module~timeutils module~precipbcs_mod->module~reader module~precipbcs_mod->module~mesh module~precipbcs_mod->module~phys_consts module~precipbcs_mod->module~interpolation module~precipbcs_mod->module~grid module~precipbcs_mod->module~mpimod ieee_arithmetic ieee_arithmetic module~precipbcs_mod->ieee_arithmetic module~precipbcs_mod->iso_fortran_env module~plasma_input_raw plasma_input_raw module~plasma_input_raw->module~timeutils module~plasma_input_raw->module~plasma module~elliptic3d elliptic3d module~elliptic3d->module~pdeelliptic module~div div module~div->module~calculus module~potential_root potential_root module~potential_root->module~potential_comm module~io_aurora_raw io_aurora_raw module~io_aurora_raw->module~timeutils module~io_aurora_raw->module~io_aurora module~atmos atmos module~atmos->module~neutral module~atmos->iso_fortran_env module~logging logging module~logging->iso_fortran_env module~advec advec module~advec->module~phys_consts module~potentialbcs_mumps->module~timeutils module~potentialbcs_mumps->module~reader module~potentialbcs_mumps->module~mesh module~potentialbcs_mumps->module~phys_consts module~potentialbcs_mumps->module~interpolation module~potentialbcs_mumps->module~grid module~potentialbcs_mumps->module~mpimod module~potentialbcs_mumps->ieee_arithmetic module~potentialbcs_mumps->iso_fortran_env module~input->module~io module~io->module~phys_consts module~io->module~pathlib module~io->module~grid module~io->module~mpimod module~io->ieee_arithmetic module~io->iso_fortran_env iso_c_binding iso_c_binding module~io->iso_c_binding module~interpolation->module~phys_consts module~mumps_rl~2 mumps_rl module~plasma_output_hdf5 plasma_output_hdf5 module~plasma_output_hdf5->module~timeutils module~plasma_output_hdf5->module~plasma nc4fortran nc4fortran module~plasma_output_hdf5->nc4fortran module~pathlib->iso_fortran_env module~ionize_fang->module~phys_consts module~ionize_fang->iso_fortran_env module~ionrate ionrate module~ionrate->module~phys_consts module~ionrate->module~ionize_fang module~ionrate->iso_fortran_env module~advec_mpi advec_mpi module~advec_mpi->module~mesh module~advec_mpi->module~phys_consts module~advec_mpi->module~grid module~advec_mpi->module~mpimod module~mumps_interface mumps_interface module~mumps_interface->module~mumps_rl module~sources->module~mesh module~sources->module~phys_consts module~sources->module~collisions module~sources->module~grid module~sources->module~calculus module~mag_hdf5 mag_hdf5 module~mag_hdf5->module~timeutils module~mag_hdf5->module~io module~mag_hdf5->h5fortran module~path_exists~2 path_exists module~path_exists~2->module~input module~multifluid multifluid module~multifluid->module~timeutils module~multifluid->module~mesh module~multifluid->module~phys_consts module~multifluid->module~diffusion module~multifluid->module~ionization module~multifluid->module~collisions module~multifluid->module~precipbcs_mod module~multifluid->module~advec_mpi module~multifluid->module~sources module~multifluid->module~grid module~multifluid->module~mpimod module~multifluid->module~calculus module~neutral->module~timeutils module~neutral->module~reader module~neutral->module~mesh module~neutral->module~phys_consts module~neutral->module~interpolation module~neutral->module~grid module~neutral->module~mpimod module~neutral->ieee_arithmetic module~neutral->iso_fortran_env module~grid->module~reader module~grid->module~mesh module~grid->module~phys_consts module~grid->module~mpimod module~grid->iso_fortran_env module~io_aurora_hdf5 io_aurora_hdf5 module~io_aurora_hdf5->module~timeutils module~io_aurora_hdf5->module~io_aurora module~io_aurora_hdf5->h5fortran module~io_aurora_hdf5~2 io_aurora_hdf5 module~io_aurora_hdf5~2->module~timeutils module~io_aurora_hdf5~2->module~io_aurora module~io_aurora_hdf5~2->nc4fortran module~mag_hdf5~2 mag_hdf5 module~mag_hdf5~2->module~timeutils module~mag_hdf5~2->module~io module~mag_hdf5~2->nc4fortran module~plasma->module~reader module~plasma->module~io module~plasma_output_raw plasma_output_raw module~plasma_output_raw->module~timeutils module~plasma_output_raw->module~plasma module~mpimod->module~phys_consts module~mpimod->iso_fortran_env mpi mpi module~mpimod->mpi module~potential_worker potential_worker module~potential_worker->module~potential_comm module~calculus->module~mesh module~calculus->module~phys_consts program~test_diffusion1d test_diffusion1d program~test_diffusion1d->module~phys_consts program~test_diffusion1d->module~pdeparabolic program~test_diffusion1d->h5fortran program~mhd1d_snd MHD1D_SND program~mhd1d_snd->module~advec program~gemini3d Gemini3D program~gemini3d->module~timeutils program~gemini3d->module~potential_comm program~gemini3d->module~mesh program~gemini3d->module~phys_consts program~gemini3d->module~temporal program~gemini3d->module~precipbcs_mod program~gemini3d->module~potentialbcs_mumps program~gemini3d->module~io program~gemini3d->module~multifluid program~gemini3d->module~neutral program~gemini3d->module~grid program~gemini3d->module~mpimod program~gemini3d->iso_fortran_env program~test_interp1 test_interp1 program~test_interp1->module~phys_consts program~test_interp1->module~interpolation program~test_interp2 test_interp2 program~test_interp2->module~phys_consts program~test_interp2->module~interpolation program~test_interp2->h5fortran program~test_fang test_fang program~test_fang->module~phys_consts program~test_fang->module~ionrate program~test_fang->iso_fortran_env program~testinterp3 testinterp3 program~testinterp3->module~phys_consts program~testinterp3->module~interpolation program~testinterp3->h5fortran program~magcalc MagCalc program~magcalc->module~timeutils program~magcalc->module~mesh program~magcalc->module~phys_consts program~magcalc->module~io program~magcalc->module~grid program~magcalc->module~mpimod program~magcalc->ieee_arithmetic program~magcalc->iso_fortran_env program~test_potential2d test_potential2d program~test_potential2d->module~phys_consts program~test_potential2d->module~pdeelliptic program~test_potential2d->h5fortran program~test_potential2d->mpi program~test_sza test_sza program~test_sza->module~timeutils program~test_sza->module~phys_consts program~msis_driver msis_driver program~msis_driver->iso_fortran_env program~test_potential3d test_potential3D program~test_potential3d->mpi program~test_dayrollover test_dayrollover program~test_dayrollover->module~timeutils program~test_dayrollover->module~phys_consts program~test_dayrollover->iso_fortran_env program~test_formats test_formats program~test_formats->module~timeutils program~test_formats->module~phys_consts program~test_formats->iso_fortran_env program~mhd1d_shock MHD1D_shock program~mhd1d_shock->module~advec program~mhd1d_saw MHD1D_SAW program~mhd1d_saw->module~advec
Help