ROMS
Loading...
Searching...
No Matches
strings_mod Module Reference

Functions/Subroutines

logical function, public founderror (flag, noerr, line, routine)
 
logical function, public globalerror (ng, model, flag, noerr, line, routine)
 
logical function, public taskerror (ng, model, flag, noerr, line, routine)
 
subroutine, public standardname (sname, variable, prefix, suffix)
 
integer function, public assign_string (a, string)
 
logical function, public find_string (a, asize, string, aindex)
 
subroutine, public join_string (a, asize, string, lstring)
 
character(len(sinp)) function, public lowercase (sinp)
 
character(len(sinp)) function, public uppercase (sinp)
 

Function/Subroutine Documentation

◆ assign_string()

integer function, public strings_mod::assign_string ( character (len=:), intent(inout), allocatable a,
character (len=*), intent(in) string )

Definition at line 367 of file strings.F.

368!
369!=======================================================================
370! !
371! This routine assigns allocatable strings. It allocates/reallocates !
372! output string variable. !
373! !
374! On Input: !
375! !
376! string String to be assigned (character) !
377! !
378! On Output: !
379! !
380! A Assigned allocatable string (character) !
381! ErrFlag Error flag (integer) !
382! !
383!=======================================================================
384!
385! Imported variable declarations.
386!
387 character (len=:), allocatable, intent(inout) :: A
388 character (len=*), intent(in) :: string
389!
390! Local variable declarations.
391!
392 integer :: lstr
393 integer :: ErrFlag
394!
395!-----------------------------------------------------------------------
396! Allocate output string to the size of input string.
397!-----------------------------------------------------------------------
398!
399 errflag=-1
400!
401 lstr=len_trim(string)
402 IF (.not.allocated(a)) THEN
403 allocate ( character(LEN=lstr) :: A, STAT=errflag)
404 ELSE
405 deallocate (a)
406 allocate ( character(LEN=lstr) :: A, STAT=errflag)
407 END IF
408!
409! Assign requested value.
410!
411 a=string
412!
413 RETURN

Referenced by get_metadata_mod::cmeps_metadata(), get_metadata_mod::coupling_metadata(), cmeps_roms_mod::roms_create(), cmeps_roms_mod::roms_export(), esmf_roms_mod::roms_export(), and mod_esmf_esm::set_metadata().

Here is the caller graph for this function:

◆ find_string()

logical function, public strings_mod::find_string ( character (len=*), dimension(asize), intent(in) a,
integer, intent(in) asize,
character (len=*), intent(in) string,
integer, intent(out) aindex )

Definition at line 416 of file strings.F.

417!
418!=======================================================================
419! !
420! This logical function scans an array of type character for an !
421! specific string. !
422! !
423! On Input: !
424! !
425! A Array of strings (character) !
426! Asize Size of A (integer) !
427! string String to search (character) !
428! !
429! On Output: !
430! !
431! Aindex Array element containing the string (integer) !
432! foundit The value of the result is TRUE/FALSE if the !
433! string was found or not. !
434! !
435!=======================================================================
436!
437! Imported variable declarations.
438!
439 integer, intent(in) :: Asize
440
441 integer, intent(out) :: Aindex
442
443 character (len=*), intent(in) :: A(Asize)
444 character (len=*), intent(in) :: string
445!
446! Local variable declarations.
447!
448 logical :: foundit
449
450 integer :: i
451!
452!-----------------------------------------------------------------------
453! Scan array for requested string.
454!-----------------------------------------------------------------------
455!
456 foundit=.false.
457 aindex=0
458 DO i=1,asize
459 IF (trim(a(i)).eq.trim(string)) THEN
460 foundit=.true.
461 aindex=i
462 EXIT
463 END IF
464 END DO
465
466 RETURN

Referenced by def_mod_mod::def_mod_nf90(), def_mod_mod::def_mod_pio(), get_grid_mod::get_grid_nf90(), get_grid_mod::get_grid_pio(), get_nudgcoef_mod::get_nudgcoef_nf90(), get_nudgcoef_mod::get_nudgcoef_pio(), get_state_mod::get_state_nf90(), get_state_mod::get_state_pio(), get_wetdry_mod::get_wetdry_nf90(), get_wetdry_mod::get_wetdry_pio(), mod_netcdf::netcdf_check_var(), mod_pio_netcdf::pio_netcdf_check_var(), stats_modobs_mod::stats_modobs_nf90(), stats_modobs_mod::stats_modobs_pio(), time_corr_mod::time_corr_nf90(), time_corr_mod::time_corr_pio(), wrt_impulse_mod::wrt_impulse_nf90(), wrt_impulse_mod::wrt_impulse_pio(), and wrt_info_mod::wrt_info::wrt_info_nf90().

Here is the caller graph for this function:

◆ founderror()

logical function, public strings_mod::founderror ( integer, intent(in) flag,
integer, intent(in) noerr,
integer, intent(in) line,
character (len=*), intent(in) routine )

Definition at line 51 of file strings.F.

