Changes between Version 6 and Version 7 of 2019WP/ASINTER-05_Brodeau_Advanced_Bulk


Ignore:
Timestamp:
2019-12-06T11:32:15+01:00 (8 months ago)
Author:
laurent
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • 2019WP/ASINTER-05_Brodeau_Advanced_Bulk

    v6 v7  
    2525||=Branch       || [source:/NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk]           || 
    2626||=Previewer(s) ||                                                                       || 
    27 ||=Reviewer(s)  ||                                                                       || 
     27||=Reviewer(s)  ||    Guillaume Samson                                                   || 
    2828||=Link         || [[ExtractUrl(.)]]                                                     || 
    2929 
     
    3131== Abstract == 
    3232 
    33 * 1/ Implement different state-of-the-art bulk formula parametrizations used to compute transfer coefficients (CD, CE, and CH) for estimates of turbulent air-sea fluxes: 
    34  * a/ NCAR (previously known as "CORE", Large and Yeager, 2004) 
    35  * b/ ECMWF (IFS@ECWMF) 
     33* 1/ Implement different state-of-the-art bulk formula parameterizations used to compute transfer coefficients (CD, CE, and CH) for estimates of turbulent air-sea fluxes: 
     34 * a/ NCAR (previously known as "CORE", Large and Yeager, 2004,2008) 
     35 * b/ ECMWF (IFS@ECWMF, cy45r1) 
    3636 * c/ COARE 3.0 (Fairall et al, 2003) 
    37  * d/ COARE 3.6 (Fairall et al, 2019) 
     37 * d/ COARE 3.6 (Edson et al, 2013; Fairall et al, 2019) 
    3838 
    39 * 2/ Implement, when relevant, their respective cool-skin and warm-layer parametrization for better estimate of the water temperature at the air-sea interface (which is the relevant temperature to estimate heat flux to the atmosphere). 
     39* 2/ Implement, when relevant, their respective cool-skin and warm-layer parameterization for better estimate of the water temperature at the air-sea interface (which is the relevant temperature to estimate heat flux to the atmosphere). 
    4040 * a/ NCAR → irrelevant 
    41  * b/ ECMWF → cool-skin & warm-layer 
    42  * c/ COARE → cool-skin only 
    43  * d/ COARE 3.6 → cool-skin & warm-layer 
     41 * b/ ECMWF → cool-skin & warm-layer of ECMWF 
     42 * c/ COARE 3.0 → cool-skin & warm-layer of COARE 
     43 * d/ COARE 3.6 → cool-skin & warm-layer of COARE 
    4444 
    4545* 3/ Improve the accuracy of various physical parameters used in the estimate of surface fluxes and previously assumed constant. 
    4646 
    47 * 4/ Implement more advanced bulk parametrization for turbulent "air-ice" fluxes of momentum, heat and freshwater over sea-ice 
     47* 4/ Implement more advanced bulk parameterization for turbulent "air-ice" fluxes of momentum, heat and freshwater over sea-ice 
    4848 
    4949== Description == 
     
    5656=== Modified modules ''aka'' source files === 
    5757 
    58 (Forked from NEMOGCM trunk at rev 11085) 
    59  
    60 * `DOM/phycst.F90` 
    61  * Moved/merged all physical parameters previously declared into `sbcblk.F90` into `phycst.F90` (keeping the name they had in phycst.F90 when previously declared in both modules with a different name) 
     58(Forked from NEMOGCM trunk at rev 11085, kept up-to-date with rev 12030 of the trunk) 
    6259 
    6360* `SBC/sbc_oce.F90` 
    64  * Added `tsk`, public 2D array to contain the sea-surface skin temperature from the cool-skin/warm-layer parametrization [Celsius] 
    6561 * Added `rhoa`, public 2D array to contain the air density at z=zu [kg/m3] 
    6662 
    6763* `SBC/sbcblk.F90` 
    68  * Moved/merged all physical parameters previously declared into `sbcblk.F90` into `phycst.F90` (keeping the name they had in phycst.F90 when previously declared in both modules with a different name) 
    6964 * Moved all the functions for air thermodynamics into a new module: `SBC/sbcblk_phy.F90` 
     65 * Moved all physical parameters constants formerly declared into `sbcblk.F90` into `sbcblk_phy.F90` and suppressed those already declared in ```phycst.F90``` (then using the name they have in ```phycst.F90``` obviously...) 
    7066 * New namelist parameters to namelist's section `namsbc_blk`:  
    71   * `ln_skin` (if true: use the cool-skin/warm-layer parametrization if supported by selected bulk algorithm) 
     67  * `ln_skin_cs` (if true: use the cool-skin parameterization if supported by selected bulk algorithm) 
     68  * `ln_skin_wl` (if true: use the warm-layer parameterization if supported by selected bulk algorithm) 
    7269  * `ln_humi_sph` (if true: air humidity in the forcing files is specific humidity [kg/kg]) 
    7370  * `ln_humi_dpt` (if true: air humidity in the forcing files is dew-point temperature [K]) 
    7471  * `ln_humi_rlh` (if true: air humidity in the forcing files is relative humidity     [%]) 
    7572  * `ln_COARE_3p6` replaces the old `ln_COARE_3p5`, because we upgraded from COARE 3.5 to COARE 3.6 (3.5 was intermediate and not "official"). 
    76  * Added function `sbc_blk_cswl_alloc()` to allocate array `tsk` (declared into `sbc_oce.F90`). 
    77  * Added part where `turb_ecmwf` (and soon turb_coare*) is called with Qlw, rad_sw, & slp (optional arguments) in case of `ln_skin==.true.` 
    78  * 0.98 now becomes `rdct_qsat_salt` (into `phycst.F90`) 
     73 * 0.98 now becomes `rdct_qsat_salt` (into `sbcblk_phy.F90`) 
    7974 * Longwave radiative flux component `zqlw` now computed after turbulent fluxes are, because needs the updated skin temperature which comes out the `turb_ecmwf` (and soon turb_coare*) function 
    8075 * Corrected mistake: no `rdct_qsat_salt` factor for q_sat over ice! (zqi_sat) 
     
    8681* `SBC/sbcblk_algo_ecmwf.F90` 
    8782 * Increased numerical stability to handle non-realistic values over land points, which caused systematic crash in old version (such as in 4.0) 
    88  * The use of the cool-skin/warm-layer parametrization is triggered when optional arguments `Qsw, rad_lw, slp` are specified when calling `turb_ecmwf` 
    89   * In each iteration step, estimation of solar and non-solar components of net surface heat flux is done prior to call to subroutine CSWL_ECMWF (defined into `SBC/sbcblk_skin.F90`) 
     83 * The use of the ECMWF cool-skin/warm-layer parameterizations is triggered when `namsbc_blk` namelist flags `ln_skin_cs`/`ln_skin_wl` are set to `.true.`, respectively (optional arguments `Qsw, rad_lw, slp` of routine `turb_ecmwf` must then be explicitly specified) 
     84  * In each iteration step, estimation of solar and non-solar components of net surface heat flux is done prior to call to subroutines `CS_ECMWF` and `WL_ECMWF` (defined into `SBC/sbcblk_skin_ecmwf.F90`) 
    9085 * Some variables renamed for clarity, ex: sst → T_s 
    9186 * Function `visc_air` moved to `sbcblk_phy.F90`... 
    92  * Use of function `Ri_bulk()` defined into `SBC/sbcblk_skin.F90` 
     87 * Use of function `Ri_bulk()` defined into `SBC/sbcblk_phy.F90` 
    9388 
    94 * `SBC/sbcblk_algo_coare.F90` is gone, it is now `SBC/sbcblk_algo_coare_3p0.F90` for the sake of consistency 
     89* `SBC/sbcblk_algo_coare.F90` is gone, it is now `SBC/sbcblk_algo_coare_3p0.F90` for the sake of name-convention consistency 
    9590 
    9691* `SBC/sbcblk_algo_coare_3p0.F90` (ex `sbcblk_algo_coare.F90`) 
    9792 * Increased numerical stability to handle non-realistic values over land points, which caused systematic crash in old version (such as in 4.0) 
    98  * The use of the cool-skin/warm-layer parametrization is triggered when optional arguments `Qsw, rad_lw, slp` are specified when calling `turb_coare` 
    99  * In each iteration step, estimation of solar and non-solar components of net surface heat flux is done prior to call to subroutine CSWL_ECMWF (defined into `SBC/sbcblk_skin.F90`) 
     93 * The use of the COARE cool-skin/warm-layer parameterizations is triggered when `namsbc_blk` namelist flags `ln_skin_cs`/`ln_skin_wl` are set to `.true.`, respectively (optional arguments `Qsw, rad_lw, slp` of routine `turb_coare3p0` must then be explicitly specified) 
     94  * In each iteration step, estimation of solar and non-solar components of net surface heat flux is done prior to call to subroutines `CS_COARE` and `WL_COARE` (defined into `SBC/sbcblk_skin_coare.F90`) 
    10095 * Some variables renamed for clarity, ex: sst → T_s 
    10196 * Function `visc_air` moved to `sbcblk_phy.F90`... 
    102  * Use of functions `One_on_L()` and `Ri_bulk()` defined into `SBC/sbcblk_skin.F90` 
     97 * Use of functions `One_on_L()` and `Ri_bulk()` defined into `SBC/sbcblk_phy.F90` 
    10398 
    10499* `SBC/sbcblk_algo_coare_3p5.F90` is gone, it is now `SBC/sbcblk_algo_coare_3p6.F90` 
     
    111106 * use of `sbcblk_phy.F90` for functions `virt_temp()` and `One_on_L()` 
    112107 
    113 ==== New modules ''aka'' source files ==== 
     108 
     109 
     110==== New modules ==== 
    114111* `SBC/sbcblk_phy.F90` [ catalog of functions of some non constant physical parameters in the MBL (Marine Boundary Layer) ] → ''Gathers the following functions:'' 
    115112 * `virt_temp` (computes absolute/potential VIRTUAL temperature out of absolute/potential temperature and specific humidity) 
     
    124121 * `q_sat` (computes the specific humidity at saturation out of temperature of air and SLP) 
    125122 * `q_air_rh` (computes the specific humidity of air out of relative humidity and temperature of air and SLP) 
     123* Because of the introduction of the cool-skin and warm-layer schemes in the "ECMWF" and "COARE" algorithms, surface heat fluxes have to be estimated (via bulk formulae) at different times and places in the code. For the sake of consistency, in order to ensure that the exact same set of bulk formulae is used each time some surface heat flux components need to be estimated, the 2 following routines have been introduced into `SBC/sbcblk_phy.F90`: 
     124 * `bulk_formula` (computes the turbulent components of the surface heat flux, namely wind stress and latent and sensible heat fluxes, using aerodynamic bulk formulae; based on near-surface atmospheric and sea-surface states) 
     125 * `update_qnsol_tau` (computes the non-solar heat flux component and the module of the wind stress based on bulk formulae, calls routine `bulk_formula`) 
    126126 
    127 * `SBC/sbcblk_skin.F90` [ cool-skin / warm-layer parametrization of ECMWF, contains function CSWL_ECMWF, which updates the value of the skin temperature out of previous guess of skin temperature, solar and non-solar components of surface heat flux and friction velocity u*] → ''Gathers the following subroutine:'' 
    128  * `CSWL_ECMWF 
     127* `SBC/sbcblk_skin_ecmwf.F90` [ cool-skin / warm-layer parameterization of ECMWF, contains functions `CS_ECMWF` (cool-skin scheme) and `WL_ECMWF` (warm-layer scheme), which update the value of the skin temperature out of previous guess of skin temperature, solar and non-solar components of surface heat flux and friction velocity u*] → ''Gathers the following subroutine:'' 
     128 * `CS_ECMWF` cool-skin scheme 
     129 * `WL_ECMWF` warm-layer scheme 
     130 
     131* `SBC/sbcblk_skin_coare.F90` [ cool-skin / warm-layer parameterization of COARE, contains functions `CS_COARE` (cool-skin scheme) and `WL_COARE` (warm-layer scheme), which update the value of the skin temperature out of previous guess of skin temperature, solar and non-solar components of surface heat flux and friction velocity u*] → ''Gathers the following subroutine:'' 
     132 * `CS_COARE` cool-skin scheme 
     133 * `WL_COARE` warm-layer scheme 
    129134 
    130135 
    131136== Reference manual update == 
    132137 
    133 ??? 
     138The section `Bulk formulae` of the chapter `Surface Boundary Condition (SBC, 
     139SAS, ISF, ICB)` is undergoing substantial improvements at the same time that all 
     140the new features introduced in this branch are being documented. 
     141 
     142 
     143== Associated test case == 
     144 
     145`tests/STATION_ASF`: demonstration case that mimics an in-situ station (buoy, 
     146platform) dedicated to the estimation of surface air-sea fluxes by means of the 
     147measurement of traditional meteorological surface parameters. 
     148See https://github.com/brodeau/aerobulk/blob/master/misc/STATION_ASF_of_NEMO/README.md for more information. 
    134149 
    135150 
    136151== Progress == 
    137152 
    138 * 1/ 90% completed 
     153* 1/ 100% completed 
    139154 
    140 * 2/ 75% completed 
     155* 2/ 100% completed 
    141156 
    142157* 3/ 100% completed 
     
    145160 
    146161 
     162== SETTE test == 
     163 
     164Passed successfully 
     165 
    147166== Review == 
    148167 
    149 Has the review been completed? I don't think so. 
     168The review has been carried out by Guillaume Samson. 
    150169 
    151170 
    152171== MP ready == 
    153172 
    154 Yes, very likely to be ready for MP 2019 in December. 
     173Totally ready for MP 2019 in December. 
    155174 
     175