cache_save Subroutine

public subroutine cache_save(directory, id, gamma, parallel, distribution, derivatives, normalization, ok, reason)

Write/close/verify a unique same-directory temporary entry before atomic POSIX rename. Inputs are read-only. Failure returns ok=false and leaves an existing entry untouched. Uses libc via ISO_C_BINDING; no C source or additional library is required on Linux.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: directory
type(rel_cache_identity), intent(in) :: id
real(kind=real64), intent(in) :: gamma(0:,0:)
real(kind=real64), intent(in) :: parallel(0:,0:)
real(kind=real64), intent(in) :: distribution(0:,0:)
real(kind=real64), intent(in) :: derivatives(0:,0:,:)
real(kind=real64), intent(in) :: normalization
logical, intent(out) :: ok
character(len=*), intent(out) :: reason

Calls

proc~~cache_save~~CallsGraph proc~cache_save cache_save interface~posix_close posix_close proc~cache_save->interface~posix_close interface~posix_mkstemp posix_mkstemp proc~cache_save->interface~posix_mkstemp interface~posix_rename posix_rename proc~cache_save->interface~posix_rename interface~posix_unlink posix_unlink proc~cache_save->interface~posix_unlink proc~cache_path cache_path proc~cache_save->proc~cache_path proc~header header proc~cache_save->proc~header proc~read_entry read_entry proc~cache_save->proc~read_entry proc~sha_finish sha256_state%sha_finish proc~cache_save->proc~sha_finish proc~sha_init sha256_state%sha_init proc~cache_save->proc~sha_init proc~sha_update sha256_state%sha_update proc~cache_save->proc~sha_update proc~metadata metadata proc~header->proc~metadata proc~read_entry->proc~header proc~read_entry->proc~sha_finish proc~read_entry->proc~sha_init proc~read_entry->proc~sha_update proc~read_entry->proc~metadata proc~valid_values valid_values proc~read_entry->proc~valid_values proc~sha_finish->proc~sha_update proc~compress compress proc~sha_update->proc~compress proc~rotate rotate proc~compress->proc~rotate

Called by

proc~~cache_save~~CalledByGraph proc~cache_save cache_save proc~derivative_f0_rel derivative_f0_rel proc~derivative_f0_rel->proc~cache_save proc~derivative_f0 derivative_f0 proc~derivative_f0->proc~derivative_f0_rel program~alps alps program~alps->proc~derivative_f0