/[MITgcm]/manual/s_ecco/text/profiles.tex
ViewVC logotype

Contents of /manual/s_ecco/text/profiles.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Tue Jan 15 21:59:52 2008 UTC (16 years, 3 months ago) by gforget
Branch: MAIN
File MIME type: application/x-tex
pkg/profiles documentation

1 \section{Profiles: transect and float ocean sampling of MITgcm
2 \label{sectionprofiles}}
3 \begin{rawhtml}
4 <!-- CMIREDIR:profiles: -->
5 \end{rawhtml}
6
7 Author: Gael Forget
8
9 \bigskip
10
11 The purpose of pkg/profiles is to allow sampling of MITgcm runs according to a chosen pathway (after a ship or a drifter, along altimeter tracks, etc.), typically leading to easy model-data comparisons. Given input files that contain positions and dates, pkg/profiles will interpolate the model trajectory at the observed location. In particular, pkg/profiles can be used to do model-data comparison online and formulate a least-squares problem (ECCO application).
12
13 \bigskip
14
15 pkg/profiles is associated with three CPP keys: \\
16 (k1) ALLOW\_PROFILES \\
17 (k2) ALLOW\_PROFILES\_GENERICGRID \\
18 (k3) ALLOW\_PROFILES\_CONTRIBUTION \\
19 k1 switches the package on. By default, pkg/profiles assumes a regular lat-long grid. For other grids such as the cubed sphere, k2 and pre-processing (see below) are necessary. k3 switches the least-squares application on (pkg/ecco needed). pkg/profiles requires needs pkg/cal and netcdf libraries.
20
21 \bigskip
22
23 The namelist (data.profiles) is illustrated in table \ref{PkgProfNamelist}. This example includes two input netcdf files name (ARGOifremer\_r8.nc and XBT\_v5.nc are to be provided) and {\it cost function} multipliers (for least-squares only). The first index is a file number and the second index (in mult* only) is a variable number. By convention, the variable number is an integer ranging 1 to 6: temperature, salinity, zonal velocity, meridional velocity, sea surface height anomaly, and passive tracer.
24
25 \bigskip
26
27 The input file structure is illustrated in table \ref{PkgProfInput}. To create such files, one can use the netcdf\_ecco\_create.m matlab script, which can be checked out of \\
28 MITgcm\_contrib/gael/profilesMatlabProcessing/ \\
29 along with a full suite of matlab scripts associated with pkg/profiles. At run time, each file is scanned to determine which variables are included; these will be interpolated. The (final) output file structure is similar but with interpolated model values in prof\_T etc., and it contains model mask variables (e.g. prof\_Tmask). The very model output consists of one binary (or netcdf) file per processor. The final netcdf output is to be built from those using netcdf\_ecco\_recompose.m (offline).
30
31 \bigskip
32
33 When the k2 option is used (e.g. for cubed sphere runs), the input file is to be completed with interpolation grid points and coefficients computed offline using netcdf\_ecco\_GenericgridMain.m. Typically, you would first provide the standard namelist and files. After detecting that interpolation information is missing, the model will generate special grid files (profilesXCincl1PointOverlap* etc.) and then stop. You then want to run netcdf\_ecco\_GenericgridMain.m using the special grid files. {\it This operation could eventually be inlined.}
34
35 \bigskip
36
37 \begin{table}[htbp]
38 \begin{tabbing}
39 \#\\
40 \# ******************\\
41 \# PROFILES cost function\\
42 \# ****************** \\
43 \&PROFILES\_NML\\
44 \#\\
45 profilesfiles(1)= 'ARGOifremer\_r8',\\
46 mult\_profiles(1,1) = 1.,\\
47 mult\_profiles(1,2) = 1.,\\
48 profilesfiles(2)= 'XBT\_v5',\\
49 mult\_profiles(2,1) = 1.,\\
50 \#\\
51 /\\
52 \end{tabbing}
53 \caption{pkg/profiles: data.profiles example.}
54 \label{PkgProfNamelist}
55 \end{table}
56
57
58
59 \begin{table}[phtb]
60 \begin{tabbing}
61 netcdf XBT\_v5 \{\\
62 dimensions:\\
63 \hspace{0.1cm} \= i\=PROF = 278026 ;\\
64 \> iDEPTH = 55 ;\\
65 \> lTXT = 30 ;\\
66 variables:\\
67 \> double depth(iDEPTH) ;\\
68 \> \> depth:units = "meters" ;\\
69 \> double prof\_YYYYMMDD(iPROF) ;\\
70 \> \> prof\_YYYYMMDD:missing\_value = -9999. ;\\
71 \> \> prof\_YYYYMMDD:long\_name = "year (4 digits), month (2 digits), day (2 digits)" ;\\
72 \> double prof\_HHMMSS(iPROF) ;\\
73 \> \> prof\_HHMMSS:missing\_value = -9999. ;\\
74 \> \> prof\_HHMMSS:long\_name = "hour (2 digits), minute (2 digits), seconde (2 digits)" ;\\
75 \> double prof\_lon(iPROF) ;\\
76 \> \> prof\_lon:units = "(degree E)" ;\\
77 \> \> prof\_lon:missing\_value = -9999. ;\\
78 \> double prof\_lat(iPROF) ;\\
79 \> \> prof\_lat:units = "(degree N)" ;\\
80 \> \> prof\_lat:missing\_value = -9999. ;\\
81 \> char prof\_descr(iPROF, lTXT) ;\\
82 \> \> prof\_descr:long\_name = "profile description" ;\\
83 \> double prof\_T(iPROF, iDEPTH) ;\\
84 \> \> prof\_T:long\_name = "potential temperature" ;\\
85 \> \> prof\_T:units = "degree Celsius" ;\\
86 \> \> prof\_T:missing\_value = -9999. ;\\
87 \> double prof\_Tweight(iPROF, iDEPTH) ;\\
88 \> \> prof\_Tweight:long\_name = "weights" ;\\
89 \> \> prof\_Tweight:units = "(degree Celsius)\^-2" ;\\
90 \> \> prof\_Tweight:missing\_value = -9999. ;\\
91 \}\\
92 \end{tabbing}
93 \caption{pkg/profiles: input file structure as would be shown by "ncdump -h ARGOifremer\_r8.nc".}
94 \label{PkgProfInput}
95 \end{table}
96

  ViewVC Help
Powered by ViewVC 1.1.22