!***********************************************************************
!* GNU Lesser General Public License
!*
!* This file is part of the FV3 dynamical core.
!*
!* The FV3 dynamical core is free software: you can redistribute it
!* and/or modify it under the terms of the
!* GNU Lesser General Public License as published by the
!* Free Software Foundation, either version 3 of the License, or
!* (at your option) any later version.
!*
!* The FV3 dynamical core is distributed in the hope that it will be
!* useful, but WITHOUT ANYWARRANTY; without even the implied warranty
!* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!* See the GNU General Public License for more details.
!*
!* You should have received a copy of the GNU Lesser General Public
!* License along with the FV3 dynamical core.
!* If not, see .
!***********************************************************************
#ifdef OVERLOAD_R4
#define _GET_VAR1 get_var1_real
#else
#define _GET_VAR1 get_var1_double
#endif
!>@brief The module fv_nwp_nudge contains routines for nudging
!! to input analyses.
!>note This module is currently not supported in fvGFS of FV3GFS
module fv_nwp_nudge_mod
!
!
! Module Name |
! Functions Included |
!
!
! constants_mod |
! pi=>pi_8, grav, rdgas, cp_air, kappa, cnst_radius =>radius |
!
!
! external_sst_mod |
! i_sst, j_sst, sst_ncep, sst_anom, forecast_mode |
!
!
! diag_manager_mod |
! register_diag_field, send_data |
!
!
! fms_mod |
! write_version_number, open_namelist_file, check_nml_error,
! file_exist, close_file |
!
!
! fv_arrays_mod |
! fv_grid_type, fv_grid_bounds_type, fv_nest_type, R_GRID |
!
!
! fv_diagnostics_mod |
! prt_maxmin, fv_time |
!
!
! fv_grid_utils_mod |
! great_circle_dist, intp_great_circle,
! latlon2xyz, vect_cross, normalize_vect |
!
!
! fv_mp_mod |
! nmp_reduce_sum, mp_reduce_min, mp_reduce_max, is_master |
!
!
! fv_mapz_mod |
! mappm |
!
!
! fv_timing_mod |
! timing_on, timing_off |
!
!
! mpp_mod |
! mpp_error, FATAL, stdlog, get_unit, mpp_pe |
!
!
! sim_nc_mod |
! open_ncfile, close_ncfile, get_ncdim1, get_var1_double,
! get_var3_r4, get_var1_real |
!
!
! mpp_domains_mod |
! mpp_update_domains, domain2d |
!
!
! time_manager_mod |
! time_type, get_time, get_date |
!
!
! tp_core_mod |
! copy_corners |
!
!
use external_sst_mod, only: i_sst, j_sst, sst_ncep, sst_anom, forecast_mode
use diag_manager_mod, only: register_diag_field, send_data
#ifdef OVERLOAD_R4
use constantsR4_mod, only: pi=>pi_8, grav, rdgas, cp_air, kappa, cnst_radius =>radius
#else
use constants_mod, only: pi=>pi_8, grav, rdgas, cp_air, kappa, cnst_radius =>radius
#endif
use fms_mod, only: write_version_number, check_nml_error
use fms2_io_mod, only: file_exists
use mpp_mod, only: mpp_error, FATAL, stdlog, get_unit, mpp_pe, input_nml_file
use mpp_domains_mod, only: mpp_update_domains, domain2d
use time_manager_mod, only: time_type, get_time, get_date
use platform_mod, only: r4_kind, r8_kind
use fv_grid_utils_mod, only: great_circle_dist, intp_great_circle
use fv_grid_utils_mod, only: latlon2xyz, vect_cross, normalize_vect
use fv_diagnostics_mod,only: prt_maxmin, fv_time
use tp_core_mod, only: copy_corners
use fv_mapz_mod, only: mappm
use fv_mp_mod, only: mp_reduce_sum, mp_reduce_min, mp_reduce_max, is_master
use fv_timing_mod, only: timing_on, timing_off
use sim_nc_mod, only: open_ncfile, close_ncfile, get_ncdim1, get_var1_double, &
get_var3_r4, get_var1_real
use fv_arrays_mod, only: fv_grid_type, fv_grid_bounds_type, fv_nest_type, R_GRID
#ifdef MULTI_GASES
use multi_gases_mod, only: virq, virqd, vicpqd, num_gas
#endif
implicit none
private
real(kind=R_GRID), parameter :: radius = cnst_radius
! version number of this module
! Include variable "version" to be written to log file.
#include