[Dart-dev] [6221] DART/branches/development: reintegrating the GITM branch into the development branch.

nancy at ucar.edu nancy at ucar.edu
Sat Jun 1 11:38:32 MDT 2013


Revision: 6221
Author:   thoar
Date:     2013-06-01 11:38:29 -0600 (Sat, 01 Jun 2013)
Log Message:
-----------
reintegrating the GITM branch into the development branch.

The GITM model was the result of work by Alexey Morozov from UMich.
His patches were applied pretty much without change.
The model_mod.html file needs to be fleshed out and updated with
information about how to get GITM, the datasets, etc.

A routine was added to the obs_def_upper_atm_mod.f90 that
required a change to the the TIEGCM model_mod.f90 (that also
uses the obs_def_upper_atm_mod). Those routines provide
lat/lon/lev information to one forward observation operator
that is not tested with TIEGCM - so TIEGCM will issue a warning
if those routines are called.

Modified Paths:
--------------
    DART/branches/development/models/tiegcm/model_mod.f90
    DART/branches/development/obs_def/obs_def_upper_atm_mod.f90
    DART/branches/development/obs_kind/DEFAULT_obs_kind_mod.F90

Added Paths:
-----------
    DART/branches/development/models/gitm/
    DART/branches/development/models/gitm/GITM2/
    DART/branches/development/models/gitm/GITM2/src/
    DART/branches/development/models/gitm/GITM2/src/ModConstants.f90
    DART/branches/development/models/gitm/GITM2/src/ModEarth.f90
    DART/branches/development/models/gitm/GITM2/src/ModKind.f90
    DART/branches/development/models/gitm/GITM2/src/ModSize.f90
    DART/branches/development/models/gitm/GITM2/src/ModTime.f90
    DART/branches/development/models/gitm/GITM2/src/time_routines.f90
    DART/branches/development/models/gitm/dart_gitm_mod.f90
    DART/branches/development/models/gitm/dart_to_gitm.f90
    DART/branches/development/models/gitm/gitm_to_dart.f90
    DART/branches/development/models/gitm/model_mod.f90
    DART/branches/development/models/gitm/model_mod.html
    DART/branches/development/models/gitm/model_mod_check.f90
    DART/branches/development/models/gitm/shell_scripts/
    DART/branches/development/models/gitm/shell_scripts/advance_model.csh
    DART/branches/development/models/gitm/testdata1/
    DART/branches/development/models/gitm/testdata1/UAM.in
    DART/branches/development/models/gitm/testdata1/b0001.rst
    DART/branches/development/models/gitm/testdata1/b0002.rst
    DART/branches/development/models/gitm/testdata1/b0003.rst
    DART/branches/development/models/gitm/testdata1/b0004.rst
    DART/branches/development/models/gitm/testdata1/header.rst
    DART/branches/development/models/gitm/work/
    DART/branches/development/models/gitm/work/input.nml
    DART/branches/development/models/gitm/work/mkmf_create_fixed_network_seq
    DART/branches/development/models/gitm/work/mkmf_create_obs_sequence
    DART/branches/development/models/gitm/work/mkmf_dart_to_gitm
    DART/branches/development/models/gitm/work/mkmf_filter
    DART/branches/development/models/gitm/work/mkmf_gitm_to_dart
    DART/branches/development/models/gitm/work/mkmf_model_mod_check
    DART/branches/development/models/gitm/work/mkmf_obs_diag
    DART/branches/development/models/gitm/work/mkmf_obs_seq_to_netcdf
    DART/branches/development/models/gitm/work/mkmf_obs_sequence_tool
    DART/branches/development/models/gitm/work/mkmf_perfect_model_obs
    DART/branches/development/models/gitm/work/mkmf_preprocess
    DART/branches/development/models/gitm/work/mkmf_restart_file_tool
    DART/branches/development/models/gitm/work/mkmf_wakeup_filter
    DART/branches/development/models/gitm/work/path_names_create_fixed_network_seq
    DART/branches/development/models/gitm/work/path_names_create_obs_sequence
    DART/branches/development/models/gitm/work/path_names_dart_to_gitm
    DART/branches/development/models/gitm/work/path_names_filter
    DART/branches/development/models/gitm/work/path_names_gitm_to_dart
    DART/branches/development/models/gitm/work/path_names_model_mod_check
    DART/branches/development/models/gitm/work/path_names_obs_diag
    DART/branches/development/models/gitm/work/path_names_obs_seq_to_netcdf
    DART/branches/development/models/gitm/work/path_names_obs_sequence_tool
    DART/branches/development/models/gitm/work/path_names_perfect_model_obs
    DART/branches/development/models/gitm/work/path_names_preprocess
    DART/branches/development/models/gitm/work/path_names_restart_file_tool
    DART/branches/development/models/gitm/work/path_names_wakeup_filter
    DART/branches/development/models/gitm/work/quickbuild.csh

Removed Paths:
-------------
    DART/branches/development/models/gitm/GITM2/
    DART/branches/development/models/gitm/GITM2/src/
    DART/branches/development/models/gitm/GITM2/src/ModConstants.f90
    DART/branches/development/models/gitm/GITM2/src/ModEarth.f90
    DART/branches/development/models/gitm/GITM2/src/ModKind.f90
    DART/branches/development/models/gitm/GITM2/src/ModSize.f90
    DART/branches/development/models/gitm/GITM2/src/ModTime.f90
    DART/branches/development/models/gitm/GITM2/src/time_routines.f90
    DART/branches/development/models/gitm/dart_gitm_mod.f90
    DART/branches/development/models/gitm/dart_to_gitm.f90
    DART/branches/development/models/gitm/gitm_to_dart.f90
    DART/branches/development/models/gitm/model_mod.f90
    DART/branches/development/models/gitm/model_mod.html
    DART/branches/development/models/gitm/model_mod_check.f90
    DART/branches/development/models/gitm/shell_scripts/
    DART/branches/development/models/gitm/shell_scripts/advance_model.csh
    DART/branches/development/models/gitm/testdata1/
    DART/branches/development/models/gitm/testdata1/UAM.in
    DART/branches/development/models/gitm/testdata1/b0001.rst
    DART/branches/development/models/gitm/testdata1/b0002.rst
    DART/branches/development/models/gitm/testdata1/b0003.rst
    DART/branches/development/models/gitm/testdata1/b0004.rst
    DART/branches/development/models/gitm/testdata1/header.rst
    DART/branches/development/models/gitm/work/
    DART/branches/development/models/gitm/work/input.nml
    DART/branches/development/models/gitm/work/mkmf_create_fixed_network_seq
    DART/branches/development/models/gitm/work/mkmf_create_obs_sequence
    DART/branches/development/models/gitm/work/mkmf_dart_to_gitm
    DART/branches/development/models/gitm/work/mkmf_filter
    DART/branches/development/models/gitm/work/mkmf_gitm_to_dart
    DART/branches/development/models/gitm/work/mkmf_model_mod_check
    DART/branches/development/models/gitm/work/mkmf_obs_diag
    DART/branches/development/models/gitm/work/mkmf_obs_seq_to_netcdf
    DART/branches/development/models/gitm/work/mkmf_obs_sequence_tool
    DART/branches/development/models/gitm/work/mkmf_perfect_model_obs
    DART/branches/development/models/gitm/work/mkmf_preprocess
    DART/branches/development/models/gitm/work/mkmf_restart_file_tool
    DART/branches/development/models/gitm/work/mkmf_wakeup_filter
    DART/branches/development/models/gitm/work/path_names_create_fixed_network_seq
    DART/branches/development/models/gitm/work/path_names_create_obs_sequence
    DART/branches/development/models/gitm/work/path_names_dart_to_gitm
    DART/branches/development/models/gitm/work/path_names_filter
    DART/branches/development/models/gitm/work/path_names_gitm_to_dart
    DART/branches/development/models/gitm/work/path_names_model_mod_check
    DART/branches/development/models/gitm/work/path_names_obs_diag
    DART/branches/development/models/gitm/work/path_names_obs_seq_to_netcdf
    DART/branches/development/models/gitm/work/path_names_obs_sequence_tool
    DART/branches/development/models/gitm/work/path_names_perfect_model_obs
    DART/branches/development/models/gitm/work/path_names_preprocess
    DART/branches/development/models/gitm/work/path_names_restart_file_tool
    DART/branches/development/models/gitm/work/path_names_wakeup_filter
    DART/branches/development/models/gitm/work/quickbuild.csh