52!
53!=======================================================================
54! !
55! This logical function checks ROMS execution flag against no-error !
56! code and issue a message if they are not equal. !
57! !
58! On Input: !
59! !
60! flag ROMS execution flag (integer) !
61! NoErr No Error code (integer) !
62! line Calling model routine line (integer) !
63! routine Calling model routine (string) !
64! !
65! On Output: !
66! !
67! foundit The value of the result is TRUE/FALSE if the !
68! execution flag is in error. !
69! !
70!=======================================================================
71!
72 USE mod_iounits, ONLY : stdout
73 USE mod_parallel, ONLY : master
74!
75! Imported variable declarations.
76!
77 integer, intent(in) :: flag, NoErr, line
78
79 character (len=*), intent(in) :: routine
80!
81! Local variable declarations.
82!
83 logical :: foundit
84!
85!-----------------------------------------------------------------------
86! Scan array for requested string.
87!-----------------------------------------------------------------------
88!
89 foundit=.false.
90 IF (flag.ne.noerr) THEN
91 foundit=.true.
92 IF (master) THEN
93 WRITE (stdout,10) flag, line, trim(routine)
94 10 FORMAT (' Found Error: ', i0, t20, 'Line: ', i0, &
95 & t35, 'Source: ', a)
96 END IF
97 FLUSH (stdout)
98 END IF
99
100 RETURN
integer stdout
logical master

References mod_parallel::master, and mod_iounits::stdout.

