Procedures

ProcedureLocationProcedure TypeDescription
abort_parallel mod_parallel_pdaf Subroutine
add_obs_error_pdaf add_obs_error_pdaf.F90 Subroutine
assimilate_pdaf assimilate_pdaf.F90 Subroutine
check mod_read_obs Subroutine

@author Wolfgang Kurtz, Guowei He, Mukund Pondkule @date 03.03.2023 @brief Error handling for netCDF commands @param[in] status netCDF command status @details This subroutine checks the status of a netCDF command and prints an error message if necessary.

check_n_observationfile mod_read_obs Subroutine

@author Wolfgang Kurtz, Guowei He @date 21.03.2022 @brief Return number of observations from file @param[in] fn Filename of the observation file @param[out] nn number of observations in fn @details Reads the content of the variable (!) named no_obs from NetCDF file fn.

Read more…
check_n_observationfile_da_interval mod_read_obs Subroutine

@author Yorck Ewerdwalbesloh, Johannes Keller @date 11.09.2023 @brief Return data assimilation interval from file @param[in] fn Filename of the observation file @param[out] aa new da_interval (number of time steps until next assimilation time step) @details Reads the content of the variable name da_interval from NetCDF file fn using subroutines from the NetCDF module. The result is returned in aa.

Read more…
clean_obs_nc mod_read_obs Subroutine

@author Wolfgang Kurtz, Guowei He, Mukund Pondkule @date 03.03.2023 @brief Deallocation of observation arrays @details This subroutine deallocates the observation arrays used in subroutine read_obs_nc.

clean_obs_pf mod_read_obs Subroutine

@author Wolfgang Kurtz, Guowei He, Mukund Pondkule @date 03.03.2023 @brief Deallocation of observation index arrays @details This subroutine deallocates the observation index arrays used in subroutine get_obsindex_currentobsfile.

Read more…
clm_advance enkf_clm.F90 Subroutine
clm_advance enkf_clm_5 Subroutine
clm_advance enkf_clm_5 Subroutine
clm_finalize enkf_clm.F90 Subroutine
clm_finalize enkf_clm_5 Subroutine
clm_finalize enkf_clm_5 Subroutine
clm_init enkf_clm.F90 Subroutine

@author Wolfgang Kurtz, Guowei He @date 25.02.2022 @brief CLM3.5 Initialization routine for TSMP-PDAF @param[in] finname CLM input file name @details Initialization routines for the land model analogous to clm3_5/src/main/program_off.F90

clm_init enkf_clm_5 Subroutine

TSMP PDAF comment out beginning

Read more…
clm_init enkf_clm_5 Subroutine

TSMP PDAF comment out beginning

Read more…
collect_state_pdaf collect_state_pdaf.F90 Subroutine
cosmo_advance enkf_cosmo.F90 Subroutine
cosmo_advance enkf_cosmo.F90 Subroutine
cosmo_finalize enkf_cosmo.F90 Subroutine
cosmo_finalize enkf_cosmo.F90 Subroutine
cosmo_init enkf_cosmo.F90 Subroutine
cosmo_init enkf_cosmo.F90 Subroutine
distribute_state_pdaf distribute_state_pdaf.F90 Subroutine
distribute_stateinc_pdaf distribute_stateinc_pdaf.F90 Subroutine Read more…
domain_def_clm enkf_clm_mod Subroutine
domain_def_clm enkf_clm_mod Subroutine
domain_def_clm enkf_clm_mod Subroutine
exchange_2timelevel enkf_cosmo_mod Subroutine
exchange_l2dim enkf_cosmo_mod Subroutine
exchange_leapfrog enkf_cosmo_mod Subroutine
exchange_leapfrog enkf_cosmo_mod Subroutine
exchange_runge_kutta enkf_cosmo_mod Subroutine
exchange_runge_kutta enkf_cosmo_mod Subroutine
finalize_pdaf finalize_pdaf.F90 Subroutine
finalize_tsmp mod_tsmp Interface
g2l_obs_pdaf g2l_obs_pdaf.F90 Subroutine
g2l_state_pdaf g2l_state_pdaf.F90 Subroutine
get_interp_idx enkf_clm_mod Subroutine

@author Mukund Pondkule, Johannes Keller @date 27.03.2023 @brief Set indices of grid cells with lon/lat smaller than observation locations @details This routine sets the indices of grid cells with lon/lat smaller than observation locations.

get_interp_idx enkf_clm_mod Subroutine

@author Mukund Pondkule, Johannes Keller @date 27.03.2023 @brief Set indices of grid cells with lon/lat smaller than observation locations @details This routine sets the indices of grid cells with lon/lat smaller than observation locations.

get_interp_idx enkf_clm_mod Subroutine

@author Mukund Pondkule, Johannes Keller @date 27.03.2023 @brief Set indices of grid cells with lon/lat smaller than observation locations @details This routine sets the indices of grid cells with lon/lat smaller than observation locations.

get_obsindex_currentobsfile mod_read_obs Subroutine

@author Wolfgang Kurtz, Guowei He, Mukund Pondkule @date 03.03.2023 @brief Read observation index arrays for C-code @param[out] no_obs Number of observations @details This subroutine reads the observation index arrays for usage in the enkf_parflow.c for groundwater masking.

Read more…
get_statistic_filename mod_clm_statistics Function
get_statistic_filename mod_clm_statistics Function

@author Wolfgang Kurtz, Guowei He @date 21.03.2022 @brief Return the filename for output of CLM statistics @return character(len=256) get_statistic_filename Filename @details This functions has likely been adapted from set_hist_filename from histFileMod.F90 in CLM3.5

get_statistic_filename mod_clm_statistics Function
get_update_filename print_update_clm_5.F90 Subroutine
get_update_filename print_update_clm_5.F90 Subroutine
get_update_filename print_update_clm.F90 Subroutine
init_dim_l_pdaf init_dim_l_pdaf.F90 Subroutine
init_dim_obs_f_pdaf init_dim_obs_f_pdaf.F90 Subroutine

broadcast crns_flag

init_dim_obs_l_pdaf init_dim_obs_l_pdaf.F90 Subroutine
init_dim_obs_pdaf init_dim_obs_pdaf.F90 Subroutine

broadcast crns_flag

init_ens init_ens.F90 Subroutine
init_n_domains_pdaf init_n_domains_pdaf.F90 Subroutine
init_n_domains_size mod_tsmp Interface
init_obs_f_pdaf init_obs_f_pdaf.F90 Subroutine
init_obs_l_pdaf init_obs_l_pdaf.F90 Subroutine
init_obs_pdaf init_obs_pdaf.F90 Subroutine
init_obscovar_pdaf init_obscovar_pdaf.F90 Subroutine
init_obsvar_l_pdaf init_obsvar_l_pdaf.F90 Subroutine

$ ! Due to domain decomposition in our case the mean variance is computed $ ! for the full domain using the function MPI_Allreduce $#ifndef CLMSA $ if (model .eq. tag_model_parflow) then $ meanvar_p = 0 $ sum_p = 0 $ count = 0 $ do i = 1, dim_obs_p $ if(pressure_obserr_p(i) /= 0) then $ sum_p = sum_p + pressure_obserr_p(i) $ count = count + 1 $ endif $ enddo $ ! averaging the sum of observation errors with total no of non-zero observations $ meanvar_p = sum_p/count $ ! summing the average of observation errors and communicating it back to each rank $ call MPI_Allreduce(meanvar_p, meanvar, 1, MPI_REAL8, MPI_SUM, COMM_filter, MPIerr) $ ! to get the mean dividing the mean observation error by size of processors $ meanvar = meanvar/npes_filter $ end if $#endif $ $#if defined CLMSA $ if(model .eq. tag_model_clm) then $ meanvar_p = 0 $ sum_p = 0 $ count = 0 $ do i = 1, dim_obs_p $ if(clm_obserr_p(i) /= 0) then $ sum_p = sum_p + clm_obserr_p(i) $ count = count + 1 $ endif $ enddo $ ! averaging the sum of observation errors with total no of non-zero observations $ meanvar_p = sum_p/count $ ! summing the average of observation errors and communicating it back to each rank $ call MPI_Allreduce(meanvar_p, meanvar, 1, MPI_REAL8, MPI_SUM, COMM_filter, MPIerr) $ ! to get the mean dividing the mean observation error by size of processors $ meanvar = meanvar/npes_filter $ end if $#endif

init_obsvar_pdaf init_obsvar_pdaf.F90 Subroutine
init_parallel_pdaf init_parallel_pdaf.F90 Subroutine
init_parf_l_size mod_tsmp Interface
init_pdaf init_pdaf.F90 Subroutine
init_pdaf_info init_pdaf_info.F90 Subroutine
init_pdaf_parse init_pdaf_parse.F90 Subroutine
initialize_loop enkf_cosmo_mod Subroutine
initialize_loop enkf_cosmo_mod Subroutine
initialize_tsmp mod_tsmp Interface
integrate integrate_pdaf.F90 Subroutine
integrate_tsmp mod_tsmp Interface
l2g_state_pdaf l2g_state_pdaf.F90 Subroutine
localize_covar_pdaf localize_covar_pdaf.F90 Subroutine
MPI_Allgather nullmpi.F90 Subroutine
MPI_AllGatherV nullmpi.F90 Subroutine
MPI_Allreduce nullmpi.F90 Subroutine
MPI_Barrier nullmpi.F90 Subroutine
MPI_BCast nullmpi.F90 Subroutine
MPI_Comm_Rank nullmpi.F90 Subroutine
MPI_Comm_Size nullmpi.F90 Subroutine
MPI_Comm_split nullmpi.F90 Subroutine
mpi_finalize nullmpi.F90 Subroutine
mpi_init nullmpi.F90 Subroutine
MPI_Recv nullmpi.F90 Subroutine
MPI_Reduce nullmpi.F90 Subroutine
MPI_Send nullmpi.F90 Subroutine
next_observation_pdaf next_observation_pdaf.F90 Subroutine

print *, "stepnow", stepnow

nullify_tracers enkf_cosmo_mod Subroutine
nullify_tracers enkf_cosmo_mod Subroutine
obs_op_f_pdaf obs_op_f_pdaf.F90 Subroutine
obs_op_pdaf obs_op_pdaf.F90 Subroutine
parse parser Interface
prepoststep_ens_pdaf prepoststep_ens_pdaf.F90 Subroutine

!!!!!!!!!!!!!!!!!!!!!! case below contains dummy CLM component !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

prodRinvA_l_pdaf prodrinva_l_pdaf.F90 Subroutine
prodRinvA_pdaf prodrinva_pdaf.F90 Subroutine
read_enkfpar mod_parallel_pdaf Interface
read_obs_nc mod_read_obs Subroutine

@author Wolfgang Kurtz, Guowei He, Mukund Pondkule @date 03.03.2023 @brief Read NetCDF observation file @param[in] current_observation_filename Name of observation file @details This subroutine reads the observation file and stores the data in the corresponding arrays.

set_qrqsqg_boundaries enkf_cosmo_mod Subroutine
set_trcr_special_bc enkf_cosmo_mod Subroutine
update_tsmp mod_tsmp Interface
write_clm_statistics mod_clm_statistics Subroutine
write_clm_statistics mod_clm_statistics Subroutine
write_clm_statistics mod_clm_statistics Subroutine