Skip to content

Commit f2b1d30

Browse files
committed
add MPAS suite interstitial 1
1 parent 91d9790 commit f2b1d30

2 files changed

Lines changed: 130 additions & 0 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
!> \file MPAS_suite_interstitial_1.f90
2+
!! Contains code to initialize process-split state tendencies
3+
4+
module MPAS_suite_interstitial_1
5+
6+
contains
7+
8+
!> \section arg_table_MPAS_suite_interstitial_1_run Argument Table
9+
!! \htmlinclude MPAS_suite_interstitial_1_run.html
10+
!!
11+
subroutine MPAS_suite_interstitial_1_run (im, levs, ntrac, &
12+
dudt, dvdt, dtdt, dqdt, errmsg, errflg)
13+
14+
use machine, only: kind_phys
15+
16+
implicit none
17+
18+
! interface variables
19+
integer, intent(in ) :: im, levs, ntrac
20+
21+
real(kind=kind_phys), intent(out), dimension(:,:) :: dudt, dvdt, dtdt
22+
real(kind=kind_phys), intent(out), dimension(:,:,:) :: dqdt
23+
24+
character(len=*), intent(out) :: errmsg
25+
integer, intent(out) :: errflg
26+
27+
! local variables
28+
real(kind=kind_phys), parameter :: zero = 0.0_kind_phys
29+
integer :: i, k, n
30+
31+
! Initialize CCPP error handling variables
32+
errmsg = ''
33+
errflg = 0
34+
35+
do k=1,levs
36+
do i=1,im
37+
dudt(i,k) = zero
38+
dvdt(i,k) = zero
39+
dtdt(i,k) = zero
40+
enddo
41+
enddo
42+
do n=1,ntrac
43+
do k=1,levs
44+
do i=1,im
45+
dqdt(i,k,n) = zero
46+
enddo
47+
enddo
48+
enddo
49+
50+
end subroutine MPAS_suite_interstitial_1_run
51+
52+
end module MPAS_suite_interstitial_1
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
########################################################################
2+
[ccpp-table-properties]
3+
name = MPAS_suite_interstitial_1
4+
type = scheme
5+
dependencies = ../../hooks/machine.F
6+
7+
########################################################################
8+
[ccpp-arg-table]
9+
name = MPAS_suite_interstitial_1_run
10+
type = scheme
11+
[im]
12+
standard_name = horizontal_loop_extent
13+
long_name = horizontal loop extent
14+
units = count
15+
dimensions = ()
16+
type = integer
17+
intent = in
18+
[levs]
19+
standard_name = vertical_layer_dimension
20+
long_name = vertical layer dimension
21+
units = count
22+
dimensions = ()
23+
type = integer
24+
intent = in
25+
[ntrac]
26+
standard_name = number_of_tracers
27+
long_name = number of tracers
28+
units = count
29+
dimensions = ()
30+
type = integer
31+
intent = in
32+
[dudt]
33+
standard_name = process_split_cumulative_tendency_of_x_wind
34+
long_name = tendency of the x wind
35+
units = m s-2
36+
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
37+
type = real
38+
kind = kind_phys
39+
intent = out
40+
[dvdt]
41+
standard_name = process_split_cumulative_tendency_of_y_wind
42+
long_name = tendency of the y wind
43+
units = m s-2
44+
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
45+
type = real
46+
kind = kind_phys
47+
intent = out
48+
[dtdt]
49+
standard_name = process_split_cumulative_tendency_of_air_temperature
50+
long_name = tendency of the temperature
51+
units = K s-1
52+
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
53+
type = real
54+
kind = kind_phys
55+
intent = out
56+
[dqdt]
57+
standard_name = process_split_cumulative_tendency_of_tracers
58+
long_name = tendency of the tracers
59+
units = kg kg-1 s-1
60+
dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
61+
type = real
62+
kind = kind_phys
63+
intent = out
64+
[errmsg]
65+
standard_name = ccpp_error_message
66+
long_name = error message for error handling in CCPP
67+
units = none
68+
dimensions = ()
69+
type = character
70+
kind = len=*
71+
intent = out
72+
[errflg]
73+
standard_name = ccpp_error_code
74+
long_name = error code for error handling in CCPP
75+
units = 1
76+
dimensions = ()
77+
type = integer
78+
intent = out

0 commit comments

Comments
 (0)