user_output_pdump.F90 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #define TRACEBACK write (gol,'("in ",a," (",a,i6,")")') rname, __FILE__, __LINE__ ; call goErr
  2. #define IF_NOTOK_RETURN(action) if (status/=0) then; TRACEBACK; action; return; end if
  3. #define IF_ERROR_RETURN(action) if (status> 0) then; TRACEBACK; action; return; end if
  4. #define IF_NOTOK_MDF(action) if (status/=0) then; TRACEBACK; action; call MDF_CLose(fid,status); status=1; return; end if
  5. !
  6. #include "tm5.inc"
  7. !-----------------------------------------------------------------------------
  8. ! TM5 !
  9. !-----------------------------------------------------------------------------
  10. !BOP
  11. !
  12. ! !MODULE: USER_OUTPUT_PDUMP
  13. !
  14. ! !DESCRIPTION:
  15. !
  16. ! Module to deal with time-series output. Output are in NetCDF-4 and use CF
  17. ! conventions.
  18. !
  19. ! ************* DUMMY VERSION FOR USER_OUTPUT.F90 TO COMPILE *****************
  20. !
  21. ! See proj/chem/base/trunk/src for non-dummy version.
  22. !
  23. !
  24. !\\
  25. !\\
  26. ! !INTERFACE:
  27. !
  28. MODULE USER_OUTPUT_PDUMP
  29. !
  30. ! !USES:
  31. !
  32. IMPLICIT NONE
  33. PRIVATE
  34. !
  35. ! !PUBLIC MEMBER FUNCTIONS:
  36. !
  37. public :: Output_PDUMP_Init
  38. public :: Output_PDUMP_Step
  39. public :: Output_PDUMP_Done
  40. !
  41. ! !PRIVATE DATA MEMBERS:
  42. !
  43. character(len=*), parameter :: mname = 'user_output_pdump'
  44. !
  45. !EOP
  46. !------------------------------------------------------------------------
  47. CONTAINS
  48. !--------------------------------------------------------------------------
  49. ! TM5 !
  50. !--------------------------------------------------------------------------
  51. !BOP
  52. !
  53. ! !IROUTINE: OUTPUT_PDUMP_INIT
  54. !
  55. ! !DESCRIPTION: reads rc file keys relevant for pdump
  56. !\\
  57. !\\
  58. ! !INTERFACE:
  59. !
  60. SUBROUTINE OUTPUT_PDUMP_INIT( rcF, dhour_min, status )
  61. !
  62. ! !USES:
  63. !
  64. use GO, only : TrcFile
  65. !
  66. ! !INPUT/OUTPUT PARAMETERS:
  67. !
  68. type(TrcFile), intent(inout) :: rcF
  69. !
  70. ! !OUTPUT PARAMETERS:
  71. !
  72. integer, intent(out) :: dhour_min
  73. integer, intent(out) :: status
  74. !
  75. ! !REVISION HISTORY:
  76. ! 1 Oct 2010 - Achim Strunk - upgrade from RETRO to PDUMP
  77. !
  78. !EOP
  79. !------------------------------------------------------------------------
  80. !BOC
  81. character(len=*), parameter :: rname = mname//'/Output_PDUMP_Init'
  82. ! ok
  83. dhour_min = 1
  84. status = 0
  85. END SUBROUTINE OUTPUT_PDUMP_INIT
  86. !EOC
  87. !--------------------------------------------------------------------------
  88. ! TM5 !
  89. !--------------------------------------------------------------------------
  90. !BOP
  91. !
  92. ! !IROUTINE: OUTPUT_PDUMP_STEP
  93. !
  94. ! !DESCRIPTION:
  95. !\\
  96. !\\
  97. ! !INTERFACE:
  98. !
  99. SUBROUTINE OUTPUT_PDUMP_STEP( region, idate_f, status )
  100. !
  101. ! !INPUT PARAMETERS:
  102. !
  103. integer, intent(in) :: region
  104. integer, intent(in) :: idate_f(6)
  105. !
  106. ! !OUTPUT PARAMETERS:
  107. !
  108. integer, intent(out) :: status
  109. !
  110. ! !REVISION HISTORY:
  111. ! 1 Oct 2010 - Achim Strunk - retro -> pdump
  112. !
  113. ! !REMARKS:
  114. ! (1) called every hour.
  115. !
  116. !EOP
  117. !------------------------------------------------------------------------
  118. !BOC
  119. character(len=*), parameter :: rname = mname//'/Output_PDUMP_Step'
  120. status = 0
  121. END SUBROUTINE OUTPUT_PDUMP_STEP
  122. !EOC
  123. !--------------------------------------------------------------------------
  124. ! TM5 !
  125. !--------------------------------------------------------------------------
  126. !BOP
  127. !
  128. ! !IROUTINE: OUTPUT_PDUMP_DONE
  129. !
  130. ! !DESCRIPTION:
  131. !\\
  132. !\\
  133. ! !INTERFACE:
  134. !
  135. SUBROUTINE OUTPUT_PDUMP_DONE( status )
  136. !
  137. ! !OUTPUT PARAMETERS:
  138. !
  139. integer, intent(out) :: status
  140. !
  141. ! !REVISION HISTORY:
  142. ! 1 Oct 2010 - Achim Strunk - retro -> pdump
  143. ! 31 Aug 2012 - P. Le Sager - reverse order in which regions are dealt with (MDF issue)
  144. !
  145. !EOP
  146. !------------------------------------------------------------------------
  147. !BOC
  148. character(len=*), parameter :: rname = mname//'/Output_PDUMP_Done'
  149. ! ok
  150. status = 0
  151. END SUBROUTINE OUTPUT_PDUMP_DONE
  152. !EOC
  153. END MODULE USER_OUTPUT_PDUMP