Opened 4 years ago

Closed 4 years ago

#409 closed defect (fixed)

Pb with the definition of precisol, impacting prveg

Reported by: aducharne Owned by: somebody
Priority: major Milestone: ORCHIDEE 2.0
Component: Physical processes Version: orchidee_2_0
Keywords: Cc:

Description

In field_def_orchidee.def, we have:

<field id="precisol" name="precisol" long_name="Throughfall per PFT" unit="mm/d" axis_ref="nvm" > this*86400 </field>

In hydrol.f90, we have, in the order of computations:
1) hydrol_canop: first, precisol is defined as the throughfall per PFT, then it is incremented by the snow+ice melt

precisol(ji,jv) = precisol(ji,jv)+tot_melt(ji)*veget_max(ji,jv)/vegtot(ji)

2) hydrol_flood:

precisol(ji,jv) = precisol(ji,jv) * (1 - flood_frac(ji))

3) End of hydrol_main:

CALL xios_orchidee_send_field("precisol",precisol/dt_sechiba)

As a result, the output variable called "precisol" doesn't hold the throughfall, but the throughfall+totmelt-some export to the floodplains if present.

Therefore, we can consider that the output of precisol is wrong.
It has consequences on another variable, called prveg, which is requested for CMIP6 (while throughfall is not).

prveg:
description: The precipitation flux that is intercepted by the vegetation canopy (if present in model) before reaching the ground.
title: Precipitation onto Canopy
units: kg m-2 s-1

prveg is defined in hydrol as:

histvar(:)=(precip_rain(:)-SUM(precisol(:,:),dim=2))
CALL histwrite_p(hist_id, 'prveg', kjit, histvar, kjpindex, index)

Proposed solution:
The simplest one seems to duplicate precisol(kjpindex,nvm) in another variable, call throughfall(kjpindex,nvm) for instance.
To be defined in hydrol_canop before precisol is changed by totmelt, as

throughfall(:,:) = precisol(:,:)

To be used in addition/replacement to precisol for the xios ouput

<field id="precisol" name="precisol" long_name="Throughfall+Totmelt per PFT" unit="mm/d" axis_ref="nvm" > this*86400 </field>
<field id="throughfall" name="throughfall" long_name="Throughfall per PFT" unit="mm/d" axis_ref="nvm" > this*86400 </field>
CALL xios_orchidee_send_field("precisol",precisol/dt_sechiba)
CALL xios_orchidee_send_field("throughfall",throughfall/dt_sechiba)
histvar(:)=(precip_rain(:)-SUM(throughfall(:,:),dim=2))
CALL histwrite_p(hist_id, 'prveg', kjit, histvar, kjpindex, index)

Then we can add a line to the ping file:

<field id="CMIP6_prveg"         field_ref="prveg"         /> <!-- P1 (kg m-2 s-1) precipitation_flux_onto_canopy : The precipitation flux that is intercepted by the vegetation canopy (if present in model) before reaching the ground. -->

Change History (1)

comment:1 Changed 4 years ago by jgipsl

  • Resolution set to fixed
  • Status changed from new to closed

Done in the trunk rev [4753]

Note: See TracTickets for help on using tickets.