!################################################################# ! ! tendency 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_Tendency use GO, only : gol, goPr, goErr implicit none ! --- in/out -------------------------------- public ! --- const -------------------------------------- character(len=*), parameter :: mname = 'tendency' ! chemistry variables: integer, parameter :: plc_ntr = 6 integer, parameter :: plc_itr_co = 1 integer, parameter :: plc_itr_o3 = 2 integer, parameter :: plc_itr_no2 = 3 integer, parameter :: plc_itr_nox = 4 integer, parameter :: plc_itr_ch2o = 5 integer, parameter :: plc_itr_so2 = 6 character(len=*), parameter :: plc_trname(plc_ntr) = (/ 'co ', 'o3 ', 'no2 ', 'nox ', 'ch2o', 'so2 ' /) ! processes acting on tracers: integer, parameter :: plc_npr = 8 integer, parameter :: plc_ipr_0 = 0 integer, parameter :: plc_ipr_conc = 1 integer, parameter :: plc_ipr_pchem = 2 integer, parameter :: plc_ipr_lchem = 3 integer, parameter :: plc_ipr_pemi = 4 integer, parameter :: plc_ipr_lddep = 5 integer, parameter :: plc_ipr_lwdep = 6 integer, parameter :: plc_ipr_tcnvd = 7 integer, parameter :: plc_ipr_tchem = 8 character(len=*), parameter :: plc_prname(0:plc_npr) = & (/ '0 ','conc ','pchem','lchem','pemi ','lddep','lwdep','tcnvd', 'tchem'/) ! only proceses 1 .. plc_npr_put are exchanged: integer, parameter :: plc_npr_put = 3 logical :: tend_pchem_emis, tend_pchem_drydepos, tend_pchem_convdiff logical :: tend_lchem_convdiff, tend_lchem_chem, tend_lchem_emis, tend_lchem_drydepos, tend_lchem_wetdepos #ifdef with_feedback integer :: fdb_itr #endif end module TM5_Tendency