!#################################################################
!
! feedback dimensions
!
!### macro's #####################################################
!
#define TRACEBACK write (gol,'("in ",a," (",a,", line",i5,")")') rname, __FILE__, __LINE__; call goErr
#define IF_NOTOK_RETURN(action) if (status/=0) then; TRACEBACK; action; return; end if
#define IF_ERROR_RETURN(action) if (status> 0) then; TRACEBACK; action; return; end if
!
#include "tm5.inc"
!
!#################################################################

module TM5_Feedback

  use GO, only : gol, goPr, goErr
  
  implicit none
  
  
  ! --- in/out --------------------------------
  
  public


  ! --- const --------------------------------------
  
  integer , parameter          ::   fdb_ntr = 1
  integer, parameter           ::  fdb_itr_co    = 1
!  integer, parameter           ::  fdb_itr_o3    = 2
!  integer, parameter           ::  fdb_itr_nox   = 3
!  integer, parameter           ::  fdb_itr_ch2o  = 4
!  integer, parameter           ::  fdb_itr_so2   = 5
!  character(len=*), parameter  ::  fdb_trname(fdb_ntr) = (/ 'co  ', 'o3  ', 'nox ', 'ch2o', 'so2 ' /)
  character(len=*), parameter  ::  fdb_trname(fdb_ntr) = (/ 'co  '/)
  

  ! --- var --------------------------------------

  ! enable feedback 
  logical                      ::  fdb_enable
  
! replace tm5 tracer by received field ?
  ! filled from rcfile in tm5.F90
  logical                      ::  fdb_replace(fdb_ntr)
  
  ! tm5 tracer index for fdb index:
  integer                      ::  fdb_itracer(fdb_ntr)

  ! adhoc: only at start time field seem to be send ...
  logical                      ::  fdb_firstonly

end module TM5_FeedBack
