SVN tag tiegcm1.92_r325 has been saved as an interim code to tiegcm1.93

honorableclunkΛογισμικό & κατασκευή λογ/κού

30 Οκτ 2013 (πριν από 3 χρόνια και 11 μήνες)

105 εμφανίσεις



SVN tag tiegcm1.92_r325 has been saved as an
interim code to tiegcm1.93




We propose that this revision be tested and
evaluated over a 2
-
week period, during which
code modifications can be suggested, and after
which tiegcm1.93 will be released.


See
http://download.hao.ucar.edu/pub/tgcm/tiegcm1.92_r325

for more information.


Notes on SVN tag tiegcm1.92_r325


New lower boundary coding scheme (module lbc.F)


New lower boundary option to use SABER/TIDI data (not released)


New namelist read parameter Kp (see flow diagram)


Increase night
-
time electron densities (qinite.F)


Bug fix in Weimer05 (wei05sc.F)


Change calculation of sun’s location from dipole to apex


Update IGRF coefficients with IGRF11 (apex_subs.F)


Use collective function mpi_bcast (mp_updatephi)


Option to write 4
-
byte secondary history files


Script changes to enable MPI runs on HAO 64
-
bit systems


Several minor bug fixes


See
http://download.hao.ucar.edu/pub/tgcm/tiegcm1.92_r325

for more information.

Steps to run tiegcm1.92_r325 on 64
-
bit HAO Linux
(e.g., arc.hao.ucar.edu):


cd

to empty working directory, e.g., /
hao
/arc1/user/
tiegcm


svn

checkout $SVN/
tiegcm
/tags/tiegcm1.92_r325



where SVN =
file:///home/tgcm/svn

(see ~foster/.
cshrc
)


cp tiegcm1.92_r325/scripts/tiegcm
-
linux.job .


Edit tiegcm
-
linux.job as follows to make 8
-
proc run:



set model = tiegcm1.92_r325



set
wrkdir

= .



set
tgcmroot

= .



set
mpi

= true



set
nproc

= 8



tiegcm
-
linux.job >&! tiegcm
-
linux.out &


The last command will build and execute the model in tiegcm1.92_r325
-
linux

Script output will appear in tiegcm
-
linux.out

stdout

will be tiegcm1.92_r325.out



Steps to run tiegcm1.92_r325 on ibm bluefire:


cd to empty working directory, e.g., /ptmp/user/tiegcm


svn checkout $SVN/tiegcm/tags/tiegcm1.92_r325



where SVN = svn+ssh://arc.hao.ucar.edu/home/tgcm/svn (see ~foster/.cshrc)


cp tiegcm1.92_r325/scripts/tiegcm
-
ibm.job .


Edit tiegcm
-
ibm.job as follows:



set model = tiegcm1.92_r325



set wrkdir = .



set tgcmroot = .



bsub < tiegcm
-
ibm.job



The last command will submit a job to build and execute in tiegcm1.92_r325
-
aix

Script output will appear in tiegcm.xxxxxx.out

stdout will be sorted per mpi task in files tiegcm1.92_r325_task*.out

Changes from tiegcm1.92_r325 tag toward a
tiegcm1.93 release are made on the SVN trunk:


To checkout the tiegcm trunk, use the following command:

svn checkout $SVN/tiegcm/trunk tiegcm_trunk


When changes are made to the trunk, you can update your

working directory with the command “svn update”, followed

by recompile.


Changes made to the trunk since the r325 tag was saved (5/4/10):



Minor changes to accommodate non
-
mpi runs under AIX


Check for leap
-
year at end of calendar year (run to day 367)


Add env vars for MPI/PGI build in tiegcm
-
linux.job

Model components to be evaluated prior to
releases of TIEGCM:

Dynamics:


TN, UN, VN, Z


Composition:


O2, O


Minor species


Ionosphere:


Ne, Te, Ti, ions


Aurora


Electrodynamics:


ExB drifts, apex coords


dynamo



Data/Empirical Model Assimilation:


