The start.nc and startfi.nc input files
Contents
GCM initial condition files
To run, the GCM requires initial conditions (i.e. values of state variables at a given instant). These are provided as two NetCDF files, start.nc (which contains state variables for the dynamics) and startfi.nc (state variables for the physics). As these files contain information about fields at given grid points, they must be at the same resolution as the GCM; in other words, the GCM does not do any interpolation of initial conditions which must thus be provided on the exact same grid that the model uses.
start.nc file Contents
A dump of the header of a typical start.nc (obtained via ncdump -h start.nc) will show contents of the likes of:
netcdf start { dimensions: index = 100 ; rlonu = 33 ; latitude = 33 ; longitude = 33 ; rlatv = 32 ; altitude = 15 ; interlayer = 16 ; Time = UNLIMITED ; // (1 currently) variables: float controle(index) ; controle:title = "Parametres de controle" ; float rlonu(rlonu) ; rlonu:title = "Longitudes des points U" ; float rlatu(latitude) ; rlatu:title = "Latitudes des points U" ; float rlonv(longitude) ; rlonv:title = "Longitudes des points V" ; float rlatv(rlatv) ; rlatv:title = "Latitudes des points V" ; float ap(interlayer) ; ap:title = "Coef A: hybrid pressure levels" ; float bp(interlayer) ; bp:title = "Coef B: hybrid sigma levels" ; float aps(altitude) ; aps:title = "Coef AS: hybrid pressure at midlayers" ; float bps(altitude) ; bps:title = "Coef BS: hybrid sigma at midlayers" ; float presnivs(altitude) ; float latitude(latitude) ; latitude:units = "degrees_north" ; latitude:long_name = "North latitude" ; float longitude(longitude) ; longitude:long_name = "East longitude" ; longitude:units = "degrees_east" ; float altitude(altitude) ; altitude:long_name = "pseudo-alt" ; altitude:units = "km" ; altitude:positive = "up" ; float cu(latitude, rlonu) ; cu:title = "Coefficient de passage pour U" ; float cv(rlatv, longitude) ; cv:title = "Coefficient de passage pour V" ; float aire(latitude, longitude) ; aire:title = "Aires de chaque maille" ; float phisinit(latitude, longitude) ; phisinit:title = "Geopotentiel au sol" ; float Time(Time) ; Time:title = "Temps de simulation" ; Time:units = "days since 1-01-01 00:00:00" ; float ucov(Time, altitude, latitude, rlonu) ; ucov:title = "Vitesse U" ; float vcov(Time, altitude, rlatv, longitude) ; vcov:title = "Vitesse V" ; float teta(Time, altitude, latitude, longitude) ; teta:title = "Temperature" ; float co2_ice(Time, altitude, latitude, longitude) ; co2_ice:title = "Traceur co2_ice" ; float h2o_ice(Time, altitude, latitude, longitude) ; h2o_ice:title = "Traceur h2o_ice" ; float h2o_vap(Time, altitude, latitude, longitude) ; h2o_vap:title = "Traceur h2o_vap" ; float masse(Time, altitude, latitude, longitude) ; masse:title = "C est quoi ?" ; float ps(Time, latitude, longitude) ; ps:title = "Pression au sol" ; // global attributes: :title = "Dynamic start file" ; }
controle
The variable "controle" lists a set of parameters. The first three parameters are always:
- 1 : im
- 2 : jm
- 3 : lllm
Then there is either for the generic/mars/pluto model:
- 4 : day_ref
or for earth/titan:
- 4 : day_ini
- 5 : annee_ref
Then idecal is set to 4 in the generic/mars/pluto model and 5 for earth/titan.
The list follows as such:
- idecal+1 : rad
- idecal+2 : omeg
- idecal+3 : g
- idecal+4 : cpp
- idecal+5 : kappa
- idecal+6 : daysec (seconds in a day)
- idecal+7 : dtvr (seconds in a dynamic step?)
- idecal+8 : etot0
- idecal+9 : ptot0
- idecal+10 : ztot0 (periastron)
- idecal+11 : stot0 (apoastron)
- idecal+12 : ang0
- idecal+13 : pa
- idecal+14 : preff (used in ap(l)+bp(l)*preff)
- idecal+15 : clon
- idecal+16 : clat
- idecal+17 : grossismx
- idecal+18 : grossismy
Other parameters
TODO: EXPLAIN SOME MAIN VARIABLES/DIMENSIONS
startfi.nc File Contents
A dump of the header of a typical startfi.nc (obtained via ncdump -h startfi.nc) will show contents of the likes of:
netcdf startfi { dimensions: index = 100 ; physical_points = 994 ; subsurface_layers = 18 ; nlayer_plus_1 = 16 ; number_of_advected_fields = 3 ; nlayer = 15 ; variables: float controle(index) ; controle:title = "Control parameters" ; float soildepth(subsurface_layers) ; soildepth:title = "Soil mid-layer depth" ; float longitude(physical_points) ; longitude:title = "Longitudes of physics grid" ; float latitude(physical_points) ; latitude:title = "Latitudes of physics grid" ; float area(physical_points) ; area:title = "Mesh area" ; float phisfi(physical_points) ; phisfi:title = "Geopotential at the surface" ; float albedodat(physical_points) ; albedodat:title = "Albedo of bare ground" ; float ZMEA(physical_points) ; ZMEA:title = "Relief: mean relief" ; float ZSTD(physical_points) ; ZSTD:title = "Relief: standard deviation" ; float ZSIG(physical_points) ; ZSIG:title = "Relief: sigma parameter" ; float ZGAM(physical_points) ; ZGAM:title = "Relief: gamma parameter" ; float ZTHE(physical_points) ; ZTHE:title = "Relief: theta parameter" ; float inertiedat(subsurface_layers, physical_points) ; inertiedat:title = "Soil thermal inertia" ; float tsurf(physical_points) ; tsurf:title = "Surface temperature" ; float tsoil(subsurface_layers, physical_points) ; tsoil:title = "Soil temperature" ; float emis(physical_points) ; emis:title = "Surface emissivity" ; float q2(nlayer_plus_1, physical_points) ; q2:title = "pbl wind variance" ; float cloudfrac(nlayer, physical_points) ; cloudfrac:title = "Cloud fraction" ; float totcloudfrac(physical_points) ; totcloudfrac:title = "Total fraction" ; float hice(physical_points) ; hice:title = "Height of oceanic ice" ; float co2_ice(physical_points) ; co2_ice:title = "tracer on surface" ; float h2o_ice(physical_points) ; h2o_ice:title = "tracer on surface" ; float h2o_vap(physical_points) ; h2o_vap:title = "tracer on surface" ; // global attributes: :title = "Physics start file" ; }
TODO: EXPLAIN SOME MAIN VARIABLES/DIMENSIONS/GRID STRUCTURE