Referenced by __interpolate_f__(), ad_nesting_mod::ad_bry_fluxes(), ad_def_his_mod::ad_def_his(), ad_def_his_mod::ad_def_his_nf90(), ad_def_his_mod::ad_def_his_pio(), ad_nesting_mod::ad_fine2coarse(), ad_nesting_mod::ad_fine2coarse2d(), ad_nesting_mod::ad_fine2coarse3d(), ad_nesting_mod::ad_get_contact3d(), ad_get_data(), ad_get_idata(), ad_nesting_mod::ad_get_persisted2d(), ad_initial(), ad_main3d(), ad_nesting_mod::ad_nesting(), ad_output(), ad_pack_tile(), ad_nesting_mod::ad_put_refine2d(), ad_nesting_mod::ad_put_refine3d(), ad_set_data_tile(), ad_wrt_his_mod::ad_wrt_his(), ad_wrt_his_mod::ad_wrt_his_nf90(), ad_wrt_his_mod::ad_wrt_his_pio(), ad_nesting_mod::ad_z_weights(), roms_kernel_mod::adm_initial(), mod_sources::allocate_sources(), mod_tides::allocate_tides(), i4dvar_mod::analysis(), r4dvar_mod::analysis(), rbl4dvar_mod::analysis(), posterior_mod::analysis_error(), rbl4dvar_mod::analysis_initialize(), i4dvar_mod::background(), r4dvar_mod::background(), rbl4dvar_mod::background(), i4dvar_mod::background_initialize(), rbl4dvar_mod::background_initialize(), bbl_output_mod::bbl_def_nf90(), bbl_output_mod::bbl_def_pio(), bbl_output_mod::bbl_def_station_nf90(), bbl_output_mod::bbl_def_station_pio(), bbl_output_mod::bbl_wrt_nf90(), bbl_output_mod::bbl_wrt_pio(), bbl_output_mod::bbl_wrt_station_nf90(), bbl_output_mod::bbl_wrt_station_pio(), nesting_mod::bry_fluxes(), cgradient_mod::cg_read_cgradient(), cgradient_mod::cg_read_cgradient_nf90(), cgradient_mod::cg_read_cgradient_pio(), congrad_mod::cg_read_congrad(), congrad_mod::cg_read_congrad_nf90(), congrad_mod::cg_read_congrad_pio(), rpcg_lanczos_mod::cg_read_rpcg(), rpcg_lanczos_mod::cg_read_rpcg_nf90(), rpcg_lanczos_mod::cg_read_rpcg_pio(), cgradient_mod::cg_write_cgradient(), cgradient_mod::cg_write_cgradient_nf90(), cgradient_mod::cg_write_cgradient_pio(), congrad_mod::cg_write_congrad(), congrad_mod::cg_write_congrad_nf90(), congrad_mod::cg_write_congrad_pio(), rpcg_lanczos_mod::cg_write_rpcg(), rpcg_lanczos_mod::cg_write_rpcg_nf90(), rpcg_lanczos_mod::cg_write_rpcg_pio(), cgradient_mod::cgradient_tile(), check_file(), check_multifile(), mod_sources::check_sources(), checkvars_mod::checkvars::checkvars_nf90(), checkvars_mod::checkvars::checkvars_pio(), close_io_mod::close_file(), close_io_mod::close_inp(), close_io_mod::close_out(), get_metadata_mod::cmeps_metadata(), comp_jb0_mod::comp_jb0_tile(), congrad_mod::congrad(), convolve_mod::convolve(), get_metadata_mod::coupling_metadata(), esmf_data_mod::data_checkfile(), esmf_data_mod::data_export(), esmf_data_mod::data_initialize(), esmf_data_mod::data_inquiry(), esmf_data_mod::data_multifile(), esmf_data_mod::data_ncread(), esmf_data_mod::data_ncvarcoords(), esmf_data_mod::data_setfinalize(), esmf_data_mod::data_setinitializep2(), esmf_data_mod::data_timeinterp(), def_avg_mod::def_avg(), def_avg_mod::def_avg_nf90(), def_avg_mod::def_avg_pio(), def_dai_mod::def_dai(), def_dai_mod::def_dai_nf90(), def_dai_mod::def_dai_pio(), def_diags_mod::def_diags(), def_diags_mod::def_diags_nf90(), def_diags_mod::def_diags_pio(), def_dim_mod::def_dim::def_dim_nf90(), def_dim_mod::def_dim::def_dim_pio(), def_error_mod::def_error(), def_error_mod::def_error_nf90(), def_error_mod::def_error_pio(), mod_esmf_esm::def_fieldatt(), def_floats_mod::def_floats(), def_floats_mod::def_floats_nf90(), def_floats_mod::def_floats_pio(), def_gst_mod::def_gst(), def_gst_mod::def_gst_nf90(), def_gst_mod::def_gst_pio(), def_hessian_mod::def_hessian(), def_hessian_mod::def_hessian_nf90(), def_hessian_mod::def_hessian_pio(), def_his_mod::def_his(), def_his_mod::def_his_nf90(), def_his_mod::def_his_pio(), def_impulse_mod::def_impulse(), def_impulse_mod::def_impulse_nf90(), def_impulse_mod::def_impulse_pio(), def_info_mod::def_info::def_info_nf90(), def_info_mod::def_info::def_info_pio(), def_ini_mod::def_ini(), def_ini_mod::def_ini_nf90(), def_ini_mod::def_ini_pio(), def_lanczos_mod::def_lanczos(), def_lanczos_mod::def_lanczos_nf90(), def_lanczos_mod::def_lanczos_pio(), def_mod_mod::def_mod(), def_mod_mod::def_mod_nf90(), def_mod_mod::def_mod_pio(), def_norm_mod::def_norm(), def_norm_mod::def_norm_nf90(), def_norm_mod::def_norm_pio(), def_quick_mod::def_quick(), def_quick_mod::def_quick_nf90(), def_quick_mod::def_quick_pio(), def_rst_mod::def_rst(), def_rst_mod::def_rst_nf90(), def_rst_mod::def_rst_pio(), def_state_mod::def_state(), def_state_mod::def_state_nf90(), def_state_mod::def_state_pio(), def_station_mod::def_station(), def_station_mod::def_station_nf90(), def_station_mod::def_station_pio(), def_tides_mod::def_tides(), def_tides_mod::def_tides_nf90(), def_tides_mod::def_tides_pio(), def_var_mod::def_var::def_var_nf90(), def_var_mod::def_var::def_var_pio(), convolve_mod::error_covariance(), inp_decode_mod::find_file(), nesting_mod::fine2coarse(), nesting_mod::fine2coarse2d(), nesting_mod::fine2coarse3d(), get_2dfld(), get_2dfld_nf90(), get_2dfld_pio(), get_2dfldr(), get_2dfldr_nf90(), get_2dfldr_pio(), get_3dfld(), get_3dfld_nf90(), get_3dfld_pio(), get_3dfldr(), get_3dfldr_nf90(), get_3dfldr_pio(), mod_esmf_esm::get_atm_ngrids(), get_cycle_mod::get_cycle::get_cycle_nf90(), get_cycle_mod::get_cycle::get_cycle_pio(), get_data(), get_grid_mod::get_grid(), get_grid_mod::get_grid_nf90(), get_grid_mod::get_grid_pio(), get_gst_mod::get_gst(), get_gst_mod::get_gst_nf90(), get_gst_mod::get_gst_pio(), get_idata(), nesting_mod::get_metrics(), get_ngfld(), get_ngfld_nf90(), get_ngfld_pio(), get_ngfldr(), get_ngfldr_nf90(), get_ngfldr_pio(), get_nudgcoef_mod::get_nudgcoef(), get_nudgcoef_mod::get_nudgcoef_nf90(), get_nudgcoef_mod::get_nudgcoef_pio(), nesting_mod::get_persisted2d(), mod_esmf_esm::get_roms_ngrids(), get_state_mod::get_state(), get_state_mod::get_state_nf90(), get_state_mod::get_state_pio(), get_varcoords_mod::get_varcoords::get_varcoords_nf90(), get_varcoords_mod::get_varcoords::get_varcoords_pio(), mod_esmf_esm::get_weights(), get_wetdry_mod::get_wetdry(), get_wetdry_mod::get_wetdry_nf90(), get_wetdry_mod::get_wetdry_pio(), cgradient_mod::hessian(), cgradient_mod::hessian_evecs(), i4dvar_mod::increment(), r4dvar_mod::increment(), rbl4dvar_mod::increment(), ini_lanczos_mod::ini_lanczos_tile(), initial(), mod_fourdvar::initialize_fourdvar(), mod_ncparam::initialize_ncparam(), set_pio_mod::initialize_pio(), inp_par_mod::inp_par(), inquiry_mod::inquiry::inquiry_nf90(), inquiry_mod::inquiry::inquiry_pio(), cgradient_mod::lanczos(), posterior_mod::lanczos(), lbc_mod::lbc_getatt::lbc_getatt_nf90(), lbc_mod::lbc_getatt::lbc_getatt_pio(), lbc_mod::lbc_putatt::lbc_putatt_nf90(), lbc_mod::lbc_putatt::lbc_putatt_pio(), main3d(), nesting_mod::mask_hweights(), multifile_info_s1d(), multifile_info_s2d(), nesting_mod::nesting(), mod_netcdf::netcdf_check_dim(), mod_netcdf::netcdf_check_var(), mod_netcdf::netcdf_get_dim(), mod_netcdf::netcdf_get_time::netcdf_get_time_0d(), mod_netcdf::netcdf_get_time::netcdf_get_time_1d(), cgradient_mod::new_cost(), cgradient_mod::new_gradient(), nf_fread2d_mod::nf_fread2d::nf90_fread2d(), nf_fread2d_bry_mod::nf_fread2d_bry::nf90_fread2d_bry(), nf_fread3d_mod::nf_fread3d::nf90_fread3d(), nf_fread3d_bry_mod::nf_fread3d_bry::nf90_fread3d_bry(), nf_fread4d_mod::nf_fread4d::nf90_fread4d(), roms_kernel_mod::nlm_initial(), normalization_mod::normalization_tile(), obs_initial_mod::obs_initial(), obs_initial_mod::obs_initial_nf90(), obs_initial_mod::obs_initial_pio(), obs_read_mod::obs_read(), obs_read_mod::obs_read_nf90(), obs_read_mod::obs_read_pio(), obs_write_mod::obs_write(), obs_write_mod::obs_write_nf90(), obs_write_mod::obs_write_pio(), output(), nf_fread2d_mod::nf_fread2d::pio_fread2d(), nf_fread2d_bry_mod::nf_fread2d_bry::pio_fread2d_bry(), nf_fread3d_mod::nf_fread3d::pio_fread3d(), nf_fread3d_bry_mod::nf_fread3d_bry::pio_fread3d_bry(), nf_fread4d_mod::nf_fread4d::pio_fread4d(), mod_pio_netcdf::pio_netcdf_check_dim(), mod_pio_netcdf::pio_netcdf_check_var(), mod_pio_netcdf::pio_netcdf_close(), mod_pio_netcdf::pio_netcdf_copy_att(), mod_pio_netcdf::pio_netcdf_create(), mod_pio_netcdf::pio_netcdf_enddef(), mod_pio_netcdf::pio_netcdf_get_dim(), mod_pio_netcdf::pio_netcdf_get_fatt::pio_netcdf_get_fatt_dp(), mod_pio_netcdf::pio_netcdf_get_fatt::pio_netcdf_get_fatt_r8(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_0d(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_0dp(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_1d(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_1dp(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_2d(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_2dp(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_3d(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_3dp(), mod_pio_netcdf::pio_netcdf_get_fvar::pio_netcdf_get_fvar_4d(), mod_pio_netcdf::pio_netcdf_get_ivar::pio_netcdf_get_ivar_0d(), mod_pio_netcdf::pio_netcdf_get_ivar::pio_netcdf_get_ivar_1d(), mod_pio_netcdf::pio_netcdf_get_ivar::pio_netcdf_get_ivar_2d(), mod_pio_netcdf::pio_netcdf_get_lvar::pio_netcdf_get_lvar_0d(), mod_pio_netcdf::pio_netcdf_get_lvar::pio_netcdf_get_lvar_1d(), mod_pio_netcdf::pio_netcdf_get_satt::pio_netcdf_get_satt_g(), mod_pio_netcdf::pio_netcdf_get_satt::pio_netcdf_get_satt_v(), mod_pio_netcdf::pio_netcdf_get_svar::pio_netcdf_get_svar_0d(), mod_pio_netcdf::pio_netcdf_get_svar::pio_netcdf_get_svar_1d(), mod_pio_netcdf::pio_netcdf_get_svar::pio_netcdf_get_svar_2d(), mod_pio_netcdf::pio_netcdf_get_svar::pio_netcdf_get_svar_3d(), mod_pio_netcdf::pio_netcdf_get_time::pio_netcdf_get_time_0d(), mod_pio_netcdf::pio_netcdf_get_time::pio_netcdf_get_time_1d(), mod_pio_netcdf::pio_netcdf_inq_var(), mod_pio_netcdf::pio_netcdf_inq_varid(), mod_pio_netcdf::pio_netcdf_open(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_0d(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_0dp(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_1d(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_1dp(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_2d(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_2dp(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_3d(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_3dp(), mod_pio_netcdf::pio_netcdf_put_fvar::pio_netcdf_put_fvar_4d(), mod_pio_netcdf::pio_netcdf_put_ivar::pio_netcdf_put_ivar_0d(), mod_pio_netcdf::pio_netcdf_put_ivar::pio_netcdf_put_ivar_1d(), mod_pio_netcdf::pio_netcdf_put_ivar::pio_netcdf_put_ivar_2d(), mod_pio_netcdf::pio_netcdf_put_lvar::pio_netcdf_put_lvar_0d(), mod_pio_netcdf::pio_netcdf_put_lvar::pio_netcdf_put_lvar_1d(), mod_pio_netcdf::pio_netcdf_put_lvar::pio_netcdf_put_lvar_2d(), mod_pio_netcdf::pio_netcdf_put_svar::pio_netcdf_put_svar_0d(), mod_pio_netcdf::pio_netcdf_put_svar::pio_netcdf_put_svar_1d(), mod_pio_netcdf::pio_netcdf_put_svar::pio_netcdf_put_svar_2d(), mod_pio_netcdf::pio_netcdf_put_svar::pio_netcdf_put_svar_3d(), mod_pio_netcdf::pio_netcdf_redef(), i4dvar_mod::posterior_analysis(), i4dvar_mod::posterior_analysis_initialize(), posterior_mod::posterior_eofs(), r4dvar_mod::posterior_error(), posterior_mod::posterior_tile(), cgradient_mod::precond(), i4dvar_mod::prior_error(), r4dvar_mod::prior_error(), rbl4dvar_mod::prior_error(), propagator_mod::propagator_afte(), propagator_mod::propagator_fsv(), propagator_mod::propagator_fte(), propagator_mod::propagator_hop(), propagator_mod::propagator_hso(), propagator_mod::propagator_op(), propagator_mod::propagator_so(), propagator_mod::propagator_so_semi(), nesting_mod::put_refine2d(), nesting_mod::put_refine3d(), normalization_mod::randomization_tile(), read_asspar(), read_fltpar(), read_phypar(), regrid_mod::regrid_nf90(), regrid_mod::regrid_pio(), cmeps_roms_mod::roms_create(), cmeps_roms_mod::roms_export(), esmf_roms_mod::roms_export(), roms_horiz_interp_2d(), roms_horiz_interp_3d(), cmeps_roms_mod::roms_import(), esmf_roms_mod::roms_import(), roms_kernel_mod::roms_initialize(), roms_kernel_mod::roms_initializep1(), roms_kernel_mod::roms_run(), roms_kernel_mod::roms_run(), rp_def_ini_mod::rp_def_ini(), rp_def_ini_mod::rp_def_ini_nf90(), rp_def_ini_mod::rp_def_ini_pio(), rp_get_data(), rp_get_idata(), rp_initial(), rp_main3d(), rp_output(), rp_set_data_tile(), rp_wrt_ini_mod::rp_wrt_ini(), rp_wrt_ini_mod::rp_wrt_ini_nf90(), rp_wrt_ini_mod::rp_wrt_ini_pio(), rpcg_lanczos_mod::rpcg_lanczos(), sediment_output_mod::sediment_def_nf90(), sediment_output_mod::sediment_def_pio(), sediment_output_mod::sediment_def_station_nf90(), sediment_output_mod::sediment_def_station_pio(), sediment_output_mod::sediment_wrt_nf90(), sediment_output_mod::sediment_wrt_pio(), sediment_output_mod::sediment_wrt_station_nf90(), sediment_output_mod::sediment_wrt_station_pio(), set_contact_mod::set_contact(), set_contact_mod::set_contact_nf90(), set_contact_mod::set_contact_pio(), set_data_tile(), set_grid(), set_pio_mod::set_iodecomp(), mod_esmf_esm::set_metadata(), state_join_mod::state_join(), state_join_mod::state_join_nf90(), state_join_mod::state_join_pio(), state_read_mod::state_read(), state_read_mod::state_read_nf90(), state_read_mod::state_read_pio(), stats_modobs_mod::stats_modobs(), stats_modobs_mod::stats_modobs_nf90(), stats_modobs_mod::stats_modobs_pio(), stdout_mod::stdout_unit(), tadv_mod::tadv_putatt::tadv_putatt_nf90(), tadv_mod::tadv_putatt::tadv_putatt_pio(), time_corr_mod::time_corr(), time_corr_mod::time_corr_nf90(), time_corr_mod::time_corr_pio(), tl_def_his_mod::tl_def_his(), tl_def_his_mod::tl_def_his_nf90(), tl_def_his_mod::tl_def_his_pio(), tl_def_ini_mod::tl_def_ini(), tl_def_ini_mod::tl_def_ini_nf90(), tl_def_ini_mod::tl_def_ini_pio(), tl_nesting_mod::tl_fine2coarse(), tl_get_data(), tl_get_idata(), tl_initial(), inner2state_mod::tl_inner2state_tile(), tl_main3d(), tl_nesting_mod::tl_nesting(), cgradient_mod::tl_new_state(), tl_output(), tl_nesting_mod::tl_put_refine2d(), tl_nesting_mod::tl_put_refine3d(), tl_set_data_tile(), tl_wrt_his_mod::tl_wrt_his(), tl_wrt_his_mod::tl_wrt_his_nf90(), tl_wrt_his_mod::tl_wrt_his_pio(), tl_wrt_ini_mod::tl_wrt_ini(), tl_wrt_ini_mod::tl_wrt_ini_nf90(), tl_wrt_ini_mod::tl_wrt_ini_pio(), tl_nesting_mod::tl_z_weights(), roms_kernel_mod::tlm_initial(), wrt_aug_imp_mod::wrt_aug_imp(), wrt_aug_imp_mod::wrt_aug_imp_nf90(), wrt_aug_imp_mod::wrt_aug_imp_pio(), wrt_avg_mod::wrt_avg(), wrt_avg_mod::wrt_avg_nf90(), wrt_avg_mod::wrt_avg_pio(), wrt_dai_mod::wrt_dai(), wrt_dai_mod::wrt_dai_nf90(), wrt_dai_mod::wrt_dai_pio(), wrt_diags_mod::wrt_diags(), wrt_diags_mod::wrt_diags_nf90(), wrt_diags_mod::wrt_diags_pio(), wrt_error_mod::wrt_error(), wrt_error_mod::wrt_error_nf90(), wrt_error_mod::wrt_error_pio(), wrt_evolved_mod::wrt_evolved(), wrt_evolved_mod::wrt_evolved_nf90(), wrt_evolved_mod::wrt_evolved_pio(), wrt_floats_mod::wrt_floats(), wrt_floats_mod::wrt_floats_nf90(), wrt_floats_mod::wrt_floats_pio(), wrt_ini_mod::wrt_frc(), wrt_ini_mod::wrt_frc_ad(), wrt_ini_mod::wrt_frc_ad_nf90(), wrt_ini_mod::wrt_frc_ad_pio(), wrt_ini_mod::wrt_frc_nf90(), wrt_ini_mod::wrt_frc_pio(), wrt_gst_mod::wrt_gst(), wrt_gst_mod::wrt_gst_nf90(), wrt_gst_mod::wrt_gst_pio(), wrt_hessian_mod::wrt_hessian(), wrt_hessian_mod::wrt_hessian_nf90(), wrt_hessian_mod::wrt_hessian_pio(), wrt_his_mod::wrt_his(), wrt_his_mod::wrt_his_nf90(), wrt_his_mod::wrt_his_pio(), wrt_impulse_mod::wrt_impulse(), wrt_impulse_mod::wrt_impulse_nf90(), wrt_impulse_mod::wrt_impulse_pio(), wrt_info_mod::wrt_info::wrt_info_nf90(), wrt_info_mod::wrt_info::wrt_info_pio(), wrt_ini_mod::wrt_ini(), wrt_ini_mod::wrt_ini_nf90(), wrt_ini_mod::wrt_ini_pio(), normalization_mod::wrt_norm2d_nf90(), normalization_mod::wrt_norm2d_pio(), normalization_mod::wrt_norm3d_nf90(), normalization_mod::wrt_norm3d_pio(), wrt_quick_mod::wrt_quick(), wrt_quick_mod::wrt_quick_nf90(), wrt_quick_mod::wrt_quick_pio(), wrt_rst_mod::wrt_rst(), wrt_rst_mod::wrt_rst_nf90(), wrt_rst_mod::wrt_rst_pio(), wrt_state_mod::wrt_state(), wrt_state_mod::wrt_state_nf90(), wrt_state_mod::wrt_state_pio(), wrt_station_mod::wrt_station(), wrt_station_mod::wrt_station_nf90(), wrt_station_mod::wrt_station_pio(), wrt_tides_mod::wrt_tides(), wrt_tides_mod::wrt_tides_nf90(), wrt_tides_mod::wrt_tides_pio(), and nesting_mod::z_weights().

Here is the caller graph for this function:

◆ globalerror()

logical function, public strings_mod::globalerror ( integer, intent(in) ng,
integer, intent(in) model,
integer, intent(inout) flag,
integer, intent(in) noerr,
integer, intent(in) line,
character (len=*), intent(in) routine )

Definition at line 103 of file strings.F.

105!
106!=======================================================================
107! !
108! This logical function checks ROMS execution flag against no-error !
109! code and issue a message if they are not equal. It can be used in !
110! split, disjointed, distributed-memory communicators. All process !
111! in application needs to call this function and the master process !
112! knows to flag value to broadcast. !
113! !
114! If not distributed-memory, this function has the same capability !
115! as FoundError. !
116! !
117! On Input: !
118! !
119! ng Nested grid number (integer) !
120! model Calling model identifier (integer) !
121! flag ROMS execution flag (integer) !
122! NoErr No Error code (integer) !
123! line Calling model routine line (integer) !
124! routine Calling model routine (string) !
125! !
126! On Output: !
127! !
128! flag Updated flag value to all processes (integer) !
129! foundit The value of the result is TRUE/FALSE if the !
130! execution flag is in error. !
131! !
132!=======================================================================
133!
134 USE mod_parallel
135 USE mod_iounits, ONLY : stdout
136
137#if defined DISTRIBUTE && defined DISJOINTED
139#endif
140!
141! Imported variable declarations.
142!
143 integer, intent(in) :: ng, model, NoErr, line
144 integer, intent(inout) :: flag
145
146 character (len=*), intent(in) :: routine
147!
148! Local variable declarations.
149!
150 logical :: foundit
151 logical :: MasterProcess
152#ifdef DISTRIBUTE
153 integer :: MyCOMM
154#endif
155!
156!-----------------------------------------------------------------------
157! Set master process.
158#ifdef DISTRIBUTE
159! Set distribute-memory communicator and broadcast flag value to all
160! processes.
161#endif
162!-----------------------------------------------------------------------
163!
164#ifdef DISTRIBUTE
165# ifdef DISJOINTED
166 mycomm=full_comm_world
167 masterprocess=fullrank.eq.0
168# else
169 mycomm=ocn_comm_world
170 masterprocess=myrank.eq.0
171# endif
172#else
173 masterprocess=master
174#endif
175#if defined DISTRIBUTE && defined DISJOINTED
176!
177 CALL mp_bcasti (ng, model, flag, mycomm)
178#endif
179!
180!-----------------------------------------------------------------------
181! Scan array for requested string.
182!-----------------------------------------------------------------------
183!
184 foundit=.false.
185 IF (flag.ne.noerr) THEN
186 foundit=.true.
187 IF (masterprocess) THEN
188 WRITE (stdout,10) flag, line, trim(routine)
189 10 FORMAT (' Found Error: ', i2.2, t20, 'Line: ', i0, &
190 & t35, 'Source: ', a)
191 END IF
192 FLUSH (stdout)
193 END IF
194
195 RETURN
subroutine mp_barrier(ng, model, inpcomm)
Definition distribute.F:126
integer fullrank
integer ocn_comm_world

References mod_parallel::fullrank, mod_parallel::master, distribute_mod::mp_barrier(), mod_parallel::myrank, mod_parallel::ocn_comm_world, and mod_iounits::stdout.

Here is the call graph for this function:

◆ join_string()

subroutine, public strings_mod::join_string ( character (len=*), dimension(asize), intent(in) a,
integer, intent(in) asize,
character (len=*), intent(out) string,
integer, intent(out) lstring )

Definition at line 469 of file strings.F.

470!
471!=======================================================================
472! !
473! This routine concatenate a character array into a single string !
474! with each element separated by commas. !
475! !
476! On Input: !
477! !
478! A Array of strings (character) !
479! Asize Size of A (integer) !
480! !
481! On Output: !
482! !
483! string Concatenated string (character) !
484! Lstring Length of concatenated string (integer) !
485! !
486!=======================================================================
487!
488! Imported variable declarations.
489!
490 integer, intent(in) :: Asize
491
492 integer, intent(out) :: Lstring
493
494 character (len=*), intent(in) :: A(Asize)
495 character (len=*), intent(out) :: string
496!
497! Local variable declarations.
498!
499 integer :: i, ie, is, lstr
500!
501!-----------------------------------------------------------------------
502! Concatenate input character array.
503!-----------------------------------------------------------------------
504!
505! Initialize to blank string.
506!
507 lstr=len(string)
508 DO i=1,lstr
509 string(i:i)=' '
510 END DO
511!
512! Concatenate.
513!
514 is=1
515 DO i=1,asize
516 lstr=len_trim(a(i))
517 IF (lstr.gt.0) THEN
518 ie=is+lstr-1
519 string(is:ie)=trim(a(i))
520 is=ie+1
521 string(is:is)=','
522 is=is+2
523 END IF
524 END DO
525 lstring=len_trim(string)-1
526
527 RETURN

Referenced by def_info_mod::def_info::def_info_nf90(), and def_info_mod::def_info::def_info_pio().

Here is the caller graph for this function:

◆ lowercase()

character (len(sinp)) function, public strings_mod::lowercase ( character (*), intent(in) sinp)

Definition at line 530 of file strings.F.

531!
532!=======================================================================
533! !
534! This character function converts input string elements to !
535! lowercase. !
536! !
537! On Input: !
538! !
539! Sinp String with uppercase elements (character) !
540! !
541! On Output: !
542! !
543! Sout Lowercase string (character) !
544! !
545! Reference: !
546! !
547! Cooper Redwine, 1995: "Upgrading to Fortran 90", Springer- !
548! Verlag, New York, pp 416. !
549! !
550!=======================================================================
551!
552! Imported variable declarations.
553!
554 character (*), intent(in) :: Sinp
555!
556! Local variable definitions.
557!
558 integer :: i, j, lstr
559
560 character (LEN(Sinp)) :: Sout
561
562 character (26), parameter :: Lcase = 'abcdefghijklmnopqrstuvwxyz'
563 character (26), parameter :: Ucase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
564!
565!-----------------------------------------------------------------------
566! Convert input string to lowercase.
567!-----------------------------------------------------------------------
568!
569 lstr=len(sinp)
570 sout=sinp
571 DO i=1,lstr
572 j=index(ucase, sout(i:i))
573 IF (j.ne.0) THEN
574 sout(i:i)=lcase(j:j)
575 END IF
576 END DO
577
578 RETURN

Referenced by check_file(), get_metadata_mod::cmeps_metadata(), esmf_coamps_mod::coamps_processimport(), esmf_coupler_mod::coupler_executerh(), get_metadata_mod::coupling_metadata(), esmf_data_mod::data_checkfile(), esmf_data_mod::data_inquiry(), esmf_data_mod::data_ncvarcoords(), esmf_data_mod::data_setclock(), inquiry_mod::inquiry::inquiry_nf90(), inquiry_mod::inquiry::inquiry_pio(), multifile_info_s1d(), multifile_info_s2d(), mod_netcdf::netcdf_get_time::netcdf_get_time_0d(), mod_netcdf::netcdf_get_time::netcdf_get_time_1d(), mod_pio_netcdf::pio_netcdf_get_time::pio_netcdf_get_time_0d(), mod_pio_netcdf::pio_netcdf_get_time::pio_netcdf_get_time_1d(), mod_esmf_esm::read_esmconfig(), cmeps_roms_mod::roms_create(), esmf_wrf_mod::wrf_processimport::wrf_processimport_scalar(), and esmf_wrf_mod::wrf_processimport::wrf_processimport_vector().

Here is the caller graph for this function:

◆ standardname()

subroutine, public strings_mod::standardname ( character (len=*), intent(out) sname,
character (len=*), intent(in) variable,
character (len=*), intent(in), optional prefix,
character (len=*), intent(in), optional suffix )

Definition at line 298 of file strings.F.

299!
300!=======================================================================
301! !
302! This routine concatenates prefix and suffix strings to generate the !
303! 'standard_name' attribute. Blank spaces in the prefix are replaced !
304! with underscore. !
305! !
306! On Input: !
307! !
308! variable Standard name main variable (character) !
309! prefix Standard name prefix (OPTIONAL, character) !
310! suffix Standard name suffix (OPTIONAL, character) !
311! !
312! On Output: !
313! !
314! Sname concatenated standard name (character) !
315! !
316!=======================================================================
317!
318! Imported variable declarations.
319!
320 character (len=*), intent(in) :: variable
321 character (len=*), optional, intent(in) :: prefix
322 character (len=*), optional, intent(in) :: suffix
323 character (len=*), intent(out) :: Sname
324!
325! Local variable declarations.
326!
327 integer :: Icomma, Lstr, i
328!
329!-----------------------------------------------------------------------
330! Generate 'standard_name' attribute.
331!-----------------------------------------------------------------------
332!
333 DO i=1,len(sname)
334 sname(i:i)=char(32)
335 END DO
336!
337! Replace blank space with underscore, CHAR(95).
338!
339 lstr=len_trim(variable)
340 icomma=index(variable,char(44),back=.false.)
341 IF (icomma.gt.0) THEN ! remove comma
342 sname=variable(1:icomma-1) // variable(icomma+1:lstr)
343 lstr=len_trim(sname)
344 ELSE
345 sname(1:lstr)=variable(1:lstr)
346 END IF
347!
348 DO i=1,lstr
349 IF (sname(i:i).eq.char(32)) THEN
350 sname(i:i)=char(95)
351 END IF
352 END DO
353!
354! Append prefix and or suffix string(s).
355
356 IF (PRESENT(prefix)) THEN
357 sname=trim(adjustl(prefix)) // trim(adjustl(sname))
358 END IF
359!
360 IF (PRESENT(suffix)) THEN
361 sname=trim(adjustl(sname)) // trim(adjustl(suffix))
362 END IF
363!
364 RETURN

Referenced by mod_ncparam::initialize_ncparam(), cmeps_roms_mod::roms_setinitializep1(), and esmf_roms_mod::roms_setinitializep1().

Here is the caller graph for this function:

◆ taskerror()

logical function, public strings_mod::taskerror ( integer, intent(in) ng,
integer, intent(in) model,
integer, intent(inout) flag,
integer, intent(in) noerr,
integer, intent(in) line,
character (len=*), intent(in) routine )

Definition at line 198 of file strings.F.

200!
201!=======================================================================
202! !
203! This logical function checks ROMS execution flag against no-error !
204! code and issue a message if they are not equal. It can be used in !
205! split, disjointed-tasks, distributed-memory communicators. All !
206! processes in the task section needs to call this function and its !
207! master process knows to flag value to broadcast. !
208! !
209! If not distributed-memory, this function has the same capability !
210! as FoundError and GlobalError. !
211! !
212! On Input: !
213! !
214! ng Nested grid number (integer) !
215! model Calling model identifier (integer) !
216! flag ROMS execution flag (integer) !
217! NoErr No Error code (integer) !
218! line Calling model routine line (integer) !
219! routine Calling model routine (string) !
220! !
221! On Output: !
222! !
223! flag Updated flag value to all processes (integer) !
224! foundit The value of the result is TRUE/FALSE if the !
225! execution flag is in error. !
226! !
227!=======================================================================
228!
229 USE mod_parallel
230 USE mod_iounits, ONLY : stdout
231
232#if defined DISTRIBUTE && defined DISJOINTED
234#endif
235!
236! Imported variable declarations.
237!
238 integer, intent(in) :: ng, model, NoErr, line
239 integer, intent(inout) :: flag
240
241 character (len=*), intent(in) :: routine
242!
243! Local variable declarations.
244!
245 logical :: foundit
246 logical :: MasterProcess
247#ifdef DISTRIBUTE
248 integer :: MyCOMM
249#endif
250!
251!-----------------------------------------------------------------------
252! Set master process.
253#ifdef DISTRIBUTE
254! Set distribute-memory communicator and broadcast flag value to all
255! processes.
256#endif
257!-----------------------------------------------------------------------
258!
259#ifdef DISTRIBUTE
260# ifdef DISJOINTED
261# ifdef CONCURRENT_KERNEL
262 mycomm=task_comm_world
263 masterprocess=taskrank.eq.0
264# else
265 mycomm=full_comm_world
266 masterprocess=fullrank.eq.0
267# endif
268# else
269 mycomm=ocn_comm_world
270 masterprocess=myrank.eq.0
271# endif
272#else
273 masterprocess=master
274#endif
275#if defined DISTRIBUTE && defined DISJOINTED
276!
277 CALL mp_bcasti (ng, model, flag, mycomm)
278#endif
279!
280!-----------------------------------------------------------------------
281! Scan array for requested string.
282!-----------------------------------------------------------------------
283!
284 foundit=.false.
285 IF (flag.ne.noerr) THEN
286 foundit=.true.
287 IF (masterprocess) THEN
288 WRITE (stdout,10) flag, line, trim(routine)
289 10 FORMAT (' Found Error: ', i2.2, t20, 'Line: ', i0, &
290 & t35, 'Source: ', a)
291 END IF
292 FLUSH (stdout)
293 END IF
294
295 RETURN
integer taskrank

References mod_parallel::fullrank, mod_parallel::master, distribute_mod::mp_barrier(), mod_parallel::myrank, mod_parallel::ocn_comm_world, mod_iounits::stdout, and mod_parallel::taskrank.

Here is the call graph for this function:

◆ uppercase()

character (len(sinp)) function, public strings_mod::uppercase ( character (*), intent(in) sinp)

Definition at line 581 of file strings.F.

582!
583!=======================================================================
584! !
585! This character function converts input string elements to !
586! uppercase. !
587! !
588! On Input: !
589! !
590! Sinp String with lowercase characters (character) !
591! !
592! On Output: !
593! !
594! Sout Uppercase string (character) !
595! !
596! Reference: !
597! !
598! Cooper Redwine, 1995: "Upgrading to Fortran 90", Springer- !
599! Verlag, New York, pp 416. !
600! !
601!=======================================================================
602!
603! Imported variable declarations.
604!
605 character (*), intent(in) :: Sinp
606!
607! Local variable definitions.
608!
609 integer :: i, j, lstr
610
611 character (LEN(Sinp)) :: Sout
612
613 character (26), parameter :: Lcase = 'abcdefghijklmnopqrstuvwxyz'
614 character (26), parameter :: Ucase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
615!
616!-----------------------------------------------------------------------
617! Convert input string to uppercase.
618!-----------------------------------------------------------------------
619!
620 lstr=len(sinp)
621 sout=sinp
622 DO i=1,lstr
623 j=index(lcase, sout(i:i))
624 IF (j.ne.0) THEN
625 sout(i:i)=ucase(j:j)
626 END IF
627 END DO
628
629 RETURN

Referenced by checkadj(), checkdefs(), esmf_data_mod::data_inquiry(), def_mod_mod::def_mod_nf90(), def_mod_mod::def_mod_pio(), get_hash_mod::get_hash(), mod_fourdvar::initialize_fourdvar(), inp_decode_mod::load_lbc(), inp_decode_mod::load_tadv(), read_asspar(), roms_kernel_mod::roms_run(), mod_esmf_esm::set_metadata(), wclock_off(), and esmf_wrf_mod::wrf_export().

Here is the caller graph for this function: