New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
README.md in NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF – NEMO

source: NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/README.md @ 13682

Last change on this file since 13682 was 13682, checked in by laurent, 3 years ago

Still improving the oce+ice capable STATION_ASF...

File size: 6.6 KB
Line 
1# *Station Air-Sea Fluxes* demonstration case
2
3Last successful test done with NEMOGCM trunk: `r13263`
4
5Author: Laurent Brodeau, 2020
6
7NOTE: if working with the trunk of NEMO, you are strongly advised to use the same test-case but on the `NEMO-examples` GitHub depo:
8https://github.com/NEMO-ocean/NEMO-examples/tree/master/STATION_ASF
9
10## Objectives
11
12```STATION_ASF``` is a demonstration test-case that mimics a (static) in-situ station (buoy, platform) dedicated to the estimation of surface air-sea fluxes by means of *widely-measured* (bulk) meteorological surface parameters.
13
14```STATION_ASF``` has been constructed by merging the *single column* and the *standalone surface module* configurations of NEMO. In short, it can be defined as "SAS meets C1D". As such, the spatial domain of ```STATION_ASF``` is punctual (1D, well actually 3 x 3 as in C1D).
15
16```STATION_ASF``` is therefore a versatile tool, and extremely lightweight in terms of computing requirements, to test the different bulk algorithms and cool-skin/warm-layer parameterization options included in NEMO.
17
18As input ```STATION_ASF``` will require the traditional *bulk* sea surface parameters:
19
20- Bulk sea surface temperature (SST) at _z<sub>SST</sub>_ meters below the surface
21- Surface current vector
22- Sea surface salinity
23
24as well as the usual surface atmospheric state:
25
26- air temperature at _z<sub>t</sub>_ meters above the surface
27- air humidity  at _z<sub>t</sub>_ meters above the surface (specific humidity or relative humidity or dew-point temperature)
28- wind speed vector at _z<sub>u</sub>_ meters above the surface
29- Sea level atmospheric pressure (SLP)
30- Downwelling solar radiation
31- Downwelling longwave radiation
32
33### Example of diagnostics from `STATION_ASF`
34
35(Generated with script `./EXPREF/plot_station_asf_simple.py`)
36
37![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/01_temperatures_ECMWF.svg)
38
39![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/Cd.svg)
40
41![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/dT_skin.svg)
42
43![plot](https://github.com/NEMO-ocean/NEMO-examples/blob/master/STATION_ASF/figs/Qlat.svg)
44
45
46## Physical description
47
48### Important namelist parameters specific to STATION_ASF
49
50* ```rn_dept1@namusr_def:``` depth (m) at which the prescribed SST is taken (*i.e.* depth of first T-point); important due to impact on warm-layer estimate, the deeper, the more pronounced!
51
52* ```rn_lat1d,rn_lon1d@namc1d:``` fixed coordinates of the location of the station (buoy, platform, etc).
53
54* ```namsbc_blk:``` to be filled carefully, just as for "C1D", the prescribed surface ATMOSPHERIC state (files) are time series of shape 3x3 in space
55
56* ```namsbc_sas:``` to be filled carefully, just as for "C1D", the prescribed surface OCEAN state (files) are time series of shape 3x3 in space
57
58
59
60## Input files to test STATION ASF
61
62One full year (2018) of processed hourly data from the PAPA station (buoy) is found into the `input_data` directory.
63These three files are everything you need to play with the set of *namelists* provided for this test-case.
64
65- ```Station_PAPA_50N-145W_atm_hourly_y2018.nc```  → contains hourly surface atmospheric state
66- ```Station_PAPA_50N-145W_precip_daily_y2018.nc``` → contains daily precipitation
67- ```Station_PAPA_50N-145W_oce_hourly_y2018.nc``` → contains hourly sea surface state
68
69For station PAPA (50.1 N, 144.9 W), air temperature and humidity are measured at 2.5 m, the wind speed at 4 m, and the SST at 1 m below the surface, hence the following namelist parameters are given:
70
71- `&namusr_def`
72  - ```rn_dept1 =    1.  ```
73- `&namc1d`
74  - ```rn_lat1d =  50.1 ```
75  - ```rn_lon1d = 215.1```
76- `&namsbc_blk`
77  - ```rn_zqt   =   2.5```
78  - ```rn_zu    =    4.```
79
80
81
82## Testing the sanity of the SBCBLK (bulk atmospheric forcing) interface of NEMO
83
84`STATION_ASF` can be used to perform a sanity test of the SBCBLK interface of
85NEMO.  It will test all the bulk-parameterization algorithms using an idealized
86forcing that includes a wide range of *SSX / surface atmospheric state*
87conditions to detect potential error / inconsitencies.  Both a short report and
88boolean output: *passed* or *failed* is provided as an output.
89
90First compile the `STATION_ASF` test-case as follows (compile with xios-2.5 support → check your ARCH file):
91   
92```./makenemo -a STATION_ASF -m <your_arch> -n STATION_ASF2 -j 4```
93
94(successfull compilation generates ```tests/STATION_ASF2/BLD/bin/nemo.exe```
95
96Move to: ```tests/STATION_ASF/EXPREF/```
97
98There, in script ``sbcblk_sanity_check.sh``, double check that the variables given a value in the first lines are consistent with your setup (it should).
99
100Launch the script:
101
102    $ ./sbcblk_sanity_check.sh
103
104
105The report is both interactively shown in the standard output and spwaned in the report file:
106
107- `SBCBLK.success` the test passed :)
108- `SBCBLK.fail` the test failed :(
109
110In case of failure, read the rapport to know which algorithm/computed variables did not pass the test... You should also re-run the script ``sbcblk_sanity_check.sh`` with the "more" argument:
111
112    $ ./sbcblk_sanity_check.sh more
113
114 This will generate more output such as figure of time series for the tested variables.
115
116### Dependencies
117
118In order for the python script `analyze_output.py` to work, you need `Python 3` with the following modules:
119- numpy
120- netCDF4
121- (matplotlib)
122
123
124
125
126
127
128## Playing with STATION_ASF
129
130First compile the test-case as follows (compile with xios-2.5 support → check your ARCH file):
131   
132```./makenemo -a STATION_ASF -m <your_arch> -n STATION_ASF2 -j 4```
133
134Move to: ```tests/STATION_ASF/EXPREF/```
135
136
137
138
139to launch 3 simulations (one for each bulk parameterization available). You need to adapt the following variable to your environment in the script:
140
141- ```NEMO_ROOT_DIR``` : NEMO root directory where to fetch compiled STATION_ASF ```nemo.exe``` + setup (such as ```${NEMO_ROOT_DIR}/tests/STATION_ASF```)
142
143- ```PROD_DIR``` :  Directory where to run the simulation
144
145- ```DATA_IN_DIR``` : Directory containing sea-surface + atmospheric forcings (found here in ```input_data/```)
146
147If everything goes according to plan, ``launch_sasf.sh`` should have generated the 3 following sets of output files into `${PROD_DIR}/output`:
148
149    STATION_ASF-COARE3p6_1h_20180101_20181231_gridT.nc
150    STATION_ASF-COARE3p6_1h_20180101_20181231_gridU.nc
151    STATION_ASF-COARE3p6_1h_20180101_20181231_gridV.nc
152    STATION_ASF-ECMWF_1h_20180101_20181231_gridT.nc
153    STATION_ASF-ECMWF_1h_20180101_20181231_gridU.nc
154    STATION_ASF-ECMWF_1h_20180101_20181231_gridV.nc
155    STATION_ASF-NCAR_1h_20180101_20181231_gridT.nc
156    STATION_ASF-NCAR_1h_20180101_20181231_gridU.nc
157    STATION_ASF-NCAR_1h_20180101_20181231_gridV.nc
158
159---
160
161*/Laurent, July 2020.*
162
Note: See TracBrowser for help on using the repository browser.