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.rst in NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/SANITY_CHECK – NEMO

source: NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/tests/STATION_ASF/SANITY_CHECK/README.rst @ 13837

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

Reorganization of the SBCBLK SANITY-CHECK of STATION_ASF!

File size: 4.5 KB
Line 
1Boolean Sanity Test of the SBCBLK interface of NEMO via the ``STATION_ASF`` test-case
2=====================================================================================
3
4Context
5-------
6
7Many *idealized/academic* test-cases included in NEMO can potentially be
8used in a manner that could detect potential inconsistencies or bugs
9mistakenly introduced in a particular "part/region" of the NEMO source
10code. The test-case would then return a green or a red light.
11
12In the future, this could help to build an automatized chain command to
13check that no bug is introduced at each new commit. As we are dealing
14with *idealized/academic* test-cases (which are typically designed to
15run on 1 processor), this approach has the advantage of being
16substantially faster and cheaper than the SETTE set of test experiments
17in terms of computational requirements. Because test-cases
18
19SBCBLK and ``STATION_ASF``
20--------------------------
21
22The primary goal of the bulk interface of NEMO (SBCBLK), is to provide
23NEMO with the surface boundary conditions (as fluxes):
24
25-  momentum flux (*a.k.a* wind stress)
26-  net heat flux (as *net non-solar* and *net solar* components)
27-  net freshwater flux (*a.k.a* E-P-R)
28
29``STATION_ASF`` is used to compute all these surface fluxes at
30particular spot (1D), based on time series of the sea-surface state
31(mainly SST) and near-surface atmospheric variables (air temperature,
32humidity, wind speed and downwelling radiative fluxes). Depending on the
33bulk parameterization chosen by the user (5 different algorithms used to
34estimate bulk transfer coefficients) these fluxes can differ
35significantly from one another significantly. Yet the magnitude of these
36fluxes is expected to remain within a certain "reasonable range" as
37these algorithms have all been designed to fit flux observations.
38
39The idea, here in this current sanity check, has been to define, for a
40given input pattern of atmospheric state and SST, the deviation from a
41normal + confidence range that clearly highlights a
42"non-realistic/crazy" value, hence revealing the existence of a bug
43somewhere...
44
45Just as an example, in the following conditions:
46
47-  *zu* = 10 m
48
49-  *zt* = 2 m
50
51-  *SST* = 22°C
52
53-  *tzt* = 20°C
54
55-  *RHzt* = 90 %
56
57-  *Uzu* = 5 m/s
58
59   ::
60
61       =========================================================================================================================
62       Algorithm:      coare3p0   |  coare3p6   |    ncar     |    ecmwf    |   andreas   || <units>  |  <mean>   |   <std dev>
63       =========================================================================================================================
64       Wind stress  =   35.93964      32.35383      35.64660      38.58376      30.10945     [mN/m^2]    34.52666     2.964582
65       Evaporation  =   2.288606      2.349655      2.300673      2.250562      1.936906     [mm/day]    2.225281     0.147623
66          QL        =  -64.86662     -66.59695     -65.20865     -63.78834     -54.89828     [W/m^2]    -63.07177     4.184117
67          QH        =  -17.76094     -18.23470     -16.66991     -16.74091     -14.39284     [W/m^2]    -16.75986     1.325787
68
69One can expect two typical outcomes for a non-successful sanity check:
70
71-  All bulk algorithms yield non-realistic fluxes, the cause for error
72   is therefore to be found outside of each algorithm. This can
73   typically be caused by corrupted input fields being passed to all
74   algorithms, for example it can be caused by a unit inconsistencies in
75   input variables (ex: atmospheric pressure provide in hPa rather than
76   Pa in the netCDF files, which yields corrupted air density, and in
77   turn will affect all flux estimates, regardless of the choice of the
78   bulk algorithm).
79-  Only a subset of bulk algorithms yield non-realistic fluxes, the
80   cause for error is therefore to be found inside these particular
81   algorithms.
82
83.. raw:: html
84
85   <!---
86   There are two main sources of errors to expect:
87   - 1 of the bulk algorithm is buggy, and will provide erroneous fluxes with respect to the other algorithms
88   - a more likely source of error is the presence of a bug outside the algorithm part, which, will lead to all algorithms to provide erroneous fluxes (example error linked to the unit of an input field, sign error, etc...), ex: broken computation of the air density, all fluxes are affected!
89   --->
90
91It is therefore not enough to test the fluxes against each other (from
92different algorithms); it is necessary to check all fluxes against a
93trustable reference plus/minus a tolerance for a particular set of
94conditions, that has been computed independently from NEMO!
Note: See TracBrowser for help on using the repository browser.