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

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

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

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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22