da_par_util.f90
References to this file elsewhere.
1 module da_par_util
2
3 !---------------------------------------------------------------------------
4 ! Purpose: Routines for local-to-global and global-to-local grid operations.
5 !
6 ! METHOD: RSL/MPI.
7 !---------------------------------------------------------------------------
8
9 use module_domain, only : domain, xpose_type
10 #ifdef DM_PARALLEL
11 use module_dm, only : io2d_ij_internal, io3d_ijk_internal
12 use mpi, only : mpi_2double_precision, mpi_status_size, &
13 mpi_integer, mpi_maxloc, mpi_status_size, &
14 mpi_minloc, mpi_sum
15 #endif
16 use da_define_structures, only : be_subtype, &
17 x_type, vp_type, residual_synop_type, residual_sound_type, ob_type, &
18 y_type, count_obs_number_type, count_obs_type, maxmin_field_type
19 #ifdef DM_PARALLEL
20 use da_par_util1, only : true_mpi_real, true_mpi_complex, true_rsl_real, &
21 true_mpi_real, true_mpi_complex, true_rsl_real
22 #endif
23 use da_control, only : trace_use,num_ob_indexes, myproc, root, comm, ierr, &
24 rootproc, num_procs, stdout, print_detail_parallel, its,ite, jts, jte, &
25 kts,kte,ids,ide,jds,jde,kds,kde,ims,ime,jms,jme,kms,kme,ips,ipe,jps,jpe, &
26 kps, kpe
27 use da_tools, only : message
28 use da_reporting, only : da_error
29 use da_tracing, only : da_trace_entry, da_trace_exit
30 use da_wrf_interfaces, only : &
31 wrf_dm_xpose_z2x,wrf_dm_xpose_x2y, wrf_dm_xpose_y2x, wrf_dm_xpose_x2z, &
32 wrf_dm_xpose_z2y, wrf_dm_xpose_y2z, wrf_patch_to_global_real
33
34 implicit none
35
36 #include "da_generic_typedefs.inc"
37
38 interface da_wv_patch_to_global
39 module procedure da_wv_patch_to_global_2d
40 module procedure da_wv_patch_to_global_3d
41 end interface
42
43 contains
44
45 #include "da_cv_to_vv.inc"
46 #include "da_vv_to_cv.inc"
47 #include "da_alloc_and_copy_be_arrays.inc"
48 #include "da_copy_dims.inc"
49 #include "da_copy_tile_dims.inc"
50 #include "da_pack_count_obs.inc"
51 #include "da_unpack_count_obs.inc"
52 #include "da_transpose.inc"
53 #include "da_cv_to_global.inc"
54 #include "da_wv_patch_to_global_2d.inc"
55 #include "da_wv_patch_to_global_3d.inc"
56 #include "da_generic_methods.inc"
57 #include "da_deallocate_global_sonde_sfc.inc"
58 #include "da_deallocate_global_sound.inc"
59 #include "da_deallocate_global_synop.inc"
60 #include "da_generic_boilerplate.inc"
61 #include "da_y_facade_to_global.inc"
62 #include "da_system.inc"
63
64 #ifdef DM_PARALLEL
65
66 #include "da_local_to_global.inc"
67 #include "da_proc_sum_count_obs.inc"
68 #include "da_proc_stats_combine.inc"
69 #include "da_proc_maxmin_combine.inc"
70
71 #else
72
73 #include "da_wrf_dm_interface.inc"
74
75 #endif
76
77 end module da_par_util
78