Opened 9 years ago

Closed 7 years ago

#14 closed enhancement (fixed)

Percent throughfall

Reported by: dsolyga Owned by: jgipsl
Priority: minor Milestone: ORCHIDEE 2.0
Component: Physical processes Version: orchidee_1_9_6
Keywords: Hydrology, Choisnel Cc:

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

Change History (9)

comment:1 Changed 9 years ago by dsolyga

  • Version changed from orchidee_1_9_7 to orchidee_1_9_6

comment:2 Changed 9 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: Changed 9 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 9 years ago by jpolcher

Replying to 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.

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 8 years ago by peylin

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

comment:6 Changed 8 years ago by aducharne

  • Status changed from assigned to accepted

comment:7 Changed 7 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
  • adapt hydrol.f90

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 7 years ago by aducharne

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

comment:9 Changed 7 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.