start_domain.F
References to this file elsewhere.
1 !WRF:MEDIATION_LAYER:ADT_BARRIER
2 !
3
4 SUBROUTINE start_domain ( grid , allowed_to_read )
5
6 USE module_domain
7 USE module_configure
8
9 IMPLICIT NONE
10
11 ! Input Arguments.
12 TYPE (domain) :: grid
13 LOGICAL, INTENT(IN) :: allowed_to_read
14 ! Local data.
15 INTEGER :: dyn_opt
16 INTEGER :: idum1, idum2
17
18 #ifdef DEREF_KLUDGE
19 ! see http://www.mmm.ucar.edu/wrf/WG2/topics/deref_kludge.htm
20 INTEGER :: sm31 , em31 , sm32 , em32 , sm33 , em33
21 INTEGER :: sm31x, em31x, sm32x, em32x, sm33x, em33x
22 INTEGER :: sm31y, em31y, sm32y, em32y, sm33y, em33y
23 #endif
24
25 #include "deref_kludge.h"
26
27 CALL nl_get_dyn_opt( 1, dyn_opt )
28
29 CALL set_scalar_indices_from_config ( head_grid%id , idum1, idum2 )
30
31 IF ( dyn_opt .eq. DYN_NODYN ) THEN
32
33 #if ((EM_CORE == 1) && (DA_CORE != 1))
34 ELSE IF ( dyn_opt .eq. DYN_EM ) THEN
35
36 CALL start_domain_em( grid, allowed_to_read &
37 !
38 # include <em_actual_new_args.inc>
39 !
40 )
41 #endif
42 #if (NMM_CORE == 1)
43 ELSE IF ( dyn_opt .eq. DYN_NMM ) THEN
44 CALL start_domain_nmm( grid, allowed_to_read &
45 !
46 # include <nmm_actual_args.inc>
47 !
48 )
49 #endif
50 #if (COAMPS_CORE == 1)
51 ELSE IF ( dyn_opt .eq. DYN_COAMPS ) THEN
52 CALL start_domain_coamps( grid, allowed_to_read &
53 !
54 # include <coamps_actual_args.inc>
55 !
56 )
57 #endif
58
59 !### 4a. edit share/start_domain.F to call domain inits for core if any
60
61 #if (EXP_CORE == 1)
62 ELSE IF ( dyn_opt .eq. DYN_EXP ) THEN
63 #endif
64
65 ELSE
66
67 WRITE(0,*)' start_domain: unknown or unimplemented dyn_opt = ',dyn_opt
68 CALL wrf_error_fatal ( ' start_domain: unknown or unimplemented dyn_opt ' )
69 ENDIF
70
71
72 END SUBROUTINE start_domain
73