Property Changed:
----------------
    DART/branches/development/
    DART/branches/development/adaptive_inflate/
    DART/branches/development/assim_tools/
    DART/branches/development/models/cam/
    DART/branches/development/models/clm/
    DART/branches/development/obs_kind/DEFAULT_obs_kind_mod.F90
    DART/branches/development/observations/MADIS/
    DART/branches/development/observations/snow/
    DART/branches/development/utilities/

-------------- next part --------------

Property changes on: DART/branches/development
___________________________________________________________________
Modified: svn:mergeinfo
   - /DART/branches/helen:5995-6161
/DART/trunk:4680-5706
   + /DART/branches/gitm:5143-6215
/DART/branches/helen:5995-6161
/DART/trunk:4680-5706


Property changes on: DART/branches/development/adaptive_inflate
___________________________________________________________________
Modified: svn:mergeinfo
   - /DART/branches/helen/adaptive_inflate:5995-6161
/DART/branches/inf_restart:4784-4812
/DART/trunk/adaptive_inflate:4680-5706
   + /DART/branches/gitm/adaptive_inflate:5143-6215
/DART/branches/helen/adaptive_inflate:5995-6161
/DART/branches/inf_restart:4784-4812
/DART/trunk/adaptive_inflate:4680-5706


Property changes on: DART/branches/development/assim_tools
___________________________________________________________________
Added: svn:mergeinfo
   + /DART/branches/gitm/assim_tools:5143-6215
/DART/releases/Kodiak/assim_tools:5292-5577
/DART/trunk/assim_tools:4680-5142


Property changes on: DART/branches/development/models/cam
___________________________________________________________________
Modified: svn:mergeinfo
   - /DART/branches/cam-update:4903-4923
/DART/branches/helen/models/cam:5995-6161
/DART/trunk/models/cam:4680-5706
   + /DART/branches/cam-update:4903-4923
/DART/branches/gitm/models/cam:5143-6215
/DART/branches/helen/models/cam:5995-6161
/DART/trunk/models/cam:4680-5706


Property changes on: DART/branches/development/models/clm
___________________________________________________________________
Modified: svn:mergeinfo
   - /DART/branches/helen/models/clm:5995-6161
/DART/trunk/models/clm:5026-5063
   + /DART/branches/gitm/models/clm:5143-6215
/DART/branches/helen/models/clm:5995-6161
/DART/trunk/models/clm:4680-5142

Deleted: DART/branches/development/models/gitm/GITM2/src/ModConstants.f90
===================================================================
--- DART/branches/gitm/models/gitm/GITM2/src/ModConstants.f90	2013-05-31 21:50:30 UTC (rev 6215)
+++ DART/branches/development/models/gitm/GITM2/src/ModConstants.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -1,31 +0,0 @@
-module ModConstants
-
-!-------------------------------------------------------------------
-! Useful physical constants
-!-------------------------------------------------------------------
-
-  real, parameter :: Avogadros_Number       = 6.02e23               ! mol./mole
-  real, parameter :: AMU                    = 1.6726e-27            ! Kg
-  real, parameter :: Mass_Ion               = 1.6726e-27            ! Kg
-  real, parameter :: Mass_Proton            = Mass_Ion              ! Kg
-  real, parameter :: Mass_Electron          = 9.1094e-31            ! Kg
-  real, parameter :: Boltzmanns_Constant    = 1.3807e-23            ! J/K
-  real, parameter :: Planck_Constant        = 6.6261e-34            ! Js
-  real, parameter :: Element_Charge         = 1.6022e-19            ! C (J/eV)
-  real, parameter :: Speed_Light            = 2.9979e8              ! m/s
-  real, parameter :: Univ_Gas_Constant      = Avogadros_Number*   &
-                                              Boltzmanns_Constant   ! J/(moleK)
-  real, parameter :: RGAS                   = Univ_Gas_Constant*   &
-                                              1.0E+07               !erg/(moleK)
-  real, parameter :: pi                     = 3.141592653589793
-  real, parameter :: twopi = 2*pi
-
-  real, parameter :: P00                    = 1.0e5                   ! Pa
-  real, parameter :: T00                    = 273.0                   ! K
-
-  real, parameter :: SpecificHeatVolume     = 3./2.
-  real, parameter :: SpecificHeatPressure   = SpecificHeatVolume + 1.0
-  real, parameter :: Gamma_const                  = &
-       SpecificHeatPressure/SpecificHeatVolume
-
-end module ModConstants

Copied: DART/branches/development/models/gitm/GITM2/src/ModConstants.f90 (from rev 6215, DART/branches/gitm/models/gitm/GITM2/src/ModConstants.f90)
===================================================================
--- DART/branches/development/models/gitm/GITM2/src/ModConstants.f90	                        (rev 0)
+++ DART/branches/development/models/gitm/GITM2/src/ModConstants.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -0,0 +1,31 @@
+module ModConstants
+
+!-------------------------------------------------------------------
+! Useful physical constants
+!-------------------------------------------------------------------
+
+  real, parameter :: Avogadros_Number       = 6.02e23               ! mol./mole
+  real, parameter :: AMU                    = 1.6726e-27            ! Kg
+  real, parameter :: Mass_Ion               = 1.6726e-27            ! Kg
+  real, parameter :: Mass_Proton            = Mass_Ion              ! Kg
+  real, parameter :: Mass_Electron          = 9.1094e-31            ! Kg
+  real, parameter :: Boltzmanns_Constant    = 1.3807e-23            ! J/K
+  real, parameter :: Planck_Constant        = 6.6261e-34            ! Js
+  real, parameter :: Element_Charge         = 1.6022e-19            ! C (J/eV)
+  real, parameter :: Speed_Light            = 2.9979e8              ! m/s
+  real, parameter :: Univ_Gas_Constant      = Avogadros_Number*   &
+                                              Boltzmanns_Constant   ! J/(moleK)
+  real, parameter :: RGAS                   = Univ_Gas_Constant*   &
+                                              1.0E+07               !erg/(moleK)
+  real, parameter :: pi                     = 3.141592653589793
+  real, parameter :: twopi = 2*pi
+
+  real, parameter :: P00                    = 1.0e5                   ! Pa
+  real, parameter :: T00                    = 273.0                   ! K
+
+  real, parameter :: SpecificHeatVolume     = 3./2.
+  real, parameter :: SpecificHeatPressure   = SpecificHeatVolume + 1.0
+  real, parameter :: Gamma_const                  = &
+       SpecificHeatPressure/SpecificHeatVolume
+
+end module ModConstants

