Fortran Code for the generation of the Productivity Functions


High Resolution Biosphere Model


      function flux_ab(pco2a)

c     -------------------------------------------------------------------
c     - Productivity Function for HRBM/CTBM                             -
c     -                                                                 -
c     - input :                                                         -
c     -         pco2a   [dp]    : atmospheric pco2 [ppm]                -
c     - return - value                                                  -
c     -         flux_ab [dp]    : Net Primary Productivity [Gt C yr^-1] -
c     -------------------------------------------------------------------

      implicit none

      double precision flux_ab,pco2a

      flux_ab =
     $     (- 3.936199d+16
     $     + 6.499772d+14*pco2a
     $     - 2.142978d+12*pco2a**2.0d0
     $     + 4.312995d+09*pco2a**3.0d0
     $     - 5.542613d+06*pco2a**4.0d0
     $     + 4.251490d+03*pco2a**5.0d0
     $     - 1.247683d+00*pco2a**6.0d0
     $     - 8.983608d-04*pco2a**7.0d0
     $     + 1.093244d-06*pco2a**8.0d0
     $     - 4.520093d-10*pco2a**9.0d0
     $     + 7.076525d-14*pco2a**10.0d0) / 1.0d+15

     return

     end
   


Frankfurt Biosphere Model


      function flux_ab(pco2a)

c     -------------------------------------------------------------------
c     - Productivity Function for FBM                                   -
c     -                                                                 -
c     - input :                                                         -
c     -         pco2a [dp]    : atmospheric pco2 [ppm]                  -
c     - return - value                                                  -
c     -         flux_ab [dp]  : Net Primary Productivity [Gt C yr^-1]   -
c     -------------------------------------------------------------------

      implicit none

      double precision flux_ab,pco2a

      flux_ab =
     $     (0.546877302D+04*pco2a**3 -
     $     0.337974427D+06*pco2a**2 -
     $     0.152891489D+09*pco2a -
     $     0.750006896D+10) /
     $     (0.237313645D+02*pco2a**3 +
     $     0.151601409D+04*pco2a**2 +
     $     0.232817871D+06*pco2a -
     $     0.358729498D+09)

      return

      end
     


4Box Biosphere


      function flux_ab(pco2a)

c     -------------------------------------------------------------------
c     - Productivity Function for the 4Box Biosphere                    -
c     -                                                                 -
c     - input :                                                         -
c     -         pco2a [dp]    : atmospheric pco2 [ppm]                  -
c     - return - value                                                  -
c     -         flux_ab [dp]  : Net Primary Productivity [Gt C yr^-1]   -
c     -------------------------------------------------------------------

      implicit none

      double precision flux_ab,pco2a,npp0,pco2a0,beta

      parameter (npp0 = 60.0d0)
      parameter (beta = 0.278d0)
      parameter (pco2a0 = 278.0d0)

      flux_ab = npp0*beta*log(pco2a/pco2a0)

      return

      end
     


Box Substitute of HRBM/CTBM

      
      function flux_ab(pco2a,Temp)

c     -------------------------------------------------------------------
c     - Productivity Function for the 4Box Biosphere                    -
c     -                                                                 -
c     - input :                                                         -
c     -         pco2a [dp]    : atmospheric pco2 [ppm]                  -
c     -         Temp  [dp]    : Deviation from equilibrium Temperature  -
c     -                         (deg C)                                 -
c     - return - value                                                  -
c     -         flux_ab [dp]  : Net Primary Productivity [Gt C yr^-1]   -
c     -------------------------------------------------------------------

      implicit none

      double precision flux_ab,pco2a,npp0,pco2a0,beta,Temp

      parameter (npp0 = 60.0d0)
      parameter (beta = 0.278d0)
      parameter (pco2a0 = 278.0d0)

      flux_ab = 
     $     (- 3.936199e+16
     $     + 6.499772e+14*pco2a
     $     - 2.142978e+12*pco2a**2.0d0
     $     + 4.312995e+09*pco2a**3.0d0
     $     - 5.542613e+06*pco2a**4.0d0
     $     + 4.251490e+03*pco2a**5.0d0
     $     - 1.247683e+00*pco2a**6.0d0
     $     - 8.983608e-04*pco2a**7.0d0
     $     + 1.093244e-06*pco2a**8.0d0
     $     - 4.520093e-10*pco2a**9.0d0
     $     + 7.076525e-14*pco2a**10.0d0) / 1.0d+15

      flux_ab = flux_ab *
     $      0.99922770E+00 +
     $      0.11780208E+00*tanh(Temp/0.509312421E+02) +
     $      0.24305130E-02*tanh(Temp/0.885326739E+01)
      return

      end