GPI (Kp, f107)


Heelis convection (high
-
lat)


Weimer convection (high
-
lat)


SEE data


SABER/TIDI data (U,V,Z lbc)


Software:


Performance analysis


Code structure


Documentation


Source code revision control

Potential Model

Heelis

Weimer05

IMF Data

User Specified

GPI Data

User Specified

Kp

Namelist Input:

Kp

Power= f(Kp)

Ctpoten=f(Kp)

bx,by,bz

swden,swvel

Namelist Input:

bx,by,bz

swden,swvel

Namelist Input:
power,ctpoten

High
-
Latitude Input Options in tiegcm1.92_r325

Power= f(Kp)

Ctpoten=f(Kp)

Power=f(bz,swvel)

Ctpoten=f(
Weimer phihm
)

Power=f(bz,swvel)

Ctpoten=f(Weimer phihm
)

Aurora

Aurora

Aurora

Default

This diagram shows input options specifying the potential model to be used for high
-
latitude
ion convection, and options for input or calculation of cross
-
tail potential and hemispheric
power, which drive the auroral parameterization. See notes on the following pages.

Notes:

1.
Potential models output high
-
latitude electric potential, which is used to calculate ion drift velocities.

2.
IMF data is optionally used to drive the Weimer potential model.

3.
GPI
Kp

data is optionally used to calculate
ctpoten

and power, which drive the
auroral

parameterization.

4.
GPI f10.7 solar flux data is optionally used to calculate heating and ionization rates (not shown in diagram)

Notes and restrictions on
namelist

inputs:

1.
Heelis

and Weimer potential models are mutually exclusive.

2.
If GPI or IMF data are requested, user can still override with
namelist
, but must NOT provide at least one
parameter. Data will be used for parameter(s) not provided by the user.

3.
If missing data is encountered in data files, the program will stop with an error message.

4.
GPI data cannot be used in a Weimer run, and IMF data cannot be used in a
Heelis

run.

5.
User cannot provide
Kp

in a Weimer run (data or no data)

6.
If
Kp

is provided, at least one of
ctpoten

and power must NOT be provided.

Namelist Input Parameters
(“User Specified” and “Namelist Input” in the diagram):


(Several of these are optional, see notes and restrictions)

(ctpoten, power, kp, bximf,byimf,bzimf, swvel, swden may be constants or time
-
dependent)


potential_model

= [‘HEELIS’ or ‘WEIMER’]

imf_ncfile


= [netcdf data file containing bx,by,bz,swden,swvel]

gpi_ncfile


= [netcdf data file containing Kp, f10.7]

ctpoten


= [cross
-
cap potential drop (Kv)]

power


= [hemispheric power (GW)]

f10.7d


= [Daily f10.7 cm flux]

f10.7a


= [Average f10.7 cm flux]

kp


= [Kp index]

bximf,byimf,bzimf

= [components of IMF (on separate lines)

swvel, swden


= [solar wind velocity and density (on separate lines)

Functions:

Power=f(Kp):

Function hp_from_kp (util.F)


If (kp <= 7) hp = 16.82*exp(0.32*kp)
-
4.86

If (kp > 7) hp = 153.13+(kp
-
7)/(9
-
7)*(300
-
153.13)

Ctpoten=f(Kp)

Function ctpoten_from_kp (util.F)


ctpoten = 15+15*kp+0.8*kp**2

Power=f(bz,swvel):

Function hp_from_bz_swvel (util.F)


fac = 2.0

If (bz < 0) hp = 6+3.3*abs(bz)+(0.05+0.003*abs(bz))*(min(swvel,700)
-
300)

If (bz >= 0) hp = 5.0+0.05*(min(swvel,700)
-
300)

hp = max(2.5,hp)*fac

Ctpoten=f(Weimer phihm) (wei05sc.F):


weictpoten(ih) = 0.001*(vnx(ih,2)
-
vnx(ih,1))

ctpoten = 0.5*(weictpoten(1)+weictpoten(2))