Naming Conventions

From OpenGGCM
Jump to: navigation, search



Each simulation run gets an automatically generated identifier that consists of the user login name and 5 integers that are incremented from run to run, for example 'jed00001'. Call this identifier $RUN. Output file names are then generated as `$RUN.$WHAT.$TIME. For all field variables the model creates a new file for each time instant. This makes it easier to access values at a given time but for time histories one needs to loop over a large number of files. This also means that there is a large number of output files (10's to 10000's), however, the 2GB file size limitations on most computers makes it necessary to produce a rather large number of files. Having more, but smaller files makes it also easier to transfer a smaller selected number of results. The file middlefix $WHAT indicates what the file contains, for example:

  • '3df': The 3d fields of magnetospheric variables.
  • 'px_NNN': The 2d fields of magnetospheric variables at a given value of x=NNN, where NNN is in units of 0.1 RE.
  • 'py_NNN': The 2d fields of magnetospheric variables at a given value of y=NNN, where NNN is in units of 0.1 RE.
  • 'pz_NNN': The 2d fields of magnetospheric variables at a given value of z=NNN, where NNN is in units of 0.1 RE.
  • 'iof': The 2d fields of ionospheric variables.
  • 'ioc': 2d and 3d fields from CTIM. These include in particlular electron, ion, and neutral densities, winds, etc.

The suffix indicates the output time in seconds since the start of the run (in real time). Basetime is the UT time of start for a run. For runs with no dipole tilt Basetime is set to 1967:01:01:00:00:0.0 UT, i.e., January 1., 1967, 0000 UT. The time into the run is measured in seconds and is denoted by $TIME in the following. $TIME is then used to label filenames. The corresponding UT time is thus Basetime + $TIME in seconds, if Basetime is expressed in seconds. The output cadence and which files are generated can be controlled by several input parameters.

The raw output files contain headers and store values ith truncated precision in an ASCII encoded and run-length compressed format. See '' and '' for details.

Grid file

The grid information is stored in '$RUN.grid', also ASCII encoded. There are at a minimum 3 fields, 'gridx', 'gridy', and 'gridz', that contain the coordinates in RE. This file is needed by almost any analysis program. There is also a file '$RUN.smf' that contains the grid and several other parameters of the run. This file is also used by many programs and should be in the current directory. A small program called 'smf' can be used to extract parameters or the grid. Both '$RUN.grid' and '$RUN.smf' are produced in the pre-compilation phase.

Ionosphere grid

The ionosphere grid spans the entire sphere on a spherical grid. Arrays are stored as a(ip,it), with:

The 1. coordinate is longitude in SM coordinates from -180 degrees (midnight, 24MLT) going eastward (increasing MLT) to 180 degrees.

The 2. coordinate is magnetic co-latitude starting from the magnetic north pole.

The ionospher grid dimensions are usually 181x361, i.e., 5 degrees in longitude resolution and 0.5 degrees in latitude. Older runs may have less resolution.

Here is some simple code that reads a variable, interpolates it, and computes magnetic local time on the ionosphere grid:

c..... interpolate to p,t coordinates
      do 100 p=-180.0,180.0,15.0
      do 100 t=25.0,25.0,0.5
      call inp2d1(a,np,nt,phi1,dphi,the1,dthe,p,t,w,wx,wy)
c....  inp2d1 returns the interpolated value in 'w'.
c      wx and wy are the dreivatives
     *'got interpolated value of ',
     * l1(1:jlen(l1,80)),' at ',xmlt,t,' ==> ',w
100   continue


Each file contains several variables. These variables are identified by the following short identifiers. For the magnetosphere (MHD) variables:

pp         Plasma pressure [pPa] (=10**-12 Pa)
rr         Plasma number density [cm**-3]
vx         Plasma velocity, x-component [km/s]
vy         Plasma velocity, y-component [km/s]
vz         Plasma velocity, z-component [km/s]
bx         Magnetic field, x-component [nT]
by         Magnetic field, y-component [nT]
bz         Magnetic field, x-component [nT]
xjx        Current density, x-component [micro-A/m**2]
xjy        Current density, y-component [micro-A/m**2]
xjy        Current density, z-component [micro-A/m**2]

Note that the vector quantities are in 'MHD' coordinates, i.e., MHD_x = - GSE_x and MHD_y = - GSE_y, MHD_z = + GSE_z.

For the ionosphere the major variables are:

pot           Potential [V]
pacurr        Field Aligned Current (FAC) density [micro-A/m**2] (positive down)
sigh          Hall conductance [S]
sigp          Pedersen conductance [S]
prec_e_fe_1   diffuse auroral e- precipitation energy flux [W/m**2]
prec_e_fe_2   discrete auroral e- precipitation energy flux [W/m**2]
prec_e_e0_1   diffuse auroral precipitation, mean energy [eV]
prec_e_e0_2   discrete auroral precipitation, mean energy [eV]
delphi        Knight potential [V]
ppio          mapped pressure [pPa]
rrio          mapped density [cm**-3]
ttio          mapped temperature [K]
fac_dyn       dynamo FAC from CTIM [micro-A/m**2]
fac_tot       total FAC [micro-A/m**2]
xjh           Joule heating rate [W/m**2]
delbt         Ground magnetic H perturbation [nT]
epio          azimuthal electric field [mV/m]
etio          meridional electric field [mV/m]

Here is a useful list of derived quantities. This list is pulled from a program and most of the names have their usual meaing. Most importantly it shows how things are normalized. Left column is the result, next column is a list of variables needed to compute the result, right column is the expression.

Current densities:

jx    xjx          tt=xjx 
jy    xjy          tt=xjy
jz    xjz          tt=xjz
cx    xjx          tt=xjx
cy    xjy          tt=xjy
cz    xjz          tt=xjz

Field curvature (must be pre-computed):

curv  curv         tt=curv

Plasma resistivity:

resis resis        tt=resis

Magnetosonic speed:

vms        pp:rr:bx:by:bz      cs=31.68*sqrt(pp/rr);va=21.89*sqrt((bx*bx+by*by+bz*bz)/rr);tt=sqrt(va*va+cs*cs)

Magnetosonic Mach number:

Mvms      pp:rr:bx:by:bz:vx:vy:vz v=sqrt(vx*vx+vy*vy+vz*vz);cs=31.68*sqrt(pp/rr);

Plasma beta:

beta       pp:bx:by:bz       tt=2.5133*pp/amax1(1.0e-15,bx*bx+by*by+bz*bz)

Plasma Temperature

temp       pp:rr             tt=72429.0*pp/rr

Plasma temperature in keV:

tkev       pp:rr             tt=72429.0*pp/rr/11600.0e3

Sond speed:

cs         pp:rr             tt=31.68*sqrt(pp/rr)

Sound Mach number

Mcs        pp:rr             v=sqrt(vx*vx+vy*vy+vz*vz);tt=v/(31.68*sqrt(pp/rr))

Ion-electron drift speed:

vd         xjx:xjy:xjz:rr:bx:by:bz tt=(6241.0*(xjx*xjx+xjy*xjy+xjz*xjz)/rr)

Ion-electron drift speed normalized to Alfven speed:

vdva xjx:xjy:xjz:rr:bx:by:bz tt=(6241.0*sqrt(xjx*xjx+xjy*xjy+xjz*xjz)/rr)/(21.89*sqrt((bx*bx+by*by+bz*bz)/rr))

Alfven speed:

va          bx:by:bz:rr      tt=21.89*sqrt((bx*bx+by*by+bz*bz)/amax1(1.0e-12,rr))

Alfven Mach number:

Mva         bx:by:bz:rr:vx:vy:vz   v=sqrt(vx*vx+vy*vy+vz*vz);tt=v/(21.89*sqrt((bx*bx+by*by+bz*bz)/amax1(1.0e-12,rr)))

Specific entropy:

ent         pp:rr            tt=72429.0*pp/(amax1(1.0e-12,rr)**1.6667)

Velocity magnitude:

vtot        vx:vy:vz         tt=sqrt(vx*vx+vy*vy+vz*vz)

Magnetic field magnitude:

btot        bx:by:bz         tt=sqrt(bx*bx+by*by+bz*bz)

Magnetic force density components and total:

jcbx        xjy:xjz:by:bz    tt=xjy*bz-xjz*by
jcby        xjx:xjz:bx:bz    tt=xjz*bx-xjx*bz
jcbz        xjx:xjy:bx:by    tt=xjx*by-xjy*bx
jcbtot      xjx:xjy:xjz:bx:by:bz tt=sqrt((xjy*bz-xjz*by)**2+(xjz*bx-xjx*bz)**2+(xjx*by-xjy*bx)**2)

Parallel current density:

jpar        xjx:xjy:xjz:bx:by:bz tt=(xjx*bx+xjy*by+xjz*bz)/sqrt(bx*bx+by*by+bz*bz)

Parallel velocity:

pflx        bx:by:bz:vx:vy:vz tt=((bx*bx+by*by+bz*bz)*vx-(bx*vx+by*vy+bz*vz)*bx)*7.9577e-4
pfly        bx:by:bz:vx:vy:vz tt=((bx*bx+by*by+bz*bz)*vy-(bx*vx+by*vy+bz*vz)*by)*7.9577e-4
pflz        bx:by:bz:vx:vy:vz tt=((bx*bx+by*by+bz*bz)*vz-(bx*vx+by*vy+bz*vz)*bz)*7.9577e-4
pfltot      bx:by:bz:vx:vy:vz 

Electric field components and magnitude:

ex          by:bz:vy:vz       tt=(by*vz-bz*vy)*0.001
ey          bx:bz:vx:vz       tt=(bz*vx-bx*vz)*0.001
ez          bx:by:vx:vy       tt=(bx*vy-by*vx)*0.001
etot        bx:by:bz:vx:vy:vz tt=0.001*sqrt(((by*vz-bz*vy)**2+(bz*vx-bx*vz)**2+(bx*vy-by*vx)**2))

Topologies (need to be pre-computed):

northlobe   opcl:xlat_n  tt=-1.0;if(abs(opcl).lt.0.5.and.xlat_n.le.181.0)tt=1.0
southlobe   opcl:xlat_s  tt=-1.0;if(abs(opcl).lt.0.1.and.xlat_s.le.181.0)tt=1.0
open        opcl         tt=-1.0;if(abs(opcl).lt.0.1)tt=1.0
lobe        opcl         tt=-1.0;if(abs(opcl).lt.0.1)tt=1.0
opcl        opcl         tt=opcl
closed      opcl         tt=-1.0;if(abs((opcl)+1.0).lt.0.1)tt=1.0
solarwind   opcl         tt=-1.0;if(abs((opcl)-1.0).lt.0.1)tt=1.0

Flow and field elevation angles:

vtheta      vx:vy:vz     tt=57.29578*asin(vz/sqrt(vx*vx+vy*vy+vz*vz))
btheta      bx:by:bz     tt=57.29578*asin(bz/sqrt(bx*bx+by*by+bz*bz))


Open-closed indicator (must be pre-computed):

io_opcl     io_opcl     tt=io_opcl