tm5_feedback.F90 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. !#################################################################
  2. !
  3. ! feedback dimensions
  4. !
  5. !### macro's #####################################################
  6. !
  7. #define TRACEBACK write (gol,'("in ",a," (",a,", line",i5,")")') rname, __FILE__, __LINE__; call goErr
  8. #define IF_NOTOK_RETURN(action) if (status/=0) then; TRACEBACK; action; return; end if
  9. #define IF_ERROR_RETURN(action) if (status> 0) then; TRACEBACK; action; return; end if
  10. !
  11. #include "tm5.inc"
  12. !
  13. !#################################################################
  14. module TM5_Feedback
  15. use GO, only : gol, goPr, goErr
  16. implicit none
  17. ! --- in/out --------------------------------
  18. public
  19. ! --- const --------------------------------------
  20. integer , parameter :: fdb_ntr = 1
  21. integer, parameter :: fdb_itr_co = 1
  22. ! integer, parameter :: fdb_itr_o3 = 2
  23. ! integer, parameter :: fdb_itr_nox = 3
  24. ! integer, parameter :: fdb_itr_ch2o = 4
  25. ! integer, parameter :: fdb_itr_so2 = 5
  26. ! character(len=*), parameter :: fdb_trname(fdb_ntr) = (/ 'co ', 'o3 ', 'nox ', 'ch2o', 'so2 ' /)
  27. character(len=*), parameter :: fdb_trname(fdb_ntr) = (/ 'co '/)
  28. ! --- var --------------------------------------
  29. ! enable feedback
  30. logical :: fdb_enable
  31. ! replace tm5 tracer by received field ?
  32. ! filled from rcfile in tm5.F90
  33. logical :: fdb_replace(fdb_ntr)
  34. ! tm5 tracer index for fdb index:
  35. integer :: fdb_itracer(fdb_ntr)
  36. ! adhoc: only at start time field seem to be send ...
  37. logical :: fdb_firstonly
  38. end module TM5_FeedBack