Opened 5 years ago

Closed 5 years ago

#574 closed defect (fixed)

input(imanure) in littercalc

Reported by: jgipsl Owned by: somebody
Priority: major Milestone: IPSLCM6.v2
Component: Anthropogenic processes Version:
Keywords: Cc:

Description (last modified by jgipsl)

In stomate_litter in the trunk, input(:,m,imanure) is added for all PFTs as soon as veget_cov_max>min_stomate. This seems to be ok because in slowproc_Ninput, Ninput_vec is set only for some cases:

        CASE ("Nmanure_cropland")
             DO iv = 1,nvm
                IF ( .NOT. natural(iv) ) THEN
                   Ninput_vec(:,iv,:) = Ninput_read(:,:)
                ENDIF
             ENDDO
          CASE ("Nmanure_pasture")
             DO iv = 1,nvm
                IF ( natural(iv) .AND. (.NOT.(is_tree(iv))) ) THEN
                   Ninput_vec(:,iv,:) = Ninput_read(:,:)
                ENDIF
             ENDDO
          CASE ("Nmanure")
             DO im = 1,12
                DO iv = 1,nvm
                   WHERE ( (SUMmanure_pftweight(:)) .GT. zero )
                      Ninput_vec(:,iv,im) = Ninput_read(:,im)*manure_pftweight(iv)*SUMveg_max(:)/SUMmanure_pftweight(:)
                   ENDWHERE
                ENDDO
             ENDDO

We didn't see this and therefore in CN-CAN we added in stomate_litter 2 cases where we sat input=0:

   IF (natural(m)) THEN
        ! Only add manure to agriculture pfts (non natural)
        input(:,m,imanure)=zero
    ELSE
          WHERE((veget_cov_max(:,ivm).GT.min_stomate) .AND. &       
                (harvest_pool(:,ivm,1,icarbon) .GE. input(:,ivm,imanure)*cn_ratio_manure*dt*veget_cov_max(:,ivm)*area(:)))     
             ....
           ELSEWHERE((veget_cov_max(:,ivm).GT.min_stomate) .AND. &
                (harvest_pool(:,ivm,1,icarbon) .LT. input(:,ivm,imanure)*cn_ratio_manure*dt*veget_cov_max(:,ivm)*area(:)))
             ....
           ELSEWHERE
              ! Too small fraction, the input is not used
              input(:,ivm,imanure)=zero
           ENDWHERE
     END IF

The first IF (natural) seems to simple and not correct according to what is done in slowproc_Ninput, and also not needed. But the last ELSEWHERE for too small fractions seems to be needed at least in CAN because the mass balance is checked.

Conclusion: I think the trunk is ok but in CN-CAN the IF (natural) THEN input=0 should be removed. input=0 if veget_max<min_stomate seems ok in CAN.

See also the ticket #536 where above section in stomate_litter was added.

Change History (2)

comment:1 Changed 5 years ago by jgipsl

  • Description modified (diff)

comment:2 Changed 5 years ago by luyssaert

  • Resolution set to fixed
  • Status changed from new to closed
  • The current N maps do not distinguish the different PFTs.
  • The code in slowproc_Ninput that deals with the link between the PFTs and the different N-sources is thus essential. But this code puts fertilizer on bare soil and considers there is BNF in bare soils.
  • The IF (natural) THEN input=0 statement in stomate_litter does indeed duplicate most of the aforementioned code in slowproc_Ninput but also deals with bare soil.
  • The IF-statement was removed from stomate_litter and slowproc_Ninput was refined to deal with the specificities of bare soil.
  • This change was confirmed not to affect the results compared to previous versions of CN-CAN except the intended change by adding fertilizer to the grasslands
  • The changes were committed in r6052
Note: See TracTickets for help on using tickets.