Deleted: DART/branches/development/models/gitm/GITM2/src/ModEarth.f90
===================================================================
--- DART/branches/gitm/models/gitm/GITM2/src/ModEarth.f90	2013-05-31 21:50:30 UTC (rev 6215)
+++ DART/branches/development/models/gitm/GITM2/src/ModEarth.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -1,305 +0,0 @@
-
-module ModPlanet
-
-  use ModConstants
-  use ModSizeGITM, only: nAlts
-
-  implicit none
-
-  integer, parameter :: iO_3P_  = 1
-  integer, parameter :: iO2_ = 2
-  integer, parameter :: iN2_ = 3
-  integer, parameter :: iN_4S_ =  4
-  integer, parameter :: iNO_   =  5
-  integer, parameter :: nSpecies = 5
-
-  integer, parameter :: iN_2D_ =  6
-  integer, parameter :: iN_2P_ =  7
-  integer, parameter :: iH_    =  8
-  integer, parameter :: iHe_   =  9
-!  integer, parameter :: iAr_   = 10
-  integer, parameter :: iCO2_  = 10
-  integer, parameter :: iO_1D_ = 11
-  integer, parameter :: nSpeciesTotal = 11
-
-  integer, parameter  :: iO_4SP_ = 1
-  integer, parameter  :: iO2P_   = 2
-  integer, parameter  :: iN2P_   = 3
-  integer, parameter  :: iNP_    = 4
-  integer, parameter  :: iNOP_   = 5
-  integer, parameter  :: iO_2DP_ = 6
-  integer, parameter  :: iO_2PP_ = 7
-  integer, parameter  :: iHP_    = 8
-  integer, parameter  :: iHeP_   = 9
-  integer, parameter  :: ie_     = 10
-  integer, parameter  :: nIons   = ie_
-  integer, parameter  :: nIonsAdvect = 1
-  integer, parameter  :: nSpeciesAll = nSpeciesTotal + nIons - 1
-  
-  character (len=20) :: cSpecies(nSpeciesTotal)
-  character (len=20) :: cIons(nIons)
-
-  real :: Mass(nSpeciesTotal), MassI(nIons)
-
-  real :: Vibration(nSpeciesTotal)
-
-  integer, parameter :: iE2470_ = 1
-  integer, parameter :: iE7320_ = 2
-  integer, parameter :: iE3726_ = 3
-  integer, parameter :: iE5200_ = 4
-  integer, parameter :: iE10400_ = 5
-  integer, parameter :: iE6300_ = 6
-  integer, parameter :: iE6364_ = 7
-  
-  integer, parameter :: nEmissions = 10
-  
-  integer, parameter :: i3371_ = 1
-  integer, parameter :: i4278_ = 2
-  integer, parameter :: i5200_ = 3
-  integer, parameter :: i5577_ = 4
-  integer, parameter :: i6300_ = 5
-  integer, parameter :: i7320_ = 6
-  integer, parameter :: i10400_ = 7
-  integer, parameter :: i3466_ = 8
-  integer, parameter :: i7774_ = 9
-  integer, parameter :: i8446_ = 10
-  integer, parameter :: i3726_ = 11
-
-  real, parameter :: GC_Earth               = 9.8                    ! m/s^2
-  real, parameter :: RP_Earth               = 24.0*3600.0            ! seconds
-  real, parameter :: R_Earth                = 6372.0*1000.0          ! meters
-  real, parameter :: DP_Earth               = -31100.0e-9            ! nT
-
-  real, parameter :: Gravitational_Constant = GC_Earth
-  real, parameter :: Rotation_Period        = RP_Earth
-  real, parameter :: RBody                  = R_Earth
-  real, parameter :: DipoleStrength         = DP_Earth
-
-  real, parameter :: OMEGABody              = 2.00*pi/Rotation_Period  ! rad/s
-
-  real, parameter :: HoursPerDay = Rotation_Period / 3600.0
-  real, parameter :: Tilt = 23.5
-
-  real, parameter :: DaysPerYear = 365.25
-  real, parameter :: SecondsPerYear = DaysPerYear * Rotation_Period
-
-  integer, parameter :: iVernalYear   = 1999
-  integer, parameter :: iVernalMonth  =    3
-  integer, parameter :: iVernalDay    =   21
-  integer, parameter :: iVernalHour   =    0
-  integer, parameter :: iVernalMinute =    0
-  integer, parameter :: iVernalSecond =    0
-
-  ! Old orbital parameters
- !real, parameter :: SunOrbit_A = 1.000110
- !real, parameter :: SunOrbit_B = 0.034221
- !real, parameter :: SunOrbit_C = 0.001280
- !real, parameter :: SunOrbit_D = 0.000719
- !real, parameter :: SunOrbit_E = 0.000077
-
-  !New Orbital Parameters
-  !A: semi-major axis in AU
-  !B: eccentricity
-  !C: Longitude of perihelion
-  !D: Mean Longitude
-  !E: For calulating actual Longitude
- real, parameter :: SunOrbit_A = 1.0000001124
- real, parameter :: SunOrbit_B = 0.0167
- real, parameter :: SunOrbit_C = 102.94719
- real, parameter :: SunOrbit_D = 100.46435
- real, parameter :: SunOrbit_E = 129597740.63
-
-  !Used as a damping term in Vertical solver.
-  real :: VertTau(nAlts)
-
-  logical :: IsEarth = .true.
-  logical :: IsMars = .false.
-  logical :: IsTitan = .false.
-  logical :: NonMagnetic = .false.
-  real, parameter :: PlanetNum = 0.03
-
-  character (len=10) :: cPlanet = "Earth"
-  
-  integer, parameter :: nEmissionWavelengths = 20
-  integer, parameter :: nPhotoBins = 190
-
-  
-  ! These are for the neutral friction routine...
-
-  ! These are the numerical coefficients in Table 1 in m^2 instead of cm^2
-
-  real, parameter, dimension(5, 5) :: Diff0 = 1.0e17 * reshape( (/ &
-       !   0       02      N2       N      NO
-       !--------------------------------------+
-       0.000,   0.969,  0.969,  0.969,  0.715,&              ! O
-       0.969,   0.000,  0.715,  0.969,  0.715,&              ! O2
-       0.969,   0.715,  0.000,  0.969,  0.527,&              ! N2
-       0.969,   0.969,  0.969,  0.000,  0.969, &             ! N
-       0.715,   0.715,  0.527,  0.969,  0.000 /), (/5,5/) )  ! NO
-
-  ! These are the exponents
-  real, parameter, dimension(5, 5) :: DiffExp = reshape( (/ &
-       !   0      02      N2      N     NO
-       !---------------------------------+
-       0.000,  0.774,  0.774, 0.774,  0.750, &              ! O
-       0.774,  0.000,  0.750, 0.774,  0.750, &              ! O2
-       0.774,  0.750,  0.000, 0.774,  0.810, &              ! N2
-       0.774,  0.774,  0.774, 0.000,  0.774, &              ! N
-       0.750,  0.750,  0.810, 0.774,  0.000  /), (/5,5/) )  ! NO
-
-! Unknowns!!!!
-!  real, parameter, dimension(5, 5) :: Diff0 = 1.0e17 * reshape( (/ &
-!       !   0       02      N2       N      NO
-!       !--------------------------------------+
-!       0.000,   0.969,  0.969,  0.???,  0.???,&            ! O
-!       0.969,   0.000,  0.715,  0.???,  0.???,&            ! O2
-!       0.969,   0.715,  0.000,  0.969,  0.527,&            ! N2
-!       0.???,   0.???,  0.969,  0.000,  0.???, & ! N
-!       0.???,   0.???,  0.527,  0.???,  0.000 /), (/5,5/) )  ! NO
-!
-!  ! These are the exponents
-!  real, parameter, dimension(5, 5) :: DiffExp = reshape( (/ &
-!       !   0      02      N2      N     NO
-!       !---------------------------------+
-!       0.000,  0.774,  0.774, 0.???,  0.???, &              ! O
-!       0.774,  0.000,  0.750, 0.???,  0.???, &              ! O2
-!       0.774,  0.750,  0.000, 0.774,  0.810, &              ! N2
-!       0.???,  0.???,  0.774, 0.000,  0.???, &              ! N
-!       0.???,  0.???,  0.810, 0.???,  0.000  /), (/5,5/) )  ! NO
-
-! Colegrove:
-!
-! real, parameter, dimension(5, 5) :: Diff0 = 1.0e4 * reshape( (/ &
-!       !   0      02      N2       N      NO
-!       !---------------------------------+
-!       0.000,  0.260,  0.260,  0.300,  0.181, &             !  O
-!       0.260,  0.000,  0.181,  0.220,  0.181, &             ! O2
-!       0.260,  0.181,  0.000,  0.220,  0.181, &             ! N2
-!       0.300,  0.220,  0.220,  0.000,  0.181, &             !  N
-!       0.181,  0.181,  0.181,  0.181,  0.000 /), (/5,5/) )  ! NO
-!
-!  ! These are the exponents
-!  real, parameter, dimension(5, 5) :: DiffExp = reshape( (/ &
-!       ! 0      02     N2
-!       !---------------------------------+
-!       0.00,  0.75,  0.75, 0.75,  0.75, &             ! O
-!       0.75,  0.00,  0.75, 0.75,  0.75, &             ! O2
-!       0.75,  0.75,  0.00, 0.75,  0.75, &             ! N2
-!       0.75,  0.75,  0.75, 0.00,  0.75, &            !N
-!       0.75,  0.75,  0.75, 0.75,  0.0  /), (/5,5/) )  ! NO
-
-!  real, parameter, dimension(4, 4) :: Diff0 = 1.0e4 * reshape( (/ &
-!       ! 0      02     N2      N     NO
-!       !---------------------------------+
-!       0.00,  0.260, 0.260, 0.300, &            ! O
-!       0.26,  0.000, 0.181, 0.220, &            ! O2
-!       0.26,  0.181, 0.000, 0.220, &            ! N2
-!       0.30,  0.220, 0.220, 0.000 /), (/4,4/) )  ! N
-!
-!  ! These are the exponents
-!  real, parameter, dimension(4, 4) :: DiffExp = reshape( (/ &
-!       ! 0      02     N2
-!       !---------------------------------+
-!       0.00,  0.75,  0.75, 0.75, &             ! O
-!       0.75,  0.00,  0.75, 0.75, &             ! O2
-!       0.75,  0.75,  0.00, 0.75, &             ! N2
-!       0.75,  0.75,  0.75, 0.00 /), (/4,4/) )  ! N
-
-!!!!!!!  real,  AltMinIono=100.0 ! in km
-
-contains
-
-  subroutine init_planet
-
-    use ModTime
-
-    integer :: itime(7)
-
-    Mass(iH_)    = 1.0 * AMU
-    Mass(iHe_)   = 4.0 * AMU
-    Mass(iN_4S_) = 14.0 * AMU
-    Mass(iO_3P_)  = 16.0 * AMU
-    Mass(iN_2D_) = Mass(iN_4S_)
-    Mass(iN_2P_) = Mass(iN_4S_)
-    Mass(iN2_)   = 2*Mass(iN_4S_)
-    Mass(iO2_)   = 2*Mass(iO_3P_)
-    Mass(iNO_)   = Mass(iN_4S_)+Mass(iO_3P_)
-    Mass(iCO2_)  = 12.0*AMU + 2*Mass(iO_3P_)
-
-    cSpecies(iH_)    = "H"
-    cSpecies(iHe_)   = "He"
-    cSpecies(iO_3P_) = "O(!U3!NP)"
-    cSpecies(iO2_)   = "O!D2!N"
-    cSpecies(iN2_)   = "N!D2!N"
-    cSpecies(iN_4S_) = "N(!U4!NS)"
-    cSpecies(iN_2D_) = "N(!U2!ND)"
-    cSpecies(iN_2P_) = "N(!U2!NP)"
-    cSpecies(iNO_)   = "NO"
-    cSpecies(iO_1D_) = "O(!U1!ND)"
-    cSpecies(iCO2_)   = "CO!D2!N"
-!    cSpecies(iAr_)   = "Ar"
-
-    cIons(iO_4SP_) = "O_4SP_!U+!N"
-    cIons(iO2P_)   = "O!D2!U+!N"
-    cIons(iN2P_)   = "N!D2!U+!N"
-    cIons(iNP_)    = "N!U+!N"
-    cIons(iNOP_)   = "NO!U+!N"
-    cIons(iO_2DP_) = "O(!U2!ND)!U+!N"
-    cIons(iO_2PP_) = "O(!U2!NP)!U+!N"
-    cIons(iHP_)    = "H!U+!N"
-    cIons(iHeP_)   = "He!U+!N"
-    cIons(ie_)     = "e-"
-
-    Vibration(iO_3P_)    = 5.0
-    Vibration(iO2_)   = 7.0
-    Vibration(iN2_)   = 7.0
-    if (nSpecies > 3) Vibration(iN_4S_) = 5.0
-    if (nSpecies > 4) Vibration(iNO_)   = 7.0
-
-    MassI(iO_4SP_) = Mass(iO_3P_)
-    MassI(iO_2DP_) = Mass(iO_3P_)
-    MassI(iO_2PP_) = Mass(iO_3P_)
-    MassI(iO2P_) = Mass(iO2_)
-    MassI(iNP_) = Mass(iN_2D_)
-    MassI(iN2P_) = Mass(iN2_)
-    MassI(iHP_) = Mass(iH_)
-    MassI(iHeP_) = Mass(iHe_)
-    MassI(iNOP_) = Mass(iN_4S_) + Mass(iO_3P_)
-    MassI(ie_) = Mass_Electron
-
-    VertTau = 1.0e9
-
-    itime = 0
-    itime(1) = iVernalYear
-    itime(2) = iVernalMonth
-    itime(3) = iVernalDay
-    itime(4) = iVernalHour
-    itime(5) = iVernalMinute
-    itime(6) = iVernalSecond
-    call time_int_to_real(itime, VernalTime)
-
-  end subroutine init_planet
-
-!! Placeholder subroutines (for Titan specific Phyisics)
-
-  subroutine init_radcooling
-  return
-  end subroutine init_radcooling
-
-  subroutine init_magheat
-  return
-  end subroutine init_magheat
-
-  subroutine init_isochem
-  return
-  end subroutine init_isochem
-
-  subroutine init_aerosol
-  return
-  end subroutine init_aerosol
-
-  subroutine init_topography
-    return
-  end subroutine init_topography
-
-end module ModPlanet

