PLUME-MoM-TSM  1.0
VolcanicPlumeModel
plume_model.f90
Go to the documentation of this file.
1 !********************************************************************************
37 !*********************************************************************
38 
40 
41 
42 PROGRAM plume_model
43 
45 
47 
48  USE inversion, ONLY: invert_height
49 
50  USE rise, ONLY: plumerise
51 
52  USE sw_umbrella, ONLY : solve_umbrella
53 
55 
57 
58  USE variables, ONLY : wp
59 
60  IMPLICIT NONE
61 
62  REAL(wp) :: t1 , t2
63 
64  WRITE(*,*)
65  WRITE(*,*)
66  WRITE(*,*) '-------------------- PlumeMoM V.2 ---------------------'
67  WRITE(*,*)
68  WRITE(*,*) 'Created by M.de'' Michieli Vitturi(1) and F.Pardini (1)'
69  WRITE(*,*) ''
70  WRITE(*,*) '(1) Istituto Nazionale di Geofisica e Vulcanologia'
71  WRITE(*,*) ' Sezione Pisa, Pisa, Italy'
72  WRITE(*,*)
73 
74  CALL cpu_time(t1)
75 
76  !
77  !*** Initialize the input variables
78  !
79  CALL initialize
80  !
81  !*** Read from file the input parameters
82  !
83  CALL read_inp
84  !
85  !*** Open the units for output
86  !
87  CALL open_file_units
88  !
89  !*** Allocate varaibles for the colum model
90  !
91  CALL allocate_matrix
92 
93  IF ( inversion_flag ) THEN
94 
95  !*** Solve the plume model
96  CALL invert_height
97 
98  IF ( umbrella_flag ) THEN
99 
100  CALL solve_umbrella
101 
102  END IF
103 
104  ELSE
105 
106  !*** Solve the plume model
107  CALL plumerise
108 
109  IF ( umbrella_flag ) THEN
110 
111  CALL solve_umbrella
112 
113  END IF
114 
115  END IF
116 
117  CALL close_file_units
118 
119  IF ( hysplit_flag ) CALL check_hysplit
120 
121  CALL cpu_time(t2)
122 
123  WRITE(*,*) 'Time taken by the code was',t2-t1,'seconds'
124 
125 END PROGRAM plume_model
subroutine close_file_units
Close output units.
Definition: inpout.f90:2581
subroutine initialize
Initialize variables.
Definition: inpout.f90:211
logical inversion_flag
Definition: variables.f90:67
Umbrella module.
Definition: SW_UMBRELLA.f90:4
subroutine solve_umbrella
Definition: SW_UMBRELLA.f90:9
Input/Output module.
Definition: inpout.f90:11
logical hysplit_flag
Flag for hysplit run.
Definition: variables.f90:39
Inversion module.
Definition: inversion.f90:11
subroutine open_file_units
Initialize output units.
Definition: inpout.f90:2504
program plume_model
Main Program.
Definition: plume_model.f90:42
subroutine check_hysplit
Hysplit outputs.
Definition: inpout.f90:2908
subroutine read_inp
Read Input data.
Definition: inpout.f90:428
Solver module.
Definition: solver_rise.f90:11
logical umbrella_flag
Flag to solve the model for the umbrella spreading.
Definition: variables.f90:53
subroutine invert_height
Height inversion.
Definition: inversion.f90:57
integer, parameter wp
working precision
Definition: variables.f90:21
subroutine plumerise
Main subroutine for the integration.
Definition: rise.f90:37
Predictor-corrector module.
Definition: rise.f90:10
subroutine allocate_matrix
Solver variables allocation.
Definition: solver_rise.f90:69
Global variables.
Definition: variables.f90:10