Fortran Code for the generation of the Pulse Response Functions


High Resolution Biosphere Model


      function resp(t)

c     ----------------------------------------------
c     - Response function for HRBM                 -
c     -                                            -
c     - input:                                     -
c     -        t [dp]   : time [yr]                -
c     - output:                                    -
c     -        resp [dp] : Response at t [-]       -
c     -                                            -
c     - call frequency : once per year             -
c     - --------------------------------------------

      implicit none
c
      double precision t,resp0,resp
c
      parameter (resp0 = 0.511347539722d-01)

      if (t.le.1.0d0) then
         resp = resp0*t
      elseif (t.le.2.0d0) then
         resp = resp0+(0.174410864710D+00-resp0)*(t-1.0d0)
      elseif (t.le.14.0d0) then
         resp = 0.630523002180D-02+
     $          0.345424437642D+01*dexp(-t/0.904203703960D+00)+
     $          0.141623998399D+00*dexp(-t/0.261649036650D+01)-
     $          0.501158016716D+01*dexp(-t/0.689914606958D+00)
      elseif (t.le.450.0d0) then
         resp = 0.472191941646D-04-
     $          0.244428637820D+01*dexp(-t/0.862709227476D+02)+
     $          0.244973858123D+01*dexp(-t/0.862692922059D+02)+
     $          0.548083830794D-02*dexp(-t/0.139898764513D+02)
      else
         resp = 0.20304167D+02*dexp(-t/0.45166515D+02)-
     $          0.23764954D+02*dexp(-t/0.44364017D+02)+
     $          0.15264106D-03*dexp(-t/0.43832634D+03)
      endif

      return
      
      end

   


Frankfurt Biosphere Model


      function resp(t)

c     ----------------------------------------------
c     - Response function for FBM                  -
c     -                                            -
c     - input:                                     -
c     -        t [dp]   : time [yr]                -
c     - output:                                    -
c     -        resp [dp] : Response at t [-]       -
c     -                                            -
c     - call frequency : once per year             -
c     - --------------------------------------------

      implicit none
c
      double precision t,resp0,resp
c
      parameter (resp0 = 0.39100056D+00)

      if (t.le.1.0d0) then
         anbio = resp0*t
      else
         anbio = 0.16288184D-01 * dexp(-t/0.72055005D+01) +
     $           0.33925361D-01 * dexp(-t/0.14732705D+02) +
     $           0.97439329D-04 * dexp(-t/0.29538920D+02) +
     $           0.51309690D-03 * dexp(-t/0.11750538D+03)

      endif

      return

      end

     


4Box Biosphere


      function resp(t)

      
c     ----------------------------------------------
c     - Response function for 4Box Biosphere       -
c     -                                            -
c     - input:                                     -
c     -        t [dp]   : time [yr]                -
c     - output:                                    -
c     -        resp [dp] : Response at t [-]       -
c     -                                            -
c     - call frequency : every time step           -
c     - --------------------------------------------

      implicit none
c
      double precision t,resp0,resp

      resp = 0.7021d0*exp(-0.35d0*t)+
     $       0.01341d0*exp(-0.05d0*t)-
     $       0.7185d0*exp(-0.458333d0*t)+
     $       0.002932d0*exp(-0.01d0*t)

      return

      end
   


Box Substitute of HRBM/CTBM


      function resp(t)

      
c     ----------------------------------------------
c     - Response function for 4Box Biosphere       -
c     -                                            -
c     - input:                                     -
c     -        t [dp]   : time [yr]                -
c     - output:                                    -
c     -        resp [dp] : Response at t [-]       -
c     -                                            -
c     - call frequency : every time step           -
c     - --------------------------------------------

      implicit none
c
      double precision t,resp0,resp

      resp = 0.3807325933D+00*exp(-0.6777865291D+00*t)-
     $       0.7674658037D+00*exp(-0.4973317623D+01*t)+
     $       0.8421987407D-02*exp(-0.1124884784D+00*t)+
     $       0.5582601879D-02*exp(-0.1349562965D-01*t)+
     $       0.4099895526D-03*exp(-0.3940026741D-02*t)

      return

      end