updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / chem / module_mosaic_support.F
blob1bbb6305c799950a1a7d60d3c1b36b7154549bd1
1 #define MOSAIC_BOX
2 module module_mosaic_support
3   !Purpose: This module contains subroutines which have codes which depend upon 
4   !         the host code (CAM, WRF etc.). #defines are used to seprate codes
5   !         which depends on the host code
7 #ifdef CAM
8   use cam_logfile,           only: iulog
9   use abortutils,            only: endrun
10 #endif
11 #ifdef MOSAIC_BOX
12   use module_data_mosaic_asecthp, only: lunerr
13   use module_peg_util,            only: peg_error_fatal, peg_message
14 #endif
16   implicit none
17   private
19   public:: mosaic_warn_mess
20   public:: mosaic_err_mess
21   
22   
23 contains
25   subroutine mosaic_warn_mess(message)
26     !Purpose: Print out the warning messages from Mosaic code
28     character(len=*), intent(in) :: message
30     !Local variables
31     character(len=16), parameter :: warn_str = 'MOSAIC WARNING: ' 
32     character(len=500) :: str_to_prnt 
34 #ifdef CAM
35     write(iulog,*)warn_str,message
36 #endif    
38 #ifdef MOSAIC_BOX
39 !   write(*,*)warn_str,message
40     str_to_prnt = warn_str // message
41     call peg_message( lunerr, trim(str_to_prnt) )
42 #endif    
45     
46   end subroutine mosaic_warn_mess
49   subroutine mosaic_err_mess(message)
50     !Purpose
51     character(len=*), intent(in) :: message
53     !Local variables
54     character(len=14), parameter :: err_str = 'MOSAIC ERROR: ' 
55     character(len=500) :: str_to_prnt 
57     write(str_to_prnt,*)err_str,message
58     
59 #ifdef CAM
60     call endrun(trim(adjustl(str_to_prnt)))
61 #endif    
63 #ifdef MOSAIC_BOX
64 !   write(*,*)(trim(adjustl(str_to_prnt)))
65 !   stop
66     str_to_prnt = err_str // message
67     call peg_error_fatal( lunerr, trim(str_to_prnt) )
68 #endif    
69   end subroutine mosaic_err_mess
73 end module module_mosaic_support