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