Opened 11 years ago

Closed 9 years ago

# Percent throughfall

Reported by: Owned by: dsolyga jgipsl minor ORCHIDEE 2.0 Physical processes orchidee_1_9_6 Hydrology, Choisnel

### Description

For CWRR, the pft parameter throughfall_by_pft is used only in coupled mode to compensate a bias from LMDZ. In off-line mode, it is not used so the equations are doubled in hydrol.f90 :

```    qsintveg(:,1) = zero
DO jv=2,nvm
IF ( ok_throughfall_by_pft ) THEN
! Correction Nathalie - Juin 2006 - une partie de la pluie arrivera toujours sur le sol
! sorte de throughfall supplementaire
qsintveg(:,jv) = qsintveg(:,jv) + veget(:,jv) * ((1-throughfall_by_pft(jv))*precip_rain(:))
ELSE
qsintveg(:,jv) = qsintveg(:,jv) + veget(:,jv) * precip_rain(:)
ENDIF
END DO

!
!! 1.3 Limits the effect and sum what receives soil
!
precisol(:,1)=veget_max(:,1)*precip_rain(:)
DO jv=2,nvm
DO ji = 1, kjpindex
zqsintvegnew(ji,jv) = MIN (qsintveg(ji,jv),qsintmax(ji,jv))
IF ( ok_throughfall_by_pft ) THEN
! correction throughfall Nathalie - Juin 2006
precisol(ji,jv) = (veget(ji,jv)*throughfall_by_pft(jv)*precip_rain(ji)) + &
qsintveg(ji,jv) - zqsintvegnew (ji,jv) + &
(veget_max(ji,jv) - veget(ji,jv))*precip_rain(ji)
ELSE
precisol(ji,jv) = qsintveg(ji,jv) - zqsintvegnew (ji,jv) + &
(veget_max(ji,jv) - veget(ji,jv))*precip_rain(ji)
ENDIF
ENDDO
END DO
```

But in hydrolc.f90, throughfall_by_pft is used whatever the mode (coupled or not). If it is only necessary to used this parameter in coupled mode, the following equations should be corrected in hydrolc.f90 :

```    DO jv=1,nvm
! Correction Nathalie - Juin 2006 - une partie de la pluie arrivera toujours sur le sol
! sorte de throughfall supplementaire
!qsintveg(:,jv) = qsintveg(:,jv) + veget(:,jv) * precip_rain(:)
!MM veget(:,1) BUG ??!!!!!!!!!!!
IF (jv .EQ. 1) THEN
qsintveg(:,jv) = qsintveg(:,jv) + tot_bare_soil(:) * ((1-throughfall_by_pft(jv))*precip_rain(:))
ELSE
qsintveg(:,jv) = qsintveg(:,jv) + veget(:,jv) * ((1-throughfall_by_pft(jv))*precip_rain(:))
ENDIF
END DO

!
! 1.3 Limits the effect and sum what receives soil
!
precisol(:,:) = zero
DO jv=1,nvm
DO ji = 1, kjpindex
zqsintvegnew(ji,jv) = MIN (qsintveg(ji,jv),qsintmax(ji,jv))
! correction throughfall Nathalie - Juin 2006
!precisol(ji,jv) = qsintveg(ji,jv ) - zqsintvegnew (ji,jv)
!MM veget(:,1) BUG ??!!!!!!!!!!!
IF (jv .EQ. 1) THEN
precisol(ji,jv) = (tot_bare_soil(ji)*throughfall_by_pft(jv)*precip_rain(ji)) + qsintveg(ji,jv ) - zqsintvegnew (ji,jv)
ELSE
precisol(ji,jv) = (veget(ji,jv)*throughfall_by_pft(jv)*precip_rain(ji)) + qsintveg(ji,jv ) - zqsintvegnew (ji,jv)
ENDIF
ENDDO
ENDDO
```

### comment:1 Changed 11 years ago by dsolyga

• Version changed from orchidee_1_9_7 to orchidee_1_9_6

### comment:2 Changed 11 years ago by nvuilsce

I would be in favour of using the parameter throughfall_by_pft everywhere and to remove the flag ok_throughtfall_by_pft. The condition NOT ok_throughfall_by_pft equals to set throughfall_by_pft to 0.

### comment:3 follow-up: ↓ 4 Changed 11 years ago by dsolyga

I agree with Nicolas. throughfall_by_pft should be initialized in pft_parameters module :

```   IF ( OFF_LINE_MODE ) THEN
throughfall_by_pft(:) = zero
ELSE
throughfall_by_pft(:) = throughfall_by_mtc(pft_to_mtc(:))  ! = 30.
END IF
```

The equations in the code are compatible if we look at hydrol and hydrolc.

### comment:4 in reply to: ↑ 3 Changed 11 years ago by jpolcher

I agree with Nicolas. throughfall_by_pft should be initialized in pft_parameters module :

```   IF ( OFF_LINE_MODE ) THEN
throughfall_by_pft(:) = zero
ELSE
throughfall_by_pft(:) = throughfall_by_mtc(pft_to_mtc(:))  ! = 30.
END IF
```

The equations in the code are compatible if we look at hydrol and hydrolc.

Is "OFF_LINE_MODE" the right flag ? Other atmospheric models can provide correct rainfall characteristics and thus it would be wiser to have a flag that specifically controls this through-fall fraction.

### comment:5 Changed 10 years ago by peylin

• Owner changed from somebody to aducharne
• Status changed from new to assigned

### comment:6 Changed 10 years ago by aducharne

• Status changed from assigned to accepted

### comment:7 Changed 10 years ago by aducharne

Ticket meeting of March 4, 2014 with JG, NVui, AD: we suggest to:

• remove the flag ok_throughfall_by_pft, because we can get the same effect by setting throughfall_by_pft(:)=0.
• keep the default behaviour as in the trunk rev [1943], i.e. throughfall_by_pft(:)=30

It leads to the following changes in pft_parameters:

DELETE THE BLOCK BELOW:

```IF ( active_flags%hydrol_cwrr ) THEN

!! 2.1 Read the flag ok_throughfall_by_pft to know if
!!      we have to use the parameter throughfall_by_pft

!Config Key   = OK_THROUGHFALL_PFT
!Config Desc  = Activate use of PERCENT_THROUGHFALL_PFT
!Config If    = HYDROL_CWRR
!Config Def   = FALSE
!Config Help  = If NOT OFF_LINE_MODE it is always TRUE (coupled with a GCM)
!Config Units = [FLAG]
IF ( .NOT. OFF_LINE_MODE ) ok_throughfall_by_pft = .TRUE.
CALL getin_p('OK_THROUGHFALL_PFT',ok_throughfall_by_pft)

END IF
```

CHANGE THE FOLLOWING BLOCK:

```IF ( .NOT.(active_flags%hydrol_cwrr) .OR.  (active_flags%hydrol_cwrr .AND. ok_throughfall_by_pft) ) THEN
throughfall_by_pft(:) = throughfall_by_mtc(pft_to_mtc(:))
ENDIF
```

TO:

```IF ( active_flags%hydrol_cwrr .AND. OFF_LINE_MODE ) THEN
throughfall_by_pft(:) = 0.
ELSE
throughfall_by_pft(:) = throughfall_by_mtc(pft_to_mtc(:))
ENDIF
```

### comment:8 Changed 10 years ago by aducharne

• Owner changed from aducharne to jgipsl
• Status changed from accepted to assigned

### comment:9 Changed 9 years ago by jgipsl

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

Done rev [2381]

Note: See TracTickets for help on using tickets.