Copied: DART/branches/development/models/gitm/GITM2/src/ModEarth.f90 (from rev 6215, DART/branches/gitm/models/gitm/GITM2/src/ModEarth.f90)
===================================================================
--- DART/branches/development/models/gitm/GITM2/src/ModEarth.f90	                        (rev 0)
+++ DART/branches/development/models/gitm/GITM2/src/ModEarth.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -0,0 +1,305 @@
+
+module ModPlanet
+
+  use ModConstants
+  use ModSizeGITM, only: nAlts
+
+  implicit none
+
+  integer, parameter :: iO_3P_  = 1
+  integer, parameter :: iO2_ = 2
+  integer, parameter :: iN2_ = 3
+  integer, parameter :: iN_4S_ =  4
+  integer, parameter :: iNO_   =  5
+  integer, parameter :: nSpecies = 5
+
+  integer, parameter :: iN_2D_ =  6
+  integer, parameter :: iN_2P_ =  7
+  integer, parameter :: iH_    =  8
+  integer, parameter :: iHe_   =  9
+!  integer, parameter :: iAr_   = 10
+  integer, parameter :: iCO2_  = 10
+  integer, parameter :: iO_1D_ = 11
+  integer, parameter :: nSpeciesTotal = 11
+
+  integer, parameter  :: iO_4SP_ = 1
+  integer, parameter  :: iO2P_   = 2
+  integer, parameter  :: iN2P_   = 3
+  integer, parameter  :: iNP_    = 4
+  integer, parameter  :: iNOP_   = 5
+  integer, parameter  :: iO_2DP_ = 6
+  integer, parameter  :: iO_2PP_ = 7
+  integer, parameter  :: iHP_    = 8
+  integer, parameter  :: iHeP_   = 9
+  integer, parameter  :: ie_     = 10
+  integer, parameter  :: nIons   = ie_
+  integer, parameter  :: nIonsAdvect = 1
+  integer, parameter  :: nSpeciesAll = nSpeciesTotal + nIons - 1
+  
+  character (len=20) :: cSpecies(nSpeciesTotal)
+  character (len=20) :: cIons(nIons)
+
+  real :: Mass(nSpeciesTotal), MassI(nIons)
+
+  real :: Vibration(nSpeciesTotal)
+
+  integer, parameter :: iE2470_ = 1
+  integer, parameter :: iE7320_ = 2
+  integer, parameter :: iE3726_ = 3
+  integer, parameter :: iE5200_ = 4
+  integer, parameter :: iE10400_ = 5
+  integer, parameter :: iE6300_ = 6
+  integer, parameter :: iE6364_ = 7
+  
+  integer, parameter :: nEmissions = 10
+  
+  integer, parameter :: i3371_ = 1
+  integer, parameter :: i4278_ = 2
+  integer, parameter :: i5200_ = 3
+  integer, parameter :: i5577_ = 4
+  integer, parameter :: i6300_ = 5
+  integer, parameter :: i7320_ = 6
+  integer, parameter :: i10400_ = 7
+  integer, parameter :: i3466_ = 8
+  integer, parameter :: i7774_ = 9
+  integer, parameter :: i8446_ = 10
+  integer, parameter :: i3726_ = 11
+
+  real, parameter :: GC_Earth               = 9.8                    ! m/s^2
+  real, parameter :: RP_Earth               = 24.0*3600.0            ! seconds
+  real, parameter :: R_Earth                = 6372.0*1000.0          ! meters
+  real, parameter :: DP_Earth               = -31100.0e-9            ! nT
+
+  real, parameter :: Gravitational_Constant = GC_Earth
+  real, parameter :: Rotation_Period        = RP_Earth
+  real, parameter :: RBody                  = R_Earth
+  real, parameter :: DipoleStrength         = DP_Earth
+
+  real, parameter :: OMEGABody              = 2.00*pi/Rotation_Period  ! rad/s
+
+  real, parameter :: HoursPerDay = Rotation_Period / 3600.0
+  real, parameter :: Tilt = 23.5
+
+  real, parameter :: DaysPerYear = 365.25
+  real, parameter :: SecondsPerYear = DaysPerYear * Rotation_Period
+
+  integer, parameter :: iVernalYear   = 1999
+  integer, parameter :: iVernalMonth  =    3
+  integer, parameter :: iVernalDay    =   21
+  integer, parameter :: iVernalHour   =    0
+  integer, parameter :: iVernalMinute =    0
+  integer, parameter :: iVernalSecond =    0
+
+  ! Old orbital parameters
+ !real, parameter :: SunOrbit_A = 1.000110
+ !real, parameter :: SunOrbit_B = 0.034221
+ !real, parameter :: SunOrbit_C = 0.001280
+ !real, parameter :: SunOrbit_D = 0.000719
+ !real, parameter :: SunOrbit_E = 0.000077
+
+  !New Orbital Parameters
+  !A: semi-major axis in AU
+  !B: eccentricity
+  !C: Longitude of perihelion
+  !D: Mean Longitude
+  !E: For calulating actual Longitude
+ real, parameter :: SunOrbit_A = 1.0000001124
+ real, parameter :: SunOrbit_B = 0.0167
+ real, parameter :: SunOrbit_C = 102.94719
+ real, parameter :: SunOrbit_D = 100.46435
+ real, parameter :: SunOrbit_E = 129597740.63
+
+  !Used as a damping term in Vertical solver.
+  real :: VertTau(nAlts)
+
+  logical :: IsEarth = .true.
+  logical :: IsMars = .false.
+  logical :: IsTitan = .false.
+  logical :: NonMagnetic = .false.
+  real, parameter :: PlanetNum = 0.03
+
+  character (len=10) :: cPlanet = "Earth"
+  
+  integer, parameter :: nEmissionWavelengths = 20
+  integer, parameter :: nPhotoBins = 190
+
+  
+  ! These are for the neutral friction routine...
+
+  ! These are the numerical coefficients in Table 1 in m^2 instead of cm^2
+
+  real, parameter, dimension(5, 5) :: Diff0 = 1.0e17 * reshape( (/ &
+       !   0       02      N2       N      NO
+       !--------------------------------------+
+       0.000,   0.969,  0.969,  0.969,  0.715,&              ! O
+       0.969,   0.000,  0.715,  0.969,  0.715,&              ! O2
+       0.969,   0.715,  0.000,  0.969,  0.527,&              ! N2
+       0.969,   0.969,  0.969,  0.000,  0.969, &             ! N
+       0.715,   0.715,  0.527,  0.969,  0.000 /), (/5,5/) )  ! NO
+
+  ! These are the exponents
+  real, parameter, dimension(5, 5) :: DiffExp = reshape( (/ &
+       !   0      02      N2      N     NO
+       !---------------------------------+
+       0.000,  0.774,  0.774, 0.774,  0.750, &              ! O
+       0.774,  0.000,  0.750, 0.774,  0.750, &              ! O2
+       0.774,  0.750,  0.000, 0.774,  0.810, &              ! N2
+       0.774,  0.774,  0.774, 0.000,  0.774, &              ! N
+       0.750,  0.750,  0.810, 0.774,  0.000  /), (/5,5/) )  ! NO
+
+! Unknowns!!!!
+!  real, parameter, dimension(5, 5) :: Diff0 = 1.0e17 * reshape( (/ &
+!       !   0       02      N2       N      NO
+!       !--------------------------------------+
+!       0.000,   0.969,  0.969,  0.???,  0.???,&            ! O
+!       0.969,   0.000,  0.715,  0.???,  0.???,&            ! O2
+!       0.969,   0.715,  0.000,  0.969,  0.527,&            ! N2
+!       0.???,   0.???,  0.969,  0.000,  0.???, & ! N
+!       0.???,   0.???,  0.527,  0.???,  0.000 /), (/5,5/) )  ! NO
+!
+!  ! These are the exponents
+!  real, parameter, dimension(5, 5) :: DiffExp = reshape( (/ &
+!       !   0      02      N2      N     NO
+!       !---------------------------------+
+!       0.000,  0.774,  0.774, 0.???,  0.???, &              ! O
+!       0.774,  0.000,  0.750, 0.???,  0.???, &              ! O2
+!       0.774,  0.750,  0.000, 0.774,  0.810, &              ! N2
+!       0.???,  0.???,  0.774, 0.000,  0.???, &              ! N
+!       0.???,  0.???,  0.810, 0.???,  0.000  /), (/5,5/) )  ! NO
+
+! Colegrove:
+!
+! real, parameter, dimension(5, 5) :: Diff0 = 1.0e4 * reshape( (/ &
+!       !   0      02      N2       N      NO
+!       !---------------------------------+
+!       0.000,  0.260,  0.260,  0.300,  0.181, &             !  O
+!       0.260,  0.000,  0.181,  0.220,  0.181, &             ! O2
+!       0.260,  0.181,  0.000,  0.220,  0.181, &             ! N2
+!       0.300,  0.220,  0.220,  0.000,  0.181, &             !  N
+!       0.181,  0.181,  0.181,  0.181,  0.000 /), (/5,5/) )  ! NO
+!
+!  ! These are the exponents
+!  real, parameter, dimension(5, 5) :: DiffExp = reshape( (/ &
+!       ! 0      02     N2
+!       !---------------------------------+
+!       0.00,  0.75,  0.75, 0.75,  0.75, &             ! O
+!       0.75,  0.00,  0.75, 0.75,  0.75, &             ! O2
+!       0.75,  0.75,  0.00, 0.75,  0.75, &             ! N2
+!       0.75,  0.75,  0.75, 0.00,  0.75, &            !N
+!       0.75,  0.75,  0.75, 0.75,  0.0  /), (/5,5/) )  ! NO
+
+!  real, parameter, dimension(4, 4) :: Diff0 = 1.0e4 * reshape( (/ &
+!       ! 0      02     N2      N     NO
+!       !---------------------------------+
+!       0.00,  0.260, 0.260, 0.300, &            ! O
+!       0.26,  0.000, 0.181, 0.220, &            ! O2
+!       0.26,  0.181, 0.000, 0.220, &            ! N2
+!       0.30,  0.220, 0.220, 0.000 /), (/4,4/) )  ! N
+!
+!  ! These are the exponents
+!  real, parameter, dimension(4, 4) :: DiffExp = reshape( (/ &
+!       ! 0      02     N2
+!       !---------------------------------+
+!       0.00,  0.75,  0.75, 0.75, &             ! O
+!       0.75,  0.00,  0.75, 0.75, &             ! O2
+!       0.75,  0.75,  0.00, 0.75, &             ! N2
+!       0.75,  0.75,  0.75, 0.00 /), (/4,4/) )  ! N
+
+!!!!!!!  real,  AltMinIono=100.0 ! in km
+
+contains
+
+  subroutine init_planet
+
+    use ModTime
+
+    integer :: itime(7)
+
+    Mass(iH_)    = 1.0 * AMU
+    Mass(iHe_)   = 4.0 * AMU
+    Mass(iN_4S_) = 14.0 * AMU
+    Mass(iO_3P_)  = 16.0 * AMU
+    Mass(iN_2D_) = Mass(iN_4S_)
+    Mass(iN_2P_) = Mass(iN_4S_)
+    Mass(iN2_)   = 2*Mass(iN_4S_)
+    Mass(iO2_)   = 2*Mass(iO_3P_)
+    Mass(iNO_)   = Mass(iN_4S_)+Mass(iO_3P_)
+    Mass(iCO2_)  = 12.0*AMU + 2*Mass(iO_3P_)
+
+    cSpecies(iH_)    = "H"
+    cSpecies(iHe_)   = "He"
+    cSpecies(iO_3P_) = "O(!U3!NP)"
+    cSpecies(iO2_)   = "O!D2!N"
+    cSpecies(iN2_)   = "N!D2!N"
+    cSpecies(iN_4S_) = "N(!U4!NS)"
+    cSpecies(iN_2D_) = "N(!U2!ND)"
+    cSpecies(iN_2P_) = "N(!U2!NP)"
+    cSpecies(iNO_)   = "NO"
+    cSpecies(iO_1D_) = "O(!U1!ND)"
+    cSpecies(iCO2_)   = "CO!D2!N"
+!    cSpecies(iAr_)   = "Ar"
+
+    cIons(iO_4SP_) = "O_4SP_!U+!N"
+    cIons(iO2P_)   = "O!D2!U+!N"
+    cIons(iN2P_)   = "N!D2!U+!N"
+    cIons(iNP_)    = "N!U+!N"
+    cIons(iNOP_)   = "NO!U+!N"
+    cIons(iO_2DP_) = "O(!U2!ND)!U+!N"
+    cIons(iO_2PP_) = "O(!U2!NP)!U+!N"
+    cIons(iHP_)    = "H!U+!N"
+    cIons(iHeP_)   = "He!U+!N"
+    cIons(ie_)     = "e-"
+
+    Vibration(iO_3P_)    = 5.0
+    Vibration(iO2_)   = 7.0
+    Vibration(iN2_)   = 7.0
+    if (nSpecies > 3) Vibration(iN_4S_) = 5.0
+    if (nSpecies > 4) Vibration(iNO_)   = 7.0
+
+    MassI(iO_4SP_) = Mass(iO_3P_)
+    MassI(iO_2DP_) = Mass(iO_3P_)
+    MassI(iO_2PP_) = Mass(iO_3P_)
+    MassI(iO2P_) = Mass(iO2_)
+    MassI(iNP_) = Mass(iN_2D_)
+    MassI(iN2P_) = Mass(iN2_)
+    MassI(iHP_) = Mass(iH_)
+    MassI(iHeP_) = Mass(iHe_)
+    MassI(iNOP_) = Mass(iN_4S_) + Mass(iO_3P_)
+    MassI(ie_) = Mass_Electron
+
+    VertTau = 1.0e9
+
+    itime = 0
+    itime(1) = iVernalYear
+    itime(2) = iVernalMonth
+    itime(3) = iVernalDay
+    itime(4) = iVernalHour
+    itime(5) = iVernalMinute
+    itime(6) = iVernalSecond
+    call time_int_to_real(itime, VernalTime)
+
+  end subroutine init_planet
+
+!! Placeholder subroutines (for Titan specific Phyisics)
+
+  subroutine init_radcooling
+  return
+  end subroutine init_radcooling
+
+  subroutine init_magheat
+  return
+  end subroutine init_magheat
+
+  subroutine init_isochem
+  return
+  end subroutine init_isochem
+
+  subroutine init_aerosol
+  return
+  end subroutine init_aerosol
+
+  subroutine init_topography
+    return
+  end subroutine init_topography
+
+end module ModPlanet

