dyn_constituent_input_alias Function

function dyn_constituent_input_alias(pio_file, standard_name) result(input_alias)

Uses

    • phys_vars_init_check
    • pio
  • proc~~dyn_constituent_input_alias~~UsesGraph proc~dyn_constituent_input_alias dyn_constituent_input_alias phys_vars_init_check phys_vars_init_check proc~dyn_constituent_input_alias->phys_vars_init_check pio pio proc~dyn_constituent_input_alias->pio

Inquire the constituent input alias to use for the given standard name. To be successfully considered as the input alias, it must be: 1. Defined in the CAM-SIMA registry; 2. Present on the file indicated by pio_file. If no suitable input alias is found, an empty character string is produced. (KCW, 2026-08-17)

Arguments

Type IntentOptional Attributes Name
type(file_desc_t), intent(in), pointer :: pio_file
character(len=std_name_len), intent(in) :: standard_name

Return Value character(len=ic_name_len)


Calls

proc~~dyn_constituent_input_alias~~CallsGraph proc~dyn_constituent_input_alias dyn_constituent_input_alias input_var_names input_var_names proc~dyn_constituent_input_alias->input_var_names pio_file_is_open pio_file_is_open proc~dyn_constituent_input_alias->pio_file_is_open pio_inq_varid pio_inq_varid proc~dyn_constituent_input_alias->pio_inq_varid

Called by

proc~~dyn_constituent_input_alias~~CalledByGraph proc~dyn_constituent_input_alias dyn_constituent_input_alias proc~dyn_init dyn_init proc~dyn_init->proc~dyn_constituent_input_alias interface~dyn_init dyn_init interface~dyn_init->proc~dyn_init

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: ierr
integer, private :: j
integer, private :: varid

Source Code

    function dyn_constituent_input_alias(pio_file, standard_name) result(input_alias)
        ! Module(s) from CCPP.
        use phys_vars_init_check, only: ic_name_len, std_name_len, &
                                        input_var_names, phys_var_stdnames
        ! Module(s) from external libraries.
        use pio, only: file_desc_t, pio_file_is_open, pio_inq_varid, pio_noerr

        type(file_desc_t), pointer, intent(in) :: pio_file
        character(std_name_len), intent(in) :: standard_name
        character(ic_name_len) :: input_alias

        integer :: i, j
        integer :: ierr, varid

        input_alias = ''

        if (.not. associated(pio_file)) then
            return
        end if

        if (.not. pio_file_is_open(pio_file)) then
            return
        end if

        j = findloc(adjustl(phys_var_stdnames), adjustl(standard_name), dim=1)

        if (j == 0) then
            return
        end if

        do i = 1, size(input_var_names, 1)
            if (input_var_names(i, j) == '') then
                cycle
            end if

            ! Check if the variable is present on the file.
            ierr = pio_inq_varid(pio_file, trim(adjustl(input_var_names(i, j))), varid)

            if (ierr == pio_noerr) then
                input_alias = trim(adjustl(input_var_names(i, j)))

                exit
            end if
        end do
    end function dyn_constituent_input_alias