Line data Source code
1 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3 : !!!! !!!! 4 : !!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!! 5 : !!!! !!!! 6 : !!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!! 7 : !!!! !!!! 8 : !!!! This file is part of the ParaMonte library. !!!! 9 : !!!! !!!! 10 : !!!! LICENSE !!!! 11 : !!!! !!!! 12 : !!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!! 13 : !!!! !!!! 14 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 15 : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 16 : 17 : !> \brief 18 : !> This file contains the implementation details of the routines under the generic interfaces of [pm_container](@ref pm_container). 19 : !> 20 : !> \finmain 21 : !> 22 : !> \author 23 : !> \AmirShahmoradi, September 1, 2017, 11:35 PM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin 24 : 25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 : 27 : #if isless_ENABLED 28 9 : itis = allocated(con1%val) .and. allocated(con2%val) 29 9 : if (itis) itis = con1%val < con2%val 30 : #elif ismore_ENABLED 31 9 : itis = allocated(con1%val) .and. allocated(con2%val) 32 9 : if (itis) itis = con1%val > con2%val 33 : #elif isleq_ENABLED 34 9 : itis = allocated(con1%val) .and. allocated(con2%val) 35 9 : if (itis) itis = con1%val <= con2%val 36 : #elif ismeq_ENABLED 37 9 : itis = allocated(con1%val) .and. allocated(con2%val) 38 9 : if (itis) itis = con1%val >= con2%val 39 : #elif isneq_ENABLED 40 9 : itis = allocated(con1%val) .and. allocated(con2%val) 41 9 : if (itis) itis = con1%val /= con2%val 42 : #elif iseq_ENABLED 43 9 : itis = allocated(con1%val) .and. allocated(con2%val) 44 9 : if (itis) itis = con1%val == con2%val 45 : #elif assign_ENABLED 46 7 : if (allocated(source%val)) destin%val = source%val 47 : #elif constructCon_ENABLED && (IK_ENABLED || LK_ENABLED || CK_ENABLED || RK_ENABLED) 48 0 : container%val = val 49 : #elif constructCon_ENABLED && PK_ENABLED 50 336 : allocate(container%val, source = val) 51 : #elif constructCon_ENABLED && SK_ENABLED 52 11092 : if (present(trimmed)) then 53 9 : if (trimmed) then 54 6 : container%val = val 55 6 : return 56 : end if 57 : end if 58 11086 : container%val = trim(val) 59 : #elif getVal_ENABLED 60 : if (allocated(con%val)) val = con%val 61 : #else 62 : #error "Unrecognized interface." 63 : #endif