Deleted: DART/branches/development/models/gitm/GITM2/src/ModKind.f90
===================================================================
--- DART/branches/gitm/models/gitm/GITM2/src/ModKind.f90	2013-05-31 21:50:30 UTC (rev 6215)
+++ DART/branches/development/models/gitm/GITM2/src/ModKind.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -1,29 +0,0 @@
-!^CFG COPYRIGHT UM
-!BOP
-!MODULE: ModKind - define various precisions in a machine independent way
-
-!DESCRIPTION:
-! The Fortran 77 style real*4 and real*8 declarations are obsolete,
-! and compilers often issue warnings. The real and double precision
-! types are machine and compiler flag dependent.
-! The Fortran 90 way is to define the {\bf kind} parameter.
-! Typical usage:
-!\begin{verbatim}
-! real(Real8_) :: CpuTime  ! variable declaration
-! CpuTime = 0.0_Real8_     ! 8 byte real constant
-!\end{verbatim}
-
-!INTERFACE:
-module ModKind
-
-  !PUBLIC DATA MEMBERS:
-  integer, parameter :: Real4_ = selected_real_kind(6,30)
-  integer, parameter :: Real8_ = selected_real_kind(12,100)
-  integer, parameter :: Int8_  = selected_int_kind(16)
-
-  ! Number of bytes in the default real number (precision)
-  ! This is standard F90 initialization expression but may give warnings:
-  integer, parameter :: nByteReal = 4 + (1.00000000041 - 1.0)*10000000000.0
-
-  !EOP
-end module ModKind

Copied: DART/branches/development/models/gitm/GITM2/src/ModKind.f90 (from rev 6215, DART/branches/gitm/models/gitm/GITM2/src/ModKind.f90)
===================================================================
--- DART/branches/development/models/gitm/GITM2/src/ModKind.f90	                        (rev 0)
+++ DART/branches/development/models/gitm/GITM2/src/ModKind.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -0,0 +1,29 @@
+!^CFG COPYRIGHT UM
+!BOP
+!MODULE: ModKind - define various precisions in a machine independent way
+
+!DESCRIPTION:
+! The Fortran 77 style real*4 and real*8 declarations are obsolete,
+! and compilers often issue warnings. The real and double precision
+! types are machine and compiler flag dependent.
+! The Fortran 90 way is to define the {\bf kind} parameter.
+! Typical usage:
+!\begin{verbatim}
+! real(Real8_) :: CpuTime  ! variable declaration
+! CpuTime = 0.0_Real8_     ! 8 byte real constant
+!\end{verbatim}
+
+!INTERFACE:
+module ModKind
+
+  !PUBLIC DATA MEMBERS:
+  integer, parameter :: Real4_ = selected_real_kind(6,30)
+  integer, parameter :: Real8_ = selected_real_kind(12,100)
+  integer, parameter :: Int8_  = selected_int_kind(16)
+
+  ! Number of bytes in the default real number (precision)
+  ! This is standard F90 initialization expression but may give warnings:
+  integer, parameter :: nByteReal = 4 + (1.00000000041 - 1.0)*10000000000.0
+
+  !EOP
+end module ModKind

Deleted: DART/branches/development/models/gitm/GITM2/src/ModSize.f90
===================================================================
--- DART/branches/gitm/models/gitm/GITM2/src/ModSize.f90	2013-05-31 21:50:30 UTC (rev 6215)
+++ DART/branches/development/models/gitm/GITM2/src/ModSize.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -1,12 +0,0 @@
-
-module ModSizeGitm
-
-  integer, parameter :: nLons = 9
-  integer, parameter :: nLats = 9
-  integer, parameter :: nAlts = 50
-
-  integer, parameter :: nBlocksMax = 4
-
-  integer :: nBlocks
-
-end module ModSizeGitm

Copied: DART/branches/development/models/gitm/GITM2/src/ModSize.f90 (from rev 6215, DART/branches/gitm/models/gitm/GITM2/src/ModSize.f90)
===================================================================
--- DART/branches/development/models/gitm/GITM2/src/ModSize.f90	                        (rev 0)
+++ DART/branches/development/models/gitm/GITM2/src/ModSize.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -0,0 +1,12 @@
+
+module ModSizeGitm
+
+  integer, parameter :: nLons = 9
+  integer, parameter :: nLats = 9
+  integer, parameter :: nAlts = 50
+
+  integer, parameter :: nBlocksMax = 4
+
+  integer :: nBlocks
+
+end module ModSizeGitm

Deleted: DART/branches/development/models/gitm/GITM2/src/ModTime.f90
===================================================================
--- DART/branches/gitm/models/gitm/GITM2/src/ModTime.f90	2013-05-31 21:50:30 UTC (rev 6215)
+++ DART/branches/development/models/gitm/GITM2/src/ModTime.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -1,193 +0,0 @@
-
-module ModTime
-
-  use ModKind, ONLY: Real8_
-  implicit none
-
-  ! Time variables
-
-  real                  :: tSimulation = 0.0
-  integer, dimension(7) :: iTimeArray
-  real(Real8_)          :: CurrentTime, EndTime, StartTime, VernalTime
-  real(Real8_)          :: RestartTime
-  real(Real8_)          :: PauseTime
-  real                  :: utime
-  integer               :: iJulianDay, iDay
-  integer               :: iStep = 1
-
-  integer, parameter :: iYear_   = 1
-  integer, parameter :: iMonth_  = 2
-  integer, parameter :: iDay_    = 3
-  integer, parameter :: iHour_   = 4
-  integer, parameter :: iMinute_ = 5
-  integer, parameter :: iSecond_ = 6
-
-!contains
-!
-!  integer function jday(year, mon, day) result(Julian_Day)
-!
-!    implicit none
-!
-!    integer :: i
-!    integer, dimension(1:12) :: dayofmon
-!    integer :: year, mon, day
-!
-!    dayofmon(1) = 31
-!    dayofmon(2) = 28
-!    dayofmon(3) = 31
-!    dayofmon(4) = 30
-!    dayofmon(5) = 31
-!    dayofmon(6) = 30
-!    dayofmon(7) = 31
-!    dayofmon(8) = 31
-!    dayofmon(9) = 30
-!    dayofmon(10) = 31
-!    dayofmon(11) = 30
-!    dayofmon(12) = 31
-!
-!    if (mod(year,4).eq.0) dayofmon(2) = dayofmon(1) + 1
-!    Julian_Day = 0
-!    do i = 1, mon-1
-!       Julian_Day = Julian_Day + dayofmon(i)
-!    enddo
-!    Julian_Day = Julian_Day + day
-!
-!  end function jday
-!
-!  subroutine time_int_to_real(itime, timereal)
-!
-!    implicit none
-!
-!    integer, dimension(1:12) :: dayofmon
-!    integer, dimension(1:7) :: itime
-!    double precision :: timereal
-!    integer :: nyear, nleap, nmonth, nday, nhour, nmin, nsec, i
-!
-!    dayofmon(1) = 31
-!    dayofmon(2) = 28
-!    dayofmon(3) = 31
-!    dayofmon(4) = 30
-!    dayofmon(5) = 31
-!    dayofmon(6) = 30
-!    dayofmon(7) = 31
-!    dayofmon(8) = 31
-!    dayofmon(9) = 30
-!    dayofmon(10) = 31
-!    dayofmon(11) = 30
-!    dayofmon(12) = 31
-!
-!    if (mod(itime(1),4).eq.0) dayofmon(2) = 29
-!
-!    timereal = 0.0;
-!
-!    if (itime(1) > 1900) then
-!       nyear = itime(1) - 1965
-!    else 
-!       if (itime(1) > 65) then
-!          nyear = itime(1) - 65 
-!       else 
-!          nyear = itime(1) + 100 - 65
-!       endif
-!    endif
-!    nleap = nyear/4
-!
-!    nmonth = itime(2) - 1
-!
-!    nday = 0
-!
-!    do i=1, nmonth
-!       nday = nday + dayofmon(i)
-!    enddo
-!
-!    nday = nday + itime(3) - 1
-!    nhour = itime(4)
-!    nmin = itime(5)
-!    nsec = itime(6)
-!
-!    timereal = (dble(nsec) * dble(1.0)) +                  &
-!         (dble(nmin) * dble(60.0)) +                       &
-!         (dble(nhour) * dble(60.0*60.0)) +                 &
-!         (dble(nday) * dble(24.0*60.0*60.0)) +             &
-!         (dble(nleap) * dble(24.0*60.0*60.0)) +            &
-!         (dble(nyear) * dble(365.0*24.0*60.0*60.0)) +      &
-!         itime(7)/1000.0
-!
-!  end subroutine time_int_to_real
-!
-!
-!
-!  subroutine time_real_to_int(timereal, itime)
-!
-!    implicit none
-!
-!    integer, dimension(1:12) :: dayofmon
-!    integer, dimension(1:7) :: itime
-!    double precision :: timereal
-!    integer :: nyear, nleap, nmonth, nday, nhour, nmin, nsec
-!    double precision :: speryear = 31536000.0
-!    double precision :: sperday = 86400.0
-!    double precision :: sperhour = 3600.0
-!    double precision :: spermin = 60.0
-!    double precision :: timeleft
-!
-!    dayofmon(1) = 31
-!    dayofmon(2) = 28
-!    dayofmon(3) = 31
-!    dayofmon(4) = 30
-!    dayofmon(5) = 31
-!    dayofmon(6) = 30
-!    dayofmon(7) = 31
-!    dayofmon(8) = 31
-!    dayofmon(9) = 30
-!    dayofmon(10) = 31
-!    dayofmon(11) = 30
-!    dayofmon(12) = 31
-!
-!    nyear = int(timereal/speryear)
-!    nleap = nyear/4
-!    nday = int((timereal - (dble(nyear)*speryear))/sperday)
-!
-!    if (nday.le.nleap) then
-!       nyear = int((timereal - (dble(nleap)*sperday))/speryear)
-!       nleap = nyear/4
-!       nday = int((timereal - (dble(nyear)*speryear))/sperday)
-!       if (nday.le.nleap) then
-!          nyear = int((timereal - (dble(nleap)*sperday))/speryear)
-!          nleap = nyear/4
-!          nday = int((timereal - (dble(nyear)*speryear))/sperday)
-!       endif
-!    endif
-!
-!    if (mod((nyear+65),4).eq.0) dayofmon(2) = dayofmon(2) + 1
-!
-!    nday = nday - nleap
-!
-!    timeleft = timereal - dble(nyear)*speryear
-!    timeleft = timeleft - dble(nday+nleap)*sperday
-!
-!    nhour = int(timeleft/sperhour)
-!    timeleft = timeleft - dble(nhour)*sperhour
-!
-!    nmin = int(timeleft/spermin)
-!    timeleft = timeleft - dble(nmin)*spermin
-!
-!    nsec = int(timeleft)
-!
-!    nmonth = 1;
-!
-!    do while (nday.ge.dayofmon(nmonth))
-!       nday = nday - dayofmon(nmonth)
-!       nmonth = nmonth + 1
-!    end do
-!
-!    itime(1) = nyear + 1965
-!    itime(2) = nmonth
-!    itime(3) = nday + 1
-!    itime(4) = nhour
-!    itime(5) = nmin
-!    itime(6) = nsec
-!    itime(7) = timeleft - nsec
-!
-!  end subroutine time_real_to_int
-
-end module ModTime

Copied: DART/branches/development/models/gitm/GITM2/src/ModTime.f90 (from rev 6215, DART/branches/gitm/models/gitm/GITM2/src/ModTime.f90)
===================================================================
--- DART/branches/development/models/gitm/GITM2/src/ModTime.f90	                        (rev 0)
+++ DART/branches/development/models/gitm/GITM2/src/ModTime.f90	2013-06-01 17:38:29 UTC (rev 6221)
@@ -0,0 +1,193 @@
+
+module ModTime
+
+  use ModKind, ONLY: Real8_
+  implicit none
+
+  ! Time variables
+
+  real                  :: tSimulation = 0.0
+  integer, dimension(7) :: iTimeArray
+  real(Real8_)          :: CurrentTime, EndTime, StartTime, VernalTime
+  real(Real8_)          :: RestartTime
+  real(Real8_)          :: PauseTime
+  real                  :: utime
+  integer               :: iJulianDay, iDay
+  integer               :: iStep = 1
+
+  integer, parameter :: iYear_   = 1
+  integer, parameter :: iMonth_  = 2
+  integer, parameter :: iDay_    = 3
+  integer, parameter :: iHour_   = 4
+  integer, parameter :: iMinute_ = 5
+  integer, parameter :: iSecond_ = 6
+
+!contains
+!
+!  integer function jday(year, mon, day) result(Julian_Day)
+!
+!    implicit none
+!
+!    integer :: i
+!    integer, dimension(1:12) :: dayofmon
+!    integer :: year, mon, day
+!
+!    dayofmon(1) = 31
+!    dayofmon(2) = 28
+!    dayofmon(3) = 31
+!    dayofmon(4) = 30
+!    dayofmon(5) = 31
+!    dayofmon(6) = 30
+!    dayofmon(7) = 31
+!    dayofmon(8) = 31
+!    dayofmon(9) = 30
+!    dayofmon(10) = 31
+!    dayofmon(11) = 30
+!    dayofmon(12) = 31
+!
+!    if (mod(year,4).eq.0) dayofmon(2) = dayofmon(1) + 1
+!    Julian_Day = 0
+!    do i = 1, mon-1
+!       Julian_Day = Julian_Day + dayofmon(i)
+!    enddo
+!    Julian_Day = Julian_Day + day
+!
+!  end function jday
+!
+!  subroutine time_int_to_real(itime, timereal)
+!
+!    implicit none
+!
+!    integer, dimension(1:12) :: dayofmon
+!    integer, dimension(1:7) :: itime
+!    double precision :: timereal
+!    integer :: nyear, nleap, nmonth, nday, nhour, nmin, nsec, i
+!
+!    dayofmon(1) = 31
+!    dayofmon(2) = 28
+!    dayofmon(3) = 31
+!    dayofmon(4) = 30
+!    dayofmon(5) = 31
+!    dayofmon(6) = 30
+!    dayofmon(7) = 31
+!    dayofmon(8) = 31
+!    dayofmon(9) = 30
+!    dayofmon(10) = 31
+!    dayofmon(11) = 30
+!    dayofmon(12) = 31
+!
+!    if (mod(itime(1),4).eq.0) dayofmon(2) = 29
+!
+!    timereal = 0.0;
+!
+!    if (itime(1) > 1900) then
+!       nyear = itime(1) - 1965
+!    else 
+!       if (itime(1) > 65) then
+!          nyear = itime(1) - 65 
+!       else 
+!          nyear = itime(1) + 100 - 65
+!       endif
+!    endif
+!    nleap = nyear/4
+!
+!    nmonth = itime(2) - 1
+!
+!    nday = 0
+!
+!    do i=1, nmonth
+!       nday = nday + dayofmon(i)
+!    enddo
+!
+!    nday = nday + itime(3) - 1
+!    nhour = itime(4)
+!    nmin = itime(5)
+!    nsec = itime(6)
+!
+!    timereal = (dble(nsec) * dble(1.0)) +                  &
+!         (dble(nmin) * dble(60.0)) +                       &
+!         (dble(nhour) * dble(60.0*60.0)) +                 &
+!         (dble(nday) * dble(24.0*60.0*60.0)) +             &
+!         (dble(nleap) * dble(24.0*60.0*60.0)) +            &
+!         (dble(nyear) * dble(365.0*24.0*60.0*60.0)) +      &
+!         itime(7)/1000.0
+!
+!  end subroutine time_int_to_real
+!
+!
+!
+!  subroutine time_real_to_int(timereal, itime)
+!
+!    implicit none
+!
+!    integer, dimension(1:12) :: dayofmon
+!    integer, dimension(1:7) :: itime
+!    double precision :: timereal
+!    integer :: nyear, nleap, nmonth, nday, nhour, nmin, nsec
+!    double precision :: speryear = 31536000.0
+!    double precision :: sperday = 86400.0
+!    double precision :: sperhour = 3600.0
+!    double precision :: spermin = 60.0
+!    double precision :: timeleft
+!
+!    dayofmon(1) = 31
+!    dayofmon(2) = 28
+!    dayofmon(3) = 31
+!    dayofmon(4) = 30
+!    dayofmon(5) = 31

@@ Diff output truncated at 40000 characters. @@


More information about the Dart-dev mailing list