Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_spectral / da_spectral.f90
blob8e745a9698c2de4359c84deb83df55dc73033a71
1 module da_spectral
3 #ifdef DM_PARALLEL
4 ! use mpi, only : mpi_sum
5 #endif
7 use da_control, only : trace_use, its,ite,jts,jte, &
8 da_zero_complex, jds,jde,comm,ierr,test_transforms, stdout, pi, &
9 gaussian_lats, earth_radius, alpha_corr_type, alpha_corr_scale, &
10 alpha_corr_unit1, alpha_corr_unit2, filename_len, num_alpha_corr_types, &
11 earth_radius, alpha_corr_type_exp, alpha_corr_type_soar, &
12 alpha_corr_type_gaussian, trace_use
13 #ifdef FFTPACK
14 use da_control, only : ide
15 #endif
16 use da_define_structures, only : xbx_type
17 #ifdef DM_PARALLEL
18 use da_par_util1, only : true_mpi_complex
19 #endif
20 use da_reporting, only : da_error, message
21 use da_tools_serial, only : da_get_unit, da_free_unit
22 use da_tracing, only : da_trace_entry, da_trace_exit
24 !-----------------------------------------------------------------------
25 ! Contains all necessary routines to perform global spectral transform
26 ! (based on Fourier and Legendre decompositions).
27 !-----------------------------------------------------------------------
29 implicit none
31 #ifdef DM_PARALLEL
32 include 'mpif.h'
33 #endif
35 contains
37 #include "da_asslegpol.inc"
38 #include "da_calc_power_spectrum.inc"
39 #include "da_get_gausslats.inc"
40 #include "da_get_reglats.inc"
41 #include "da_initialize_h.inc"
42 #include "da_legtra_inv.inc"
43 #include "da_legtra.inc"
44 #include "da_setlegpol_test.inc"
45 #include "da_setlegpol.inc"
46 #include "da_test_spectral.inc"
47 #include "da_vtovv_spectral.inc"
48 #include "da_vv_to_v_spectral.inc"
49 #include "da_vtovv_spectral_adj.inc"
50 #include "da_legtra_inv_adj.inc"
51 #include "da_apply_power.inc"
53 end module da_spectral