module ensda_variables !|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| !----------------------------------------------------------------- ! contains ensemble data assimilation (ENSDA) arrays and parameters !----------------------------------------------------------------- implicit none !----------------------------------------------------------------- ! GENERAL ENSDA variables and parameters !----------------------------------------------------------------- real :: fcst_length ! forecast length (minutes) real :: aa ! input Markov parameter (alpha) character(len=14) :: cycle_date ! 14-character date integer :: cvar_max ! number of control variables logical :: & open_ic, &! init cond logical mask open_param, &! empir param logical mask open_bias ! model bias logical mask integer,dimension(1) :: & NNXP, &! 1st dimension index (global) NNYP, &! 2nd dimension index (global) NNZP, &! 3rd dimension index (global) NNSOIL, &! soil dimension index (global) NNSNOW ! snow dimension index (global) integer :: & time, &! number of model time steps nerr, &! number of time steps between biases nbias, &! current bias number (1 -> num_bias) num_bias ! total number of biases over DA time interval !----------------------------------------------------------- ! Model SPECIFIC variables: _bias, _phi !----------------------------------------------------------- real,dimension(:,:),allocatable :: & h_gbl, &! height (global) psi_gbl, &! stream function (global) chi_gbl ! velocity potential (global) real,dimension(:,:),allocatable :: & h_bias_gbl, &! height bias (global) psi_bias_gbl, &! stream function bias (global) chi_bias_gbl ! velocity potential bias (global) real(kind=selected_real_kind(13)),dimension(:,:),allocatable :: & ensda_work_gbl ! used for gather-scatter (global) real(kind=selected_real_kind(13)),dimension(:,:,:),allocatable :: & ensda_work_loc ! used for gather-scatter (local) real,dimension(:,:,:),allocatable,target :: & h_bias, &! height bias (local) psi_bias, &! stream function bias (local) chi_bias ! velocity potential bias (local) real,dimension(:,:,:),pointer :: & h_bias_ptr, &! height bias (local) psi_bias_ptr, &! stream function bias (local) chi_bias_ptr ! velocity potential bias (local) real,dimension(:,:,:),allocatable,target :: & h_phi, &! height Markov vrbl psi_phi, &! stream function Markov vrbl chi_phi ! velocity potential Markov vrbl real,dimension(:,:,:),pointer :: & h_phi_ptr, &! height Markov vrbl psi_phi_ptr, &! stream function Markov vrbl chi_phi_ptr ! velocity potential Markov vrbl end module ensda_variables