emission__dummy.F90 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. !#################################################################
  2. !
  3. ! purpose
  4. ! -------
  5. ! perform emissions needed for TM5
  6. !
  7. ! interface
  8. ! ---------
  9. ! call declare_emission
  10. ! call emission_apply
  11. ! call free_emission
  12. !
  13. ! method
  14. ! ------
  15. ! subroutine declare_emission is called from ss_monthly_update
  16. ! subroutine emission_apply is called from sources_sinks_apply
  17. ! subroutine free_emission is called from trace_end
  18. !
  19. !### macro's #####################################################
  20. !
  21. #define TRACEBACK write (gol,'("in ",a," (",a,", line",i5,")")') rname, __FILE__, __LINE__; call goErr
  22. #define IF_NOTOK_RETURN(action) if (status/=0) then; TRACEBACK; action; return; end if
  23. #define IF_ERROR_RETURN(action) if (status> 0) then; TRACEBACK; action; return; end if
  24. !
  25. #include "tm5.inc"
  26. !
  27. !#################################################################
  28. module emission
  29. use GO, only : gol, goPr, goErr
  30. use dims, only: nregions
  31. implicit none
  32. ! --- in/out --------------------------------------------
  33. private
  34. public :: declare_emission, emission_apply, free_emission
  35. contains
  36. subroutine declare_emission
  37. !
  38. ! purpose
  39. ! -------
  40. ! allocate space needed to handle the emissions
  41. !
  42. ! interface
  43. ! ---------
  44. ! declare_emission is called from ss_monthly_update (start and newmonth)
  45. !
  46. ! method
  47. ! ------
  48. ! dynamic allocation, depending on dimensions problem
  49. ! opening of daily input files
  50. ! reading monthly/yearly emissions
  51. !
  52. !---------------------------------------------------------------------
  53. implicit none
  54. end subroutine declare_emission
  55. subroutine emission_apply(region)
  56. !
  57. implicit none
  58. !___________________IO_____________________
  59. integer, intent(in) :: region
  60. !___________________local__________________
  61. end subroutine emission_apply
  62. subroutine free_emission(budget_file)
  63. !
  64. ! purpose
  65. ! -------
  66. ! deallocate space needed to handle the emissions
  67. !
  68. ! interface
  69. ! ---------
  70. ! call free_emission is called from trace_end
  71. !
  72. ! method
  73. ! ------
  74. ! collecting budgets on coarser budget regions
  75. ! writing budget file
  76. ! deallocation of memory
  77. ! closing of input files
  78. !---------------------------------------------------------------------
  79. implicit none
  80. ! IO
  81. character(len=*) :: budget_file
  82. ! local
  83. end subroutine free_emission
  84. end module emission