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

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

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


Revision 1.2 - (hide annotations) (download) (as text)
Fri Sep 16 18:52:27 2016 UTC (8 years, 10 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.1: +94 -96 lines
File MIME type: application/x-tex
- add gencost and genctrl documentation (with major contributions from C. Wolfe)

1 gforget 1.2 \section{PROFILES: model-data comparisons at observed locations}
2     \label{sec:pkg:profiles}
3     \begin{rawhtml}
4     <!-- CMIREDIR:profiles: -->
5     \end{rawhtml}
6    
7     \bigskip
8    
9     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).
10    
11     \bigskip
12    
13     pkg/profiles is associated with three CPP keys: \\
14     (k1) ALLOW\_PROFILES \\
15     (k2) ALLOW\_PROFILES\_GENERICGRID \\
16     (k3) ALLOW\_PROFILES\_CONTRIBUTION \\
17     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.
18    
19     \bigskip
20    
21     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.
22    
23     \bigskip
24    
25     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 \\
26     MITgcm\_contrib/gael/profilesMatlabProcessing/ \\
27     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).
28    
29     \bigskip
30    
31     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.}
32    
33     \bigskip
34    
35     \begin{table}[htbp]
36     \begin{tabbing}
37     \#\\
38     \# ******************\\
39     \# PROFILES cost function\\
40     \# ****************** \\
41     \&PROFILES\_NML\\
42     \#\\
43     profilesfiles(1)= 'ARGOifremer\_r8',\\
44     mult\_profiles(1,1) = 1.,\\
45     mult\_profiles(1,2) = 1.,\\
46     profilesfiles(2)= 'XBT\_v5',\\
47     mult\_profiles(2,1) = 1.,\\
48     \#\\
49     /\\
50     \end{tabbing}
51     \caption{pkg/profiles: data.profiles example.}
52     \label{PkgProfNamelist}
53     \end{table}
54    
55    
56    
57     \begin{table}[phtb]
58     \begin{tabbing}
59     netcdf XBT\_v5 \{\\
60     dimensions:\\
61     \hspace{0.1cm} \= i\=PROF = 278026 ;\\
62     \> iDEPTH = 55 ;\\
63     \> lTXT = 30 ;\\
64     variables:\\
65     \> double depth(iDEPTH) ;\\
66     \> \> depth:units = "meters" ;\\
67     \> double prof\_YYYYMMDD(iPROF) ;\\
68     \> \> prof\_YYYYMMDD:missing\_value = -9999. ;\\
69     \> \> prof\_YYYYMMDD:long\_name = "year (4 digits), month (2 digits), day (2 digits)" ;\\
70     \> double prof\_HHMMSS(iPROF) ;\\
71     \> \> prof\_HHMMSS:missing\_value = -9999. ;\\
72     \> \> prof\_HHMMSS:long\_name = "hour (2 digits), minute (2 digits), seconde (2 digits)" ;\\
73     \> double prof\_lon(iPROF) ;\\
74     \> \> prof\_lon:units = "(degree E)" ;\\
75     \> \> prof\_lon:missing\_value = -9999. ;\\
76     \> double prof\_lat(iPROF) ;\\
77     \> \> prof\_lat:units = "(degree N)" ;\\
78     \> \> prof\_lat:missing\_value = -9999. ;\\
79     \> char prof\_descr(iPROF, lTXT) ;\\
80     \> \> prof\_descr:long\_name = "profile description" ;\\
81     \> double prof\_T(iPROF, iDEPTH) ;\\
82     \> \> prof\_T:long\_name = "potential temperature" ;\\
83     \> \> prof\_T:units = "degree Celsius" ;\\
84     \> \> prof\_T:missing\_value = -9999. ;\\
85     \> double prof\_Tweight(iPROF, iDEPTH) ;\\
86     \> \> prof\_Tweight:long\_name = "weights" ;\\
87     \> \> prof\_Tweight:units = "(degree Celsius)\^-2" ;\\
88     \> \> prof\_Tweight:missing\_value = -9999. ;\\
89     \}\\
90     \end{tabbing}
91     \caption{pkg/profiles: input file structure as would be shown by "ncdump -h ARGOifremer\_r8.nc".}
92     \label{PkgProfInput}
93     \end{table}
94    

  ViewVC Help
Powered by ViewVC 1.1.22