Naming Conventions
From OpenGGCM
Contents |
Files
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 'mhdread.com' and 'ioread.com' 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
phi1=-180.0
phi2=180.0
the1=0.0
the2=180.0
dphi=(phi2-phi1)/float(np-1)
dthe=(the2-the1)/float(nt-1)
c
c..... interpolate to p,t coordinates
c
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
c.... inp2d1 returns the interpolated value in 'w'.
c wx and wy are the dreivatives
c
xmlt=(p+180.0)/15.0
write(0,'(a,a,a,f7.2,1x,f7.2,a,g11.5)')
*'got interpolated value of ',
* l1(1:jlen(l1,80)),' at ',xmlt,t,' ==> ',w
c
100 continue
Variables
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 [mW/m**2] prec_e_fe_2 discrete auroral e- precipitation energy flux [mW/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 [??] 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);
va=21.89*sqrt((bx*bx+by*by+bz*bz)/rr);tt=v/sqrt(va*va+cs*cs)
Plasma beta:
beta pp:bx:by:bz tt=2.5133*pp/amax1(1.0e-15,sqrt(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))
IONOSPHERE:
Open-closed indicator (must be pre-computed):
io_opcl io_opcl tt=io_opcl
