\hypertarget{namespacedc__test}{}\section{dc\+\_\+test Module Reference}
\label{namespacedc__test}\index{dc\+\_\+test@{dc\+\_\+test}}
\subsection*{Data Types}
\begin{DoxyCompactItemize}
\item 
interface \hyperlink{interfacedc__test_1_1assertequal}{assertequal}
\item 
interface \hyperlink{interfacedc__test_1_1assertgreaterthan}{assertgreaterthan}
\item 
interface \hyperlink{interfacedc__test_1_1assertlessthan}{assertlessthan}
\end{DoxyCompactItemize}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine \hyperlink{namespacedc__test_a3e1b21c940f924f289c8bda288187157}{dctestassertequalchar0} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a5dd4a6730622ad1649c6a8d77da338e2}{dctestassertequalchar1} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a0788366d1e643a6d41eddbdd319eb0a0}{dctestassertequalchar2} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a4afa91dab809ef5509444107cede7c42}{dctestassertequalchar3} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a27a677b2149094c148cfd4eeaee26a3b}{dctestassertequalchar4} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_aec8dc579d28a80012265fa69d08ca0de}{dctestassertequalchar5} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_ac37fccecfc1102c0d22228bc151a2d7e}{dctestassertequalchar6} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a2cfd2f97fade013825a733afcdbe189b}{dctestassertequalchar7} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_af1360f58ecfc661f088f34608339f5c5}{dctestassertequalint0} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a3a3ab7d9e43139a9237ab9a8b0f2e969}{dctestassertequalint1} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_af4805f067921cde82159d53cbb674c97}{dctestassertequalint2} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_ae64ef30b66884d430aa2ffe43ab23584}{dctestassertequalint3} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a6e7b69732c577c1f0e75edbccac8b618}{dctestassertequalint4} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a1de2ec08e272751973f901026750a693}{dctestassertequalint5} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a88dfeac828710cc9beadfa5e2d89801d}{dctestassertequalint6} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a3712c54be325e3fa05d63ab3f1e9c6d8}{dctestassertequalint7} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a804219402fdf7b21f5681687a1eac76d}{dctestassertequalreal0} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_acd6257297a565a43dfdddde112152c10}{dctestassertequalreal1} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a1fe9c8e1b8e5377cea9096d89a81aba9}{dctestassertequalreal2} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_adb3f78450733ce27579f4704b5b3da04}{dctestassertequalreal3} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a24d343162a875787b9073ba74e6f788b}{dctestassertequalreal4} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a45f8c11826b5db2ee31c26ad8110d8ce}{dctestassertequalreal5} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a56c58886052cee279acb53729fb5b243}{dctestassertequalreal6} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a56548a7e0cd8b80ae6e34a2dc256459d}{dctestassertequalreal7} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a6410023b7d3b69cfc3e630dc41cc83d8}{dctestassertequaldouble0} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a77a9c1e9f552f85c053293e018642a99}{dctestassertequaldouble1} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_aaca85075c339cd738a1273f1cf60682c}{dctestassertequaldouble2} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_ad6e506c403fdbd1df4f9872cd57f380a}{dctestassertequaldouble3} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_ab3352e51a8b10d642d0deedb984f77e2}{dctestassertequaldouble4} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_af633351bea9773b6d74161fd40c793ca}{dctestassertequaldouble5} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_ac5dbee18978876086a13dfd5c0574d0d}{dctestassertequaldouble6} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a6c08715d6b92a7a41d70804faf0439c1}{dctestassertequaldouble7} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_aba85cc5713828aa9a03aef9a748abdbf}{dctestassertequallogical0} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_af6b625c4f021c5c74044719921655b7f}{dctestassertequallogical1} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a4470588faf39e2d7f713b3e53d7d6ac9}{dctestassertequallogical2} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_ae688aeba2bc9afbb50db9768e3d4b6c0}{dctestassertequallogical3} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_abc8b0ff0f8f5c4d4f8b12c7dcbd28ccb}{dctestassertequallogical4} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_acc7a7a45cba4c850e13b9a24810a499d}{dctestassertequallogical5} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a4ad0124e7c92193f47fdf41f646b7748}{dctestassertequallogical6} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a1aca06626f712a2ce70654771b1fb1c0}{dctestassertequallogical7} (message, answer, check)
\item 
subroutine \hyperlink{namespacedc__test_a0fc485baf2cb1bcf06fface6a8390a9f}{dctestassertequalreal0digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_ad07e88e22ae0532a57c91df17929cf0e}{dctestassertequalreal1digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a583c8186bd8ed299aefa62ae5d8a5050}{dctestassertequalreal2digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a01b383a8f977885ad9e34b71ee51c5e1}{dctestassertequalreal3digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_aed734b8ebca9216b8b8480380304072b}{dctestassertequalreal4digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_acf159d39c75e081a58533c1c19125277}{dctestassertequalreal5digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_ae4b2fc5ee4de62154c04d04994b62c9c}{dctestassertequalreal6digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_ac7b251b46e1fea1babcbf237bd46ea75}{dctestassertequalreal7digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_aef0f5928ed8b3bb3215dd7dc517c9a41}{dctestassertequaldouble0digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a8887ec09e47c580c6226a0ea5fd13265}{dctestassertequaldouble1digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a896b4d0624e6a851dbfbe3b2102b1852}{dctestassertequaldouble2digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a09d6b1a5582a7b3679164f32b5b481fb}{dctestassertequaldouble3digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_aee86dd15f714c31a64a20371d2e207a9}{dctestassertequaldouble4digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_acb155fcfd1826a16c8af71a1341a193e}{dctestassertequaldouble5digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a3d69b5d3695a5a167d6283926e0809b8}{dctestassertequaldouble6digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a6b21f9ed94b74a7ab4081bf8b7d874a3}{dctestassertequaldouble7digits} (message, answer, check, significant\+\_\+digits, ignore\+\_\+digits)
\item 
subroutine \hyperlink{namespacedc__test_a88818294f62ea17f69f0a3d14250aa8d}{dctestassertgreaterthanint0} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a0a668866ed4f10c2ecdcfe3d3004e5a1}{dctestassertgreaterthanint1} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_aaa2891a27e19d8ef79e00fdca3465533}{dctestassertgreaterthanint2} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a3b00d56770ad165fb4b506f3e49403dc}{dctestassertgreaterthanint3} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a9d4fb6ab336e83881d79483eabbf94c7}{dctestassertgreaterthanint4} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_afd60aad32b7749e0c82223bd790a2bfe}{dctestassertgreaterthanint5} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ad1ec5284a9b8fea219af29b2fbc9e271}{dctestassertgreaterthanint6} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a1eb5de773252413489e4a8856e498832}{dctestassertgreaterthanint7} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a8e7d337e2382b209a6bd00c8ca7ed4b1}{dctestassertgreaterthanreal0} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ae341bd97dabcef347be0870c1d9223f8}{dctestassertgreaterthanreal1} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a5b1106889d38e37ebb80632412b438ee}{dctestassertgreaterthanreal2} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a791ec2153db5d84e2e1c7188bdfb65fa}{dctestassertgreaterthanreal3} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ae3647e2ef4a57d9f049a02a3c839b694}{dctestassertgreaterthanreal4} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a596e0f0e8efda2345c197bd2107f9101}{dctestassertgreaterthanreal5} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a81a38f84f9cb098bb01c2f6bc49b0d82}{dctestassertgreaterthanreal6} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_af88ec25984569bc54e1a5ccbddf7845f}{dctestassertgreaterthanreal7} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a89b22ca9cfc7967df3808c2fec067606}{dctestassertgreaterthandouble0} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a96e139e5a0771adcdb417c709544778e}{dctestassertgreaterthandouble1} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a8bbe521ac866b02e5e7450eba4b50fa8}{dctestassertgreaterthandouble2} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a772764e22792b496edb060856aadf5b6}{dctestassertgreaterthandouble3} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a1a7b6b2c75945260429150e0acda4936}{dctestassertgreaterthandouble4} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ae6a46501e39453c57cadd549a472a89a}{dctestassertgreaterthandouble5} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_adf29e7cd2c6de9a1ca7dc2705854bcc8}{dctestassertgreaterthandouble6} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ae248ac55b06eb89820f98334c01ade90}{dctestassertgreaterthandouble7} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a1afd6c489cd55f3d225af9236f1a7765}{dctestassertlessthanint0} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_af4349904683449d4f634e9440510cb11}{dctestassertlessthanint1} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ad607facaab34ec33835ddef7ec798c42}{dctestassertlessthanint2} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a9c7c2bdaaf736834595ebec043bb1526}{dctestassertlessthanint3} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_af4017cf127250c9d61d2ebce78d2ad4f}{dctestassertlessthanint4} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a8d16845d79c6d739f30242b8d21598a6}{dctestassertlessthanint5} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a9ddd6666717d7fd284ffb79b3111c92a}{dctestassertlessthanint6} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a12ecd607aeb7517c70f4e34c1fd21f52}{dctestassertlessthanint7} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_adea1b9f2be69c577b109b379a7adf7ac}{dctestassertlessthanreal0} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a94df53eee2ce21ceac0d55cf171d32cc}{dctestassertlessthanreal1} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a54a0f98476b45404cde22695f134db38}{dctestassertlessthanreal2} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a83ce6804e73250a71d189eb5ea3b9078}{dctestassertlessthanreal3} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a025dd5a14ceed4b8ba9e9b8db3468d37}{dctestassertlessthanreal4} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ae393d032a8389f5a0c216cbce4b8db1c}{dctestassertlessthanreal5} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_abf0ada9282508ed8a66ba90ba9fb7805}{dctestassertlessthanreal6} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ad6ccace8abdb7ed674fedc04f39da7a8}{dctestassertlessthanreal7} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a3727a37d042d81599b3df0e2be0f5838}{dctestassertlessthandouble0} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_aa5cba3200e9de3818cfc3da6fe703d55}{dctestassertlessthandouble1} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_aeb35c473e5a0246ccff623fb869fcc81}{dctestassertlessthandouble2} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ac110054574a0812a479172f725ce84d1}{dctestassertlessthandouble3} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a3369b42525eb5a17a536646bb8d1cdc0}{dctestassertlessthandouble4} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_aad8f4c35b3337ce5a922ae6766d4e4ff}{dctestassertlessthandouble5} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_ae683e5ecd7962038fd48b65a636aa83b}{dctestassertlessthandouble6} (message, answer, check, negative\+\_\+support)
\item 
subroutine \hyperlink{namespacedc__test_a50643d2414f2fe147d39e682da95c495}{dctestassertlessthandouble7} (message, answer, check, negative\+\_\+support)
\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacedc__test_a3e1b21c940f924f289c8bda288187157}\label{namespacedc__test_a3e1b21c940f924f289c8bda288187157}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar0@{dctestassertequalchar0}}
\index{dctestassertequalchar0@{dctestassertequalchar0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar0()}{dctestassertequalchar0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), intent(in)}]{answer,  }\item[{character($\ast$), intent(in)}]{check }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 531 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical0().


\begin{DoxyCode}
531     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
532     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
533     \textcolor{keywordtype}{implicit none}
534     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
535     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer
536     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check
537     \textcolor{keywordtype}{logical}:: err\_flag
538     \textcolor{keywordtype}{character(STRING)}:: pos\_str
539     \textcolor{keywordtype}{character(STRING)}:: wrong, right
540 
541                                         
542 
543                                                                 
544                     
545 
546   \textcolor{keywordflow}{continue}
547     err\_flag = .false.
548 
549                     
550     err\_flag = .not. trim(answer) == trim(check)
551     wrong = check
552     right = answer
553     pos\_str = \textcolor{stringliteral}{''}
554 
555                     
556 
557 
558     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
559       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
560       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
561       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
562       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
563       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
564 
565       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
566     \textcolor{keywordflow}{else}
567       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
568 \textcolor{keywordflow}{    end if}
569 
570 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a3e1b21c940f924f289c8bda288187157_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a5dd4a6730622ad1649c6a8d77da338e2}\label{namespacedc__test_a5dd4a6730622ad1649c6a8d77da338e2}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar1@{dctestassertequalchar1}}
\index{dctestassertequalchar1@{dctestassertequalchar1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar1()}{dctestassertequalchar1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 575 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical1().


\begin{DoxyCode}
575     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
576     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
577     \textcolor{keywordtype}{implicit none}
578     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
579     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:)
580     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:)
581     \textcolor{keywordtype}{logical}:: err\_flag
582     \textcolor{keywordtype}{character(STRING)}:: pos\_str
583     \textcolor{keywordtype}{character(STRING)}:: wrong, right
584 
585                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
586     \textcolor{keywordtype}{logical}:: consist\_shape(1)
587     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
588     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
589     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
590     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
591                     
592 
593                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:)
594     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:)
595                       
596                     
597 
598   \textcolor{keywordflow}{continue}
599     err\_flag = .false.
600 
601                     
602     answer\_shape = shape(answer)
603     check\_shape = shape(check)
604 
605     consist\_shape = answer\_shape == check\_shape
606 
607     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
608       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
609       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
610       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
611       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
612       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
613 
614       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
615 \textcolor{keywordflow}{    end if}
616 
617 
618     \textcolor{keyword}{allocate}( mask\_array( &
619                       
620       &    answer\_shape(1)  )  &
621       &  )
622 
623     \textcolor{keyword}{allocate}( judge( &
624                       
625       &    answer\_shape(1)  )  &
626       &  )
627 
628     \textcolor{keyword}{allocate}( judge\_rev( &
629                       
630       &    answer\_shape(1)  )  &
631       &  )
632 
633                       
634     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
635                         
636       &    answer\_shape(1)  )  &
637       &  )
638 
639     \textcolor{keyword}{allocate}( check\_fixed\_length( &
640                         
641       &    check\_shape(1)  )  &
642       &  )
643 
644     answer\_fixed\_length = answer
645     check\_fixed\_length = check
646 
647     judge = answer\_fixed\_length == check\_fixed\_length
648     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
649 
650                       
651 
652     judge\_rev = .not. judge
653     err\_flag = any(judge\_rev)
654     mask\_array = 1
655     pos = maxloc(mask\_array, judge\_rev)
656 
657     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
658 
659       wrong = check( &
660                       
661         &    pos(1)  )
662 
663       right = answer( &
664                       
665         &    pos(1)  )
666 
667                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
668                       
669 
670       pos\_str = \textcolor{stringliteral}{'('} // &
671                       
672         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
673 
674 \textcolor{keywordflow}{    end if}
675     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
676 
677                     
678 
679 
680     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
681       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
682       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
683       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
684       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
685       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
686 
687       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
688     \textcolor{keywordflow}{else}
689       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
690 \textcolor{keywordflow}{    end if}
691 
692 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a5dd4a6730622ad1649c6a8d77da338e2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a0788366d1e643a6d41eddbdd319eb0a0}\label{namespacedc__test_a0788366d1e643a6d41eddbdd319eb0a0}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar2@{dctestassertequalchar2}}
\index{dctestassertequalchar2@{dctestassertequalchar2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar2()}{dctestassertequalchar2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:,\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 697 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical2().


\begin{DoxyCode}
697     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
698     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
699     \textcolor{keywordtype}{implicit none}
700     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
701     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
702     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
703     \textcolor{keywordtype}{logical}:: err\_flag
704     \textcolor{keywordtype}{character(STRING)}:: pos\_str
705     \textcolor{keywordtype}{character(STRING)}:: wrong, right
706 
707                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
708     \textcolor{keywordtype}{logical}:: consist\_shape(2)
709     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
710     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
711     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
712     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
713                     
714 
715                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:,:)
716     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:,:)
717                       
718                     
719 
720   \textcolor{keywordflow}{continue}
721     err\_flag = .false.
722 
723                     
724     answer\_shape = shape(answer)
725     check\_shape = shape(check)
726 
727     consist\_shape = answer\_shape == check\_shape
728 
729     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
730       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
731       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
732       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
733       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
734       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
735 
736       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
737 \textcolor{keywordflow}{    end if}
738 
739 
740     \textcolor{keyword}{allocate}( mask\_array( &
741                             &    answer\_shape(1), &
742                       
743       &    answer\_shape(2)  )  &
744       &  )
745 
746     \textcolor{keyword}{allocate}( judge( &
747                             &    answer\_shape(1), &
748                       
749       &    answer\_shape(2)  )  &
750       &  )
751 
752     \textcolor{keyword}{allocate}( judge\_rev( &
753                             &    answer\_shape(1), &
754                       
755       &    answer\_shape(2)  )  &
756       &  )
757 
758                       
759     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
760                               &    answer\_shape(1), &
761                         
762       &    answer\_shape(2)  )  &
763       &  )
764 
765     \textcolor{keyword}{allocate}( check\_fixed\_length( &
766                               &    check\_shape(1), &
767                         
768       &    check\_shape(2)  )  &
769       &  )
770 
771     answer\_fixed\_length = answer
772     check\_fixed\_length = check
773 
774     judge = answer\_fixed\_length == check\_fixed\_length
775     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
776 
777                       
778 
779     judge\_rev = .not. judge
780     err\_flag = any(judge\_rev)
781     mask\_array = 1
782     pos = maxloc(mask\_array, judge\_rev)
783 
784     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
785 
786       wrong = check( &
787                               &    pos(1), &
788                       
789         &    pos(2)  )
790 
791       right = answer( &
792                               &    pos(1), &
793                       
794         &    pos(2)  )
795 
796                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
797                       
798       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
799                       
800 
801       pos\_str = \textcolor{stringliteral}{'('} // &
802                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
803                       
804         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
805 
806 \textcolor{keywordflow}{    end if}
807     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
808 
809                     
810 
811 
812     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
813       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
814       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
815       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
816       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
817       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
818 
819       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
820     \textcolor{keywordflow}{else}
821       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
822 \textcolor{keywordflow}{    end if}
823 
824 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a0788366d1e643a6d41eddbdd319eb0a0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a4afa91dab809ef5509444107cede7c42}\label{namespacedc__test_a4afa91dab809ef5509444107cede7c42}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar3@{dctestassertequalchar3}}
\index{dctestassertequalchar3@{dctestassertequalchar3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar3()}{dctestassertequalchar3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 829 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical3().


\begin{DoxyCode}
829     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
830     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
831     \textcolor{keywordtype}{implicit none}
832     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
833     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
834     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
835     \textcolor{keywordtype}{logical}:: err\_flag
836     \textcolor{keywordtype}{character(STRING)}:: pos\_str
837     \textcolor{keywordtype}{character(STRING)}:: wrong, right
838 
839                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
840     \textcolor{keywordtype}{logical}:: consist\_shape(3)
841     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
842     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
843     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
844     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
845                     
846 
847                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:,:,:)
848     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:,:,:)
849                       
850                     
851 
852   \textcolor{keywordflow}{continue}
853     err\_flag = .false.
854 
855                     
856     answer\_shape = shape(answer)
857     check\_shape = shape(check)
858 
859     consist\_shape = answer\_shape == check\_shape
860 
861     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
862       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
863       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
864       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
865       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
866       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
867 
868       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
869 \textcolor{keywordflow}{    end if}
870 
871 
872     \textcolor{keyword}{allocate}( mask\_array( &
873                             &    answer\_shape(1), &
874                       
875       &    answer\_shape(2), &
876                       
877       &    answer\_shape(3)  )  &
878       &  )
879 
880     \textcolor{keyword}{allocate}( judge( &
881                             &    answer\_shape(1), &
882                       
883       &    answer\_shape(2), &
884                       
885       &    answer\_shape(3)  )  &
886       &  )
887 
888     \textcolor{keyword}{allocate}( judge\_rev( &
889                             &    answer\_shape(1), &
890                       
891       &    answer\_shape(2), &
892                       
893       &    answer\_shape(3)  )  &
894       &  )
895 
896                       
897     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
898                               &    answer\_shape(1), &
899                         
900       &    answer\_shape(2), &
901                         
902       &    answer\_shape(3)  )  &
903       &  )
904 
905     \textcolor{keyword}{allocate}( check\_fixed\_length( &
906                               &    check\_shape(1), &
907                         
908       &    check\_shape(2), &
909                         
910       &    check\_shape(3)  )  &
911       &  )
912 
913     answer\_fixed\_length = answer
914     check\_fixed\_length = check
915 
916     judge = answer\_fixed\_length == check\_fixed\_length
917     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
918 
919                       
920 
921     judge\_rev = .not. judge
922     err\_flag = any(judge\_rev)
923     mask\_array = 1
924     pos = maxloc(mask\_array, judge\_rev)
925 
926     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
927 
928       wrong = check( &
929                               &    pos(1), &
930                       
931         &    pos(2), &
932                       
933         &    pos(3)  )
934 
935       right = answer( &
936                               &    pos(1), &
937                       
938         &    pos(2), &
939                       
940         &    pos(3)  )
941 
942                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
943                       
944       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
945                       
946       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
947                       
948 
949       pos\_str = \textcolor{stringliteral}{'('} // &
950                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
951                       
952         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
953                       
954         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
955 
956 \textcolor{keywordflow}{    end if}
957     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
958 
959                     
960 
961 
962     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
963       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
964       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
965       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
966       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
967       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
968 
969       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
970     \textcolor{keywordflow}{else}
971       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
972 \textcolor{keywordflow}{    end if}
973 
974 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a4afa91dab809ef5509444107cede7c42_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a27a677b2149094c148cfd4eeaee26a3b}\label{namespacedc__test_a27a677b2149094c148cfd4eeaee26a3b}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar4@{dctestassertequalchar4}}
\index{dctestassertequalchar4@{dctestassertequalchar4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar4()}{dctestassertequalchar4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 979 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical4().


\begin{DoxyCode}
979     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
980     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
981     \textcolor{keywordtype}{implicit none}
982     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
983     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
984     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
985     \textcolor{keywordtype}{logical}:: err\_flag
986     \textcolor{keywordtype}{character(STRING)}:: pos\_str
987     \textcolor{keywordtype}{character(STRING)}:: wrong, right
988 
989                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
990     \textcolor{keywordtype}{logical}:: consist\_shape(4)
991     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
992     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
993     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
994     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
995                     
996 
997                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:,:,:,:)
998     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:,:,:,:)
999                       
1000                     
1001 
1002   \textcolor{keywordflow}{continue}
1003     err\_flag = .false.
1004 
1005                     
1006     answer\_shape = shape(answer)
1007     check\_shape = shape(check)
1008 
1009     consist\_shape = answer\_shape == check\_shape
1010 
1011     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
1012       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1013       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1014       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
1015       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
1016       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
1017 
1018       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1019 \textcolor{keywordflow}{    end if}
1020 
1021 
1022     \textcolor{keyword}{allocate}( mask\_array( &
1023                             &    answer\_shape(1), &
1024                       
1025       &    answer\_shape(2), &
1026                       
1027       &    answer\_shape(3), &
1028                       
1029       &    answer\_shape(4)  )  &
1030       &  )
1031 
1032     \textcolor{keyword}{allocate}( judge( &
1033                             &    answer\_shape(1), &
1034                       
1035       &    answer\_shape(2), &
1036                       
1037       &    answer\_shape(3), &
1038                       
1039       &    answer\_shape(4)  )  &
1040       &  )
1041 
1042     \textcolor{keyword}{allocate}( judge\_rev( &
1043                             &    answer\_shape(1), &
1044                       
1045       &    answer\_shape(2), &
1046                       
1047       &    answer\_shape(3), &
1048                       
1049       &    answer\_shape(4)  )  &
1050       &  )
1051 
1052                       
1053     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
1054                               &    answer\_shape(1), &
1055                         
1056       &    answer\_shape(2), &
1057                         
1058       &    answer\_shape(3), &
1059                         
1060       &    answer\_shape(4)  )  &
1061       &  )
1062 
1063     \textcolor{keyword}{allocate}( check\_fixed\_length( &
1064                               &    check\_shape(1), &
1065                         
1066       &    check\_shape(2), &
1067                         
1068       &    check\_shape(3), &
1069                         
1070       &    check\_shape(4)  )  &
1071       &  )
1072 
1073     answer\_fixed\_length = answer
1074     check\_fixed\_length = check
1075 
1076     judge = answer\_fixed\_length == check\_fixed\_length
1077     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
1078 
1079                       
1080 
1081     judge\_rev = .not. judge
1082     err\_flag = any(judge\_rev)
1083     mask\_array = 1
1084     pos = maxloc(mask\_array, judge\_rev)
1085 
1086     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1087 
1088       wrong = check( &
1089                               &    pos(1), &
1090                       
1091         &    pos(2), &
1092                       
1093         &    pos(3), &
1094                       
1095         &    pos(4)  )
1096 
1097       right = answer( &
1098                               &    pos(1), &
1099                       
1100         &    pos(2), &
1101                       
1102         &    pos(3), &
1103                       
1104         &    pos(4)  )
1105 
1106                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
1107                       
1108       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
1109                       
1110       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
1111                       
1112       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
1113                       
1114 
1115       pos\_str = \textcolor{stringliteral}{'('} // &
1116                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
1117                       
1118         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
1119                       
1120         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
1121                       
1122         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
1123 
1124 \textcolor{keywordflow}{    end if}
1125     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
1126 
1127                     
1128 
1129 
1130     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1131       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1132       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1133       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
1134       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
1135       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
1136 
1137       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1138     \textcolor{keywordflow}{else}
1139       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
1140 \textcolor{keywordflow}{    end if}
1141 
1142 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a27a677b2149094c148cfd4eeaee26a3b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_aec8dc579d28a80012265fa69d08ca0de}\label{namespacedc__test_aec8dc579d28a80012265fa69d08ca0de}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar5@{dctestassertequalchar5}}
\index{dctestassertequalchar5@{dctestassertequalchar5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar5()}{dctestassertequalchar5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 1147 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical5().


\begin{DoxyCode}
1147     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
1148     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
1149     \textcolor{keywordtype}{implicit none}
1150     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
1151     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
1152     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
1153     \textcolor{keywordtype}{logical}:: err\_flag
1154     \textcolor{keywordtype}{character(STRING)}:: pos\_str
1155     \textcolor{keywordtype}{character(STRING)}:: wrong, right
1156 
1157                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
1158     \textcolor{keywordtype}{logical}:: consist\_shape(5)
1159     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
1160     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
1161     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
1162     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
1163                     
1164 
1165                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:,:,:,:,
      :)
1166     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:,:,:,:,:)
1167                       
1168                     
1169 
1170   \textcolor{keywordflow}{continue}
1171     err\_flag = .false.
1172 
1173                     
1174     answer\_shape = shape(answer)
1175     check\_shape = shape(check)
1176 
1177     consist\_shape = answer\_shape == check\_shape
1178 
1179     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
1180       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1181       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1182       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
1183       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
1184       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
1185 
1186       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1187 \textcolor{keywordflow}{    end if}
1188 
1189 
1190     \textcolor{keyword}{allocate}( mask\_array( &
1191                             &    answer\_shape(1), &
1192                       
1193       &    answer\_shape(2), &
1194                       
1195       &    answer\_shape(3), &
1196                       
1197       &    answer\_shape(4), &
1198                       
1199       &    answer\_shape(5)  )  &
1200       &  )
1201 
1202     \textcolor{keyword}{allocate}( judge( &
1203                             &    answer\_shape(1), &
1204                       
1205       &    answer\_shape(2), &
1206                       
1207       &    answer\_shape(3), &
1208                       
1209       &    answer\_shape(4), &
1210                       
1211       &    answer\_shape(5)  )  &
1212       &  )
1213 
1214     \textcolor{keyword}{allocate}( judge\_rev( &
1215                             &    answer\_shape(1), &
1216                       
1217       &    answer\_shape(2), &
1218                       
1219       &    answer\_shape(3), &
1220                       
1221       &    answer\_shape(4), &
1222                       
1223       &    answer\_shape(5)  )  &
1224       &  )
1225 
1226                       
1227     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
1228                               &    answer\_shape(1), &
1229                         
1230       &    answer\_shape(2), &
1231                         
1232       &    answer\_shape(3), &
1233                         
1234       &    answer\_shape(4), &
1235                         
1236       &    answer\_shape(5)  )  &
1237       &  )
1238 
1239     \textcolor{keyword}{allocate}( check\_fixed\_length( &
1240                               &    check\_shape(1), &
1241                         
1242       &    check\_shape(2), &
1243                         
1244       &    check\_shape(3), &
1245                         
1246       &    check\_shape(4), &
1247                         
1248       &    check\_shape(5)  )  &
1249       &  )
1250 
1251     answer\_fixed\_length = answer
1252     check\_fixed\_length = check
1253 
1254     judge = answer\_fixed\_length == check\_fixed\_length
1255     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
1256 
1257                       
1258 
1259     judge\_rev = .not. judge
1260     err\_flag = any(judge\_rev)
1261     mask\_array = 1
1262     pos = maxloc(mask\_array, judge\_rev)
1263 
1264     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1265 
1266       wrong = check( &
1267                               &    pos(1), &
1268                       
1269         &    pos(2), &
1270                       
1271         &    pos(3), &
1272                       
1273         &    pos(4), &
1274                       
1275         &    pos(5)  )
1276 
1277       right = answer( &
1278                               &    pos(1), &
1279                       
1280         &    pos(2), &
1281                       
1282         &    pos(3), &
1283                       
1284         &    pos(4), &
1285                       
1286         &    pos(5)  )
1287 
1288                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
1289                       
1290       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
1291                       
1292       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
1293                       
1294       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
1295                       
1296       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
1297                       
1298 
1299       pos\_str = \textcolor{stringliteral}{'('} // &
1300                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
1301                       
1302         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
1303                       
1304         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
1305                       
1306         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
1307                       
1308         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
1309 
1310 \textcolor{keywordflow}{    end if}
1311     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
1312 
1313                     
1314 
1315 
1316     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1317       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1318       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1319       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
1320       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
1321       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
1322 
1323       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1324     \textcolor{keywordflow}{else}
1325       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
1326 \textcolor{keywordflow}{    end if}
1327 
1328 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_aec8dc579d28a80012265fa69d08ca0de_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_ac37fccecfc1102c0d22228bc151a2d7e}\label{namespacedc__test_ac37fccecfc1102c0d22228bc151a2d7e}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar6@{dctestassertequalchar6}}
\index{dctestassertequalchar6@{dctestassertequalchar6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar6()}{dctestassertequalchar6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 1333 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical6().


\begin{DoxyCode}
1333     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
1334     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
1335     \textcolor{keywordtype}{implicit none}
1336     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
1337     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
1338     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
1339     \textcolor{keywordtype}{logical}:: err\_flag
1340     \textcolor{keywordtype}{character(STRING)}:: pos\_str
1341     \textcolor{keywordtype}{character(STRING)}:: wrong, right
1342 
1343                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
1344     \textcolor{keywordtype}{logical}:: consist\_shape(6)
1345     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
1346     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
1347     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
1348     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
1349                     
1350 
1351                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:,:,:,:,
      :,:)
1352     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:,:,:,:,:,:)
1353                       
1354                     
1355 
1356   \textcolor{keywordflow}{continue}
1357     err\_flag = .false.
1358 
1359                     
1360     answer\_shape = shape(answer)
1361     check\_shape = shape(check)
1362 
1363     consist\_shape = answer\_shape == check\_shape
1364 
1365     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
1366       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1367       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1368       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
1369       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
1370       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
1371 
1372       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1373 \textcolor{keywordflow}{    end if}
1374 
1375 
1376     \textcolor{keyword}{allocate}( mask\_array( &
1377                             &    answer\_shape(1), &
1378                       
1379       &    answer\_shape(2), &
1380                       
1381       &    answer\_shape(3), &
1382                       
1383       &    answer\_shape(4), &
1384                       
1385       &    answer\_shape(5), &
1386                       
1387       &    answer\_shape(6)  )  &
1388       &  )
1389 
1390     \textcolor{keyword}{allocate}( judge( &
1391                             &    answer\_shape(1), &
1392                       
1393       &    answer\_shape(2), &
1394                       
1395       &    answer\_shape(3), &
1396                       
1397       &    answer\_shape(4), &
1398                       
1399       &    answer\_shape(5), &
1400                       
1401       &    answer\_shape(6)  )  &
1402       &  )
1403 
1404     \textcolor{keyword}{allocate}( judge\_rev( &
1405                             &    answer\_shape(1), &
1406                       
1407       &    answer\_shape(2), &
1408                       
1409       &    answer\_shape(3), &
1410                       
1411       &    answer\_shape(4), &
1412                       
1413       &    answer\_shape(5), &
1414                       
1415       &    answer\_shape(6)  )  &
1416       &  )
1417 
1418                       
1419     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
1420                               &    answer\_shape(1), &
1421                         
1422       &    answer\_shape(2), &
1423                         
1424       &    answer\_shape(3), &
1425                         
1426       &    answer\_shape(4), &
1427                         
1428       &    answer\_shape(5), &
1429                         
1430       &    answer\_shape(6)  )  &
1431       &  )
1432 
1433     \textcolor{keyword}{allocate}( check\_fixed\_length( &
1434                               &    check\_shape(1), &
1435                         
1436       &    check\_shape(2), &
1437                         
1438       &    check\_shape(3), &
1439                         
1440       &    check\_shape(4), &
1441                         
1442       &    check\_shape(5), &
1443                         
1444       &    check\_shape(6)  )  &
1445       &  )
1446 
1447     answer\_fixed\_length = answer
1448     check\_fixed\_length = check
1449 
1450     judge = answer\_fixed\_length == check\_fixed\_length
1451     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
1452 
1453                       
1454 
1455     judge\_rev = .not. judge
1456     err\_flag = any(judge\_rev)
1457     mask\_array = 1
1458     pos = maxloc(mask\_array, judge\_rev)
1459 
1460     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1461 
1462       wrong = check( &
1463                               &    pos(1), &
1464                       
1465         &    pos(2), &
1466                       
1467         &    pos(3), &
1468                       
1469         &    pos(4), &
1470                       
1471         &    pos(5), &
1472                       
1473         &    pos(6)  )
1474 
1475       right = answer( &
1476                               &    pos(1), &
1477                       
1478         &    pos(2), &
1479                       
1480         &    pos(3), &
1481                       
1482         &    pos(4), &
1483                       
1484         &    pos(5), &
1485                       
1486         &    pos(6)  )
1487 
1488                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
1489                       
1490       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
1491                       
1492       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
1493                       
1494       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
1495                       
1496       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
1497                       
1498       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
1499                       
1500 
1501       pos\_str = \textcolor{stringliteral}{'('} // &
1502                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
1503                       
1504         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
1505                       
1506         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
1507                       
1508         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
1509                       
1510         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
1511                       
1512         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
1513 
1514 \textcolor{keywordflow}{    end if}
1515     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
1516 
1517                     
1518 
1519 
1520     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1521       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1522       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1523       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
1524       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
1525       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
1526 
1527       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1528     \textcolor{keywordflow}{else}
1529       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
1530 \textcolor{keywordflow}{    end if}
1531 
1532 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_ac37fccecfc1102c0d22228bc151a2d7e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a2cfd2f97fade013825a733afcdbe189b}\label{namespacedc__test_a2cfd2f97fade013825a733afcdbe189b}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalchar7@{dctestassertequalchar7}}
\index{dctestassertequalchar7@{dctestassertequalchar7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalchar7()}{dctestassertequalchar7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalchar7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{character($\ast$), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 1537 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.



Referenced by dctestassertequallogical7().


\begin{DoxyCode}
1537     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
1538     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
1539     \textcolor{keywordtype}{implicit none}
1540     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
1541     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
1542     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
1543     \textcolor{keywordtype}{logical}:: err\_flag
1544     \textcolor{keywordtype}{character(STRING)}:: pos\_str
1545     \textcolor{keywordtype}{character(STRING)}:: wrong, right
1546 
1547                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
1548     \textcolor{keywordtype}{logical}:: consist\_shape(7)
1549     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
1550     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
1551     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
1552     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
1553                     
1554 
1555                                               \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_fixed\_length(:,:,:,:,
      :,:,:)
1556     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_fixed\_length(:,:,:,:,:,:,:)
1557                       
1558                     
1559 
1560   \textcolor{keywordflow}{continue}
1561     err\_flag = .false.
1562 
1563                     
1564     answer\_shape = shape(answer)
1565     check\_shape = shape(check)
1566 
1567     consist\_shape = answer\_shape == check\_shape
1568 
1569     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
1570       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1571       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1572       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
1573       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
1574       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
1575 
1576       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1577 \textcolor{keywordflow}{    end if}
1578 
1579 
1580     \textcolor{keyword}{allocate}( mask\_array( &
1581                             &    answer\_shape(1), &
1582                       
1583       &    answer\_shape(2), &
1584                       
1585       &    answer\_shape(3), &
1586                       
1587       &    answer\_shape(4), &
1588                       
1589       &    answer\_shape(5), &
1590                       
1591       &    answer\_shape(6), &
1592                       
1593       &    answer\_shape(7)  )  &
1594       &  )
1595 
1596     \textcolor{keyword}{allocate}( judge( &
1597                             &    answer\_shape(1), &
1598                       
1599       &    answer\_shape(2), &
1600                       
1601       &    answer\_shape(3), &
1602                       
1603       &    answer\_shape(4), &
1604                       
1605       &    answer\_shape(5), &
1606                       
1607       &    answer\_shape(6), &
1608                       
1609       &    answer\_shape(7)  )  &
1610       &  )
1611 
1612     \textcolor{keyword}{allocate}( judge\_rev( &
1613                             &    answer\_shape(1), &
1614                       
1615       &    answer\_shape(2), &
1616                       
1617       &    answer\_shape(3), &
1618                       
1619       &    answer\_shape(4), &
1620                       
1621       &    answer\_shape(5), &
1622                       
1623       &    answer\_shape(6), &
1624                       
1625       &    answer\_shape(7)  )  &
1626       &  )
1627 
1628                       
1629     \textcolor{keyword}{allocate}( answer\_fixed\_length( &
1630                               &    answer\_shape(1), &
1631                         
1632       &    answer\_shape(2), &
1633                         
1634       &    answer\_shape(3), &
1635                         
1636       &    answer\_shape(4), &
1637                         
1638       &    answer\_shape(5), &
1639                         
1640       &    answer\_shape(6), &
1641                         
1642       &    answer\_shape(7)  )  &
1643       &  )
1644 
1645     \textcolor{keyword}{allocate}( check\_fixed\_length( &
1646                               &    check\_shape(1), &
1647                         
1648       &    check\_shape(2), &
1649                         
1650       &    check\_shape(3), &
1651                         
1652       &    check\_shape(4), &
1653                         
1654       &    check\_shape(5), &
1655                         
1656       &    check\_shape(6), &
1657                         
1658       &    check\_shape(7)  )  &
1659       &  )
1660 
1661     answer\_fixed\_length = answer
1662     check\_fixed\_length = check
1663 
1664     judge = answer\_fixed\_length == check\_fixed\_length
1665     \textcolor{keyword}{deallocate}(answer\_fixed\_length, check\_fixed\_length)
1666 
1667                       
1668 
1669     judge\_rev = .not. judge
1670     err\_flag = any(judge\_rev)
1671     mask\_array = 1
1672     pos = maxloc(mask\_array, judge\_rev)
1673 
1674     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1675 
1676       wrong = check( &
1677                               &    pos(1), &
1678                       
1679         &    pos(2), &
1680                       
1681         &    pos(3), &
1682                       
1683         &    pos(4), &
1684                       
1685         &    pos(5), &
1686                       
1687         &    pos(6), &
1688                       
1689         &    pos(7)  )
1690 
1691       right = answer( &
1692                               &    pos(1), &
1693                       
1694         &    pos(2), &
1695                       
1696         &    pos(3), &
1697                       
1698         &    pos(4), &
1699                       
1700         &    pos(5), &
1701                       
1702         &    pos(6), &
1703                       
1704         &    pos(7)  )
1705 
1706                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
1707                       
1708       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
1709                       
1710       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
1711                       
1712       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
1713                       
1714       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
1715                       
1716       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
1717                       
1718       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
1719                       
1720 
1721       pos\_str = \textcolor{stringliteral}{'('} // &
1722                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
1723                       
1724         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
1725                       
1726         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
1727                       
1728         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
1729                       
1730         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
1731                       
1732         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
1733                       
1734         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
1735 
1736 \textcolor{keywordflow}{    end if}
1737     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
1738 
1739                     
1740 
1741 
1742     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1743       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1744       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1745       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, trim(wrong)
1746       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
1747       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, trim(right)
1748 
1749       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1750     \textcolor{keywordflow}{else}
1751       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
1752 \textcolor{keywordflow}{    end if}
1753 
1754 
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a2cfd2f97fade013825a733afcdbe189b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a6410023b7d3b69cfc3e630dc41cc83d8}\label{namespacedc__test_a6410023b7d3b69cfc3e630dc41cc83d8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble0@{dctestassertequaldouble0}}
\index{dctestassertequaldouble0@{dctestassertequaldouble0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble0()}{dctestassertequaldouble0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), intent(in)}]{answer,  }\item[{real(dp), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3831 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3831     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3832     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3833     \textcolor{keywordtype}{implicit none}
3834     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3835     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer
3836     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check
3837     \textcolor{keywordtype}{logical}:: err\_flag
3838     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3839     \textcolor{keywordtype}{real(DP)}:: wrong, right
3840 
3841                                         
3842 
3843                     
3844 
3845   \textcolor{keywordflow}{continue}
3846     err\_flag = .false.
3847 
3848                     
3849     err\_flag = .not. answer == check
3850     wrong = check
3851     right = answer
3852     pos\_str = \textcolor{stringliteral}{''}
3853 
3854                     
3855 
3856 
3857     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3858       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3859       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3860       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3861       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3862       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3863 
3864       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3865     \textcolor{keywordflow}{else}
3866       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3867 \textcolor{keywordflow}{    end if}
3868 
3869 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aef0f5928ed8b3bb3215dd7dc517c9a41}\label{namespacedc__test_aef0f5928ed8b3bb3215dd7dc517c9a41}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble0digits@{dctestassertequaldouble0digits}}
\index{dctestassertequaldouble0digits@{dctestassertequaldouble0digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble0digits()}{dctestassertequaldouble0digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble0digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), intent(in)}]{answer,  }\item[{real(dp), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 7297 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
7297     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
7298     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
7299     \textcolor{keywordtype}{implicit none}
7300     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
7301     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer
7302     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check
7303     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
7304     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
7305     \textcolor{keywordtype}{logical}:: err\_flag
7306     \textcolor{keywordtype}{character(STRING)}:: pos\_str
7307     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
7308     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
7309     \textcolor{keywordtype}{integer}:: pos\_str\_len
7310     \textcolor{keywordtype}{real(DP)}:: right\_tmp
7311 
7312                         \textcolor{keywordtype}{real(DP)}:: answer\_max
7313     \textcolor{keywordtype}{real(DP)}:: answer\_min
7314                     
7315   \textcolor{keywordflow}{continue}
7316     err\_flag = .false.
7317 
7318     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
7319       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
7320       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
7321       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7322 \textcolor{keywordflow}{    end if}
7323                     
7324     \textcolor{keywordflow}{if} ( answer < 0.0\_dp .and. check < 0.0\_dp ) \textcolor{keywordflow}{then}
7325       answer\_max = &
7326         &   answer &
7327         &   * (   1.0\_dp &
7328         &       - 0.1\_dp ** significant\_digits ) &
7329         & + 0.1\_dp ** (- ignore\_digits)
7330 
7331       answer\_min = &
7332         &   answer &
7333         &   * (   1.0\_dp &
7334         &       + 0.1\_dp ** significant\_digits ) &
7335         & - 0.1\_dp ** (- ignore\_digits)
7336     \textcolor{keywordflow}{else}
7337 
7338       answer\_max = &
7339         &   answer &
7340         &   * (   1.0\_dp &
7341         &       + 0.1\_dp ** significant\_digits ) &
7342         & + 0.1\_dp ** (- ignore\_digits)
7343 
7344       answer\_min = &
7345         &   answer &
7346         &   * (   1.0\_dp &
7347         &       - 0.1\_dp ** significant\_digits ) &
7348         & - 0.1\_dp ** (- ignore\_digits)
7349 \textcolor{keywordflow}{    end if}
7350 
7351     wrong = check
7352     right\_max = answer\_max
7353     right\_min = answer\_min
7354     \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
7355       right\_tmp = right\_max
7356       right\_max = right\_min
7357       right\_min = right\_tmp
7358 \textcolor{keywordflow}{    end if}
7359 
7360     err\_flag = .not. (answer\_max > check .and. check > answer\_min)
7361 
7362     pos\_str = \textcolor{stringliteral}{''}
7363 
7364                     
7365 
7366     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7367       pos\_str\_space = \textcolor{stringliteral}{''}
7368       pos\_str\_len = len\_trim(pos\_str)
7369 
7370       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7371       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7372       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
7373       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
7374       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
7375         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
7376       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
7377 
7378       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7379     \textcolor{keywordflow}{else}
7380       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
7381 \textcolor{keywordflow}{    end if}
7382 
7383 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a77a9c1e9f552f85c053293e018642a99}\label{namespacedc__test_a77a9c1e9f552f85c053293e018642a99}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble1@{dctestassertequaldouble1}}
\index{dctestassertequaldouble1@{dctestassertequaldouble1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble1()}{dctestassertequaldouble1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3874 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3874     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3875     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3876     \textcolor{keywordtype}{implicit none}
3877     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3878     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:)
3879     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:)
3880     \textcolor{keywordtype}{logical}:: err\_flag
3881     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3882     \textcolor{keywordtype}{real(DP)}:: wrong, right
3883 
3884                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
3885     \textcolor{keywordtype}{logical}:: consist\_shape(1)
3886     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
3887     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
3888     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
3889     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
3890                     
3891 
3892                     
3893 
3894   \textcolor{keywordflow}{continue}
3895     err\_flag = .false.
3896 
3897                     
3898     answer\_shape = shape(answer)
3899     check\_shape = shape(check)
3900 
3901     consist\_shape = answer\_shape == check\_shape
3902 
3903     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
3904       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3905       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3906       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
3907       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
3908       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
3909 
3910       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3911 \textcolor{keywordflow}{    end if}
3912 
3913 
3914     \textcolor{keyword}{allocate}( mask\_array( &
3915                       
3916       &    answer\_shape(1)  )  &
3917       &  )
3918 
3919     \textcolor{keyword}{allocate}( judge( &
3920                       
3921       &    answer\_shape(1)  )  &
3922       &  )
3923 
3924     \textcolor{keyword}{allocate}( judge\_rev( &
3925                       
3926       &    answer\_shape(1)  )  &
3927       &  )
3928 
3929                       
3930     judge = answer == check
3931 
3932                       
3933 
3934     judge\_rev = .not. judge
3935     err\_flag = any(judge\_rev)
3936     mask\_array = 1
3937     pos = maxloc(mask\_array, judge\_rev)
3938 
3939     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3940 
3941       wrong = check( &
3942                       
3943         &    pos(1)  )
3944 
3945       right = answer( &
3946                       
3947         &    pos(1)  )
3948 
3949                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3950                       
3951 
3952       pos\_str = \textcolor{stringliteral}{'('} // &
3953                       
3954         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
3955 
3956 \textcolor{keywordflow}{    end if}
3957     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3958 
3959                     
3960 
3961 
3962     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3963       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3964       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3965       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3966       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3967       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3968 
3969       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3970     \textcolor{keywordflow}{else}
3971       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3972 \textcolor{keywordflow}{    end if}
3973 
3974 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a8887ec09e47c580c6226a0ea5fd13265}\label{namespacedc__test_a8887ec09e47c580c6226a0ea5fd13265}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble1digits@{dctestassertequaldouble1digits}}
\index{dctestassertequaldouble1digits@{dctestassertequaldouble1digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble1digits()}{dctestassertequaldouble1digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble1digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 7389 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
7389     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
7390     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
7391     \textcolor{keywordtype}{implicit none}
7392     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
7393     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:)
7394     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:)
7395     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
7396     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
7397     \textcolor{keywordtype}{logical}:: err\_flag
7398     \textcolor{keywordtype}{character(STRING)}:: pos\_str
7399     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
7400     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
7401     \textcolor{keywordtype}{integer}:: pos\_str\_len
7402     \textcolor{keywordtype}{real(DP)}:: right\_tmp
7403 
7404                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
7405     \textcolor{keywordtype}{logical}:: consist\_shape(1)
7406     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
7407     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
7408     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
7409     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
7410     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
7411     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
7412     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
7413     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:)
7414     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:)
7415                     
7416   \textcolor{keywordflow}{continue}
7417     err\_flag = .false.
7418 
7419     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
7420       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
7421       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
7422       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7423 \textcolor{keywordflow}{    end if}
7424                     
7425     answer\_shape = shape(answer)
7426     check\_shape = shape(check)
7427 
7428     consist\_shape = answer\_shape == check\_shape
7429 
7430     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
7431       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7432       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7433       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
7434       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
7435       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
7436 
7437       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7438 \textcolor{keywordflow}{    end if}
7439 
7440 
7441     \textcolor{keyword}{allocate}( mask\_array( &
7442                       
7443       &    answer\_shape(1)  )  &
7444       &  )
7445 
7446     \textcolor{keyword}{allocate}( judge( &
7447                       
7448       &    answer\_shape(1)  )  &
7449       &  )
7450 
7451     \textcolor{keyword}{allocate}( judge\_rev( &
7452                       
7453       &    answer\_shape(1)  )  &
7454       &  )
7455 
7456     \textcolor{keyword}{allocate}( answer\_negative( &
7457                       
7458       &    answer\_shape(1)  )  &
7459       &  )
7460 
7461     \textcolor{keyword}{allocate}( check\_negative( &
7462                       
7463       &    answer\_shape(1)  )  &
7464       &  )
7465 
7466     \textcolor{keyword}{allocate}( both\_negative( &
7467                       
7468       &    answer\_shape(1)  )  &
7469       &  )
7470 
7471     \textcolor{keyword}{allocate}( answer\_max( &
7472                       
7473       &    answer\_shape(1)  )  &
7474       &  )
7475 
7476     \textcolor{keyword}{allocate}( answer\_min( &
7477                       
7478       &    answer\_shape(1)  )  &
7479       &  )
7480 
7481     answer\_negative = answer < 0.0\_dp
7482     check\_negative = check < 0.0\_dp
7483     both\_negative = answer\_negative .and. check\_negative
7484 
7485     \textcolor{keywordflow}{where} (both\_negative)
7486       answer\_max = &
7487         &   answer &
7488         &   * (   1.0\_dp &
7489         &       - 0.1\_dp ** significant\_digits ) &
7490         & + 0.1\_dp ** (- ignore\_digits)
7491 
7492       answer\_min = &
7493         &   answer &
7494         &   * (   1.0\_dp &
7495         &       + 0.1\_dp ** significant\_digits ) &
7496         & - 0.1\_dp ** (- ignore\_digits)
7497     \textcolor{keywordflow}{elsewhere}
7498       answer\_max = &
7499         &   answer &
7500         &   * (   1.0\_dp &
7501         &       + 0.1\_dp ** significant\_digits ) &
7502         & + 0.1\_dp ** (- ignore\_digits)
7503 
7504       answer\_min = &
7505         &   answer &
7506         &   * (   1.0\_dp &
7507         &       - 0.1\_dp ** significant\_digits ) &
7508         & - 0.1\_dp ** (- ignore\_digits)
7509 \textcolor{keywordflow}{    end where}
7510 
7511     judge = answer\_max > check .and. check > answer\_min
7512     judge\_rev = .not. judge
7513     err\_flag = any(judge\_rev)
7514     mask\_array = 1
7515     pos = maxloc(mask\_array, judge\_rev)
7516 
7517     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7518 
7519       wrong = check( &
7520                       
7521         &    pos(1)  )
7522 
7523       right\_max = answer\_max( &
7524                       
7525         &    pos(1)  )
7526 
7527       right\_min = answer\_min( &
7528                       
7529         &    pos(1)  )
7530 
7531       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
7532         right\_tmp = right\_max
7533         right\_max = right\_min
7534         right\_min = right\_tmp
7535 \textcolor{keywordflow}{      end if}
7536 
7537                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
7538                       
7539 
7540       pos\_str = \textcolor{stringliteral}{'('} // &
7541                       
7542         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
7543 
7544 \textcolor{keywordflow}{    end if}
7545     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
7546     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
7547     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
7548 
7549                     
7550 
7551     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7552       pos\_str\_space = \textcolor{stringliteral}{''}
7553       pos\_str\_len = len\_trim(pos\_str)
7554 
7555       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7556       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7557       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
7558       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
7559       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
7560         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
7561       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
7562 
7563       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7564     \textcolor{keywordflow}{else}
7565       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
7566 \textcolor{keywordflow}{    end if}
7567 
7568 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aaca85075c339cd738a1273f1cf60682c}\label{namespacedc__test_aaca85075c339cd738a1273f1cf60682c}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble2@{dctestassertequaldouble2}}
\index{dctestassertequaldouble2@{dctestassertequaldouble2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble2()}{dctestassertequaldouble2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3979 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3979     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3980     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3981     \textcolor{keywordtype}{implicit none}
3982     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3983     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
3984     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
3985     \textcolor{keywordtype}{logical}:: err\_flag
3986     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3987     \textcolor{keywordtype}{real(DP)}:: wrong, right
3988 
3989                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
3990     \textcolor{keywordtype}{logical}:: consist\_shape(2)
3991     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
3992     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
3993     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
3994     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
3995                     
3996 
3997                     
3998 
3999   \textcolor{keywordflow}{continue}
4000     err\_flag = .false.
4001 
4002                     
4003     answer\_shape = shape(answer)
4004     check\_shape = shape(check)
4005 
4006     consist\_shape = answer\_shape == check\_shape
4007 
4008     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
4009       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4010       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4011       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
4012       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
4013       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
4014 
4015       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4016 \textcolor{keywordflow}{    end if}
4017 
4018 
4019     \textcolor{keyword}{allocate}( mask\_array( &
4020                             &    answer\_shape(1), &
4021                       
4022       &    answer\_shape(2)  )  &
4023       &  )
4024 
4025     \textcolor{keyword}{allocate}( judge( &
4026                             &    answer\_shape(1), &
4027                       
4028       &    answer\_shape(2)  )  &
4029       &  )
4030 
4031     \textcolor{keyword}{allocate}( judge\_rev( &
4032                             &    answer\_shape(1), &
4033                       
4034       &    answer\_shape(2)  )  &
4035       &  )
4036 
4037                       
4038     judge = answer == check
4039 
4040                       
4041 
4042     judge\_rev = .not. judge
4043     err\_flag = any(judge\_rev)
4044     mask\_array = 1
4045     pos = maxloc(mask\_array, judge\_rev)
4046 
4047     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4048 
4049       wrong = check( &
4050                               &    pos(1), &
4051                       
4052         &    pos(2)  )
4053 
4054       right = answer( &
4055                               &    pos(1), &
4056                       
4057         &    pos(2)  )
4058 
4059                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
4060                       
4061       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
4062                       
4063 
4064       pos\_str = \textcolor{stringliteral}{'('} // &
4065                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
4066                       
4067         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
4068 
4069 \textcolor{keywordflow}{    end if}
4070     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
4071 
4072                     
4073 
4074 
4075     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4076       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4077       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4078       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
4079       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
4080       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
4081 
4082       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4083     \textcolor{keywordflow}{else}
4084       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
4085 \textcolor{keywordflow}{    end if}
4086 
4087 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a896b4d0624e6a851dbfbe3b2102b1852}\label{namespacedc__test_a896b4d0624e6a851dbfbe3b2102b1852}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble2digits@{dctestassertequaldouble2digits}}
\index{dctestassertequaldouble2digits@{dctestassertequaldouble2digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble2digits()}{dctestassertequaldouble2digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble2digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 7574 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
7574     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
7575     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
7576     \textcolor{keywordtype}{implicit none}
7577     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
7578     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
7579     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
7580     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
7581     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
7582     \textcolor{keywordtype}{logical}:: err\_flag
7583     \textcolor{keywordtype}{character(STRING)}:: pos\_str
7584     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
7585     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
7586     \textcolor{keywordtype}{integer}:: pos\_str\_len
7587     \textcolor{keywordtype}{real(DP)}:: right\_tmp
7588 
7589                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
7590     \textcolor{keywordtype}{logical}:: consist\_shape(2)
7591     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
7592     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
7593     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
7594     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
7595     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
7596     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
7597     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
7598     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:)
7599     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:)
7600                     
7601   \textcolor{keywordflow}{continue}
7602     err\_flag = .false.
7603 
7604     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
7605       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
7606       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
7607       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7608 \textcolor{keywordflow}{    end if}
7609                     
7610     answer\_shape = shape(answer)
7611     check\_shape = shape(check)
7612 
7613     consist\_shape = answer\_shape == check\_shape
7614 
7615     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
7616       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7617       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7618       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
7619       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
7620       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
7621 
7622       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7623 \textcolor{keywordflow}{    end if}
7624 
7625 
7626     \textcolor{keyword}{allocate}( mask\_array( &
7627                             &    answer\_shape(1), &
7628                       
7629       &    answer\_shape(2)  )  &
7630       &  )
7631 
7632     \textcolor{keyword}{allocate}( judge( &
7633                             &    answer\_shape(1), &
7634                       
7635       &    answer\_shape(2)  )  &
7636       &  )
7637 
7638     \textcolor{keyword}{allocate}( judge\_rev( &
7639                             &    answer\_shape(1), &
7640                       
7641       &    answer\_shape(2)  )  &
7642       &  )
7643 
7644     \textcolor{keyword}{allocate}( answer\_negative( &
7645                             &    answer\_shape(1), &
7646                       
7647       &    answer\_shape(2)  )  &
7648       &  )
7649 
7650     \textcolor{keyword}{allocate}( check\_negative( &
7651                             &    answer\_shape(1), &
7652                       
7653       &    answer\_shape(2)  )  &
7654       &  )
7655 
7656     \textcolor{keyword}{allocate}( both\_negative( &
7657                             &    answer\_shape(1), &
7658                       
7659       &    answer\_shape(2)  )  &
7660       &  )
7661 
7662     \textcolor{keyword}{allocate}( answer\_max( &
7663                             &    answer\_shape(1), &
7664                       
7665       &    answer\_shape(2)  )  &
7666       &  )
7667 
7668     \textcolor{keyword}{allocate}( answer\_min( &
7669                             &    answer\_shape(1), &
7670                       
7671       &    answer\_shape(2)  )  &
7672       &  )
7673 
7674     answer\_negative = answer < 0.0\_dp
7675     check\_negative = check < 0.0\_dp
7676     both\_negative = answer\_negative .and. check\_negative
7677 
7678     \textcolor{keywordflow}{where} (both\_negative)
7679       answer\_max = &
7680         &   answer &
7681         &   * (   1.0\_dp &
7682         &       - 0.1\_dp ** significant\_digits ) &
7683         & + 0.1\_dp ** (- ignore\_digits)
7684 
7685       answer\_min = &
7686         &   answer &
7687         &   * (   1.0\_dp &
7688         &       + 0.1\_dp ** significant\_digits ) &
7689         & - 0.1\_dp ** (- ignore\_digits)
7690     \textcolor{keywordflow}{elsewhere}
7691       answer\_max = &
7692         &   answer &
7693         &   * (   1.0\_dp &
7694         &       + 0.1\_dp ** significant\_digits ) &
7695         & + 0.1\_dp ** (- ignore\_digits)
7696 
7697       answer\_min = &
7698         &   answer &
7699         &   * (   1.0\_dp &
7700         &       - 0.1\_dp ** significant\_digits ) &
7701         & - 0.1\_dp ** (- ignore\_digits)
7702 \textcolor{keywordflow}{    end where}
7703 
7704     judge = answer\_max > check .and. check > answer\_min
7705     judge\_rev = .not. judge
7706     err\_flag = any(judge\_rev)
7707     mask\_array = 1
7708     pos = maxloc(mask\_array, judge\_rev)
7709 
7710     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7711 
7712       wrong = check( &
7713                               &    pos(1), &
7714                       
7715         &    pos(2)  )
7716 
7717       right\_max = answer\_max( &
7718                               &    pos(1), &
7719                       
7720         &    pos(2)  )
7721 
7722       right\_min = answer\_min( &
7723                               &    pos(1), &
7724                       
7725         &    pos(2)  )
7726 
7727       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
7728         right\_tmp = right\_max
7729         right\_max = right\_min
7730         right\_min = right\_tmp
7731 \textcolor{keywordflow}{      end if}
7732 
7733                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
7734                       
7735       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
7736                       
7737 
7738       pos\_str = \textcolor{stringliteral}{'('} // &
7739                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
7740                       
7741         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
7742 
7743 \textcolor{keywordflow}{    end if}
7744     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
7745     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
7746     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
7747 
7748                     
7749 
7750     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7751       pos\_str\_space = \textcolor{stringliteral}{''}
7752       pos\_str\_len = len\_trim(pos\_str)
7753 
7754       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7755       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7756       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
7757       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
7758       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
7759         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
7760       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
7761 
7762       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7763     \textcolor{keywordflow}{else}
7764       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
7765 \textcolor{keywordflow}{    end if}
7766 
7767 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ad6e506c403fdbd1df4f9872cd57f380a}\label{namespacedc__test_ad6e506c403fdbd1df4f9872cd57f380a}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble3@{dctestassertequaldouble3}}
\index{dctestassertequaldouble3@{dctestassertequaldouble3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble3()}{dctestassertequaldouble3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4092 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
4092     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
4093     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
4094     \textcolor{keywordtype}{implicit none}
4095     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4096     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
4097     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
4098     \textcolor{keywordtype}{logical}:: err\_flag
4099     \textcolor{keywordtype}{character(STRING)}:: pos\_str
4100     \textcolor{keywordtype}{real(DP)}:: wrong, right
4101 
4102                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
4103     \textcolor{keywordtype}{logical}:: consist\_shape(3)
4104     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
4105     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
4106     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
4107     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
4108                     
4109 
4110                     
4111 
4112   \textcolor{keywordflow}{continue}
4113     err\_flag = .false.
4114 
4115                     
4116     answer\_shape = shape(answer)
4117     check\_shape = shape(check)
4118 
4119     consist\_shape = answer\_shape == check\_shape
4120 
4121     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
4122       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4123       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4124       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
4125       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
4126       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
4127 
4128       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4129 \textcolor{keywordflow}{    end if}
4130 
4131 
4132     \textcolor{keyword}{allocate}( mask\_array( &
4133                             &    answer\_shape(1), &
4134                       
4135       &    answer\_shape(2), &
4136                       
4137       &    answer\_shape(3)  )  &
4138       &  )
4139 
4140     \textcolor{keyword}{allocate}( judge( &
4141                             &    answer\_shape(1), &
4142                       
4143       &    answer\_shape(2), &
4144                       
4145       &    answer\_shape(3)  )  &
4146       &  )
4147 
4148     \textcolor{keyword}{allocate}( judge\_rev( &
4149                             &    answer\_shape(1), &
4150                       
4151       &    answer\_shape(2), &
4152                       
4153       &    answer\_shape(3)  )  &
4154       &  )
4155 
4156                       
4157     judge = answer == check
4158 
4159                       
4160 
4161     judge\_rev = .not. judge
4162     err\_flag = any(judge\_rev)
4163     mask\_array = 1
4164     pos = maxloc(mask\_array, judge\_rev)
4165 
4166     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4167 
4168       wrong = check( &
4169                               &    pos(1), &
4170                       
4171         &    pos(2), &
4172                       
4173         &    pos(3)  )
4174 
4175       right = answer( &
4176                               &    pos(1), &
4177                       
4178         &    pos(2), &
4179                       
4180         &    pos(3)  )
4181 
4182                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
4183                       
4184       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
4185                       
4186       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
4187                       
4188 
4189       pos\_str = \textcolor{stringliteral}{'('} // &
4190                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
4191                       
4192         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
4193                       
4194         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
4195 
4196 \textcolor{keywordflow}{    end if}
4197     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
4198 
4199                     
4200 
4201 
4202     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4203       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4204       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4205       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
4206       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
4207       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
4208 
4209       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4210     \textcolor{keywordflow}{else}
4211       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
4212 \textcolor{keywordflow}{    end if}
4213 
4214 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a09d6b1a5582a7b3679164f32b5b481fb}\label{namespacedc__test_a09d6b1a5582a7b3679164f32b5b481fb}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble3digits@{dctestassertequaldouble3digits}}
\index{dctestassertequaldouble3digits@{dctestassertequaldouble3digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble3digits()}{dctestassertequaldouble3digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble3digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 7773 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
7773     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
7774     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
7775     \textcolor{keywordtype}{implicit none}
7776     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
7777     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
7778     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
7779     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
7780     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
7781     \textcolor{keywordtype}{logical}:: err\_flag
7782     \textcolor{keywordtype}{character(STRING)}:: pos\_str
7783     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
7784     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
7785     \textcolor{keywordtype}{integer}:: pos\_str\_len
7786     \textcolor{keywordtype}{real(DP)}:: right\_tmp
7787 
7788                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
7789     \textcolor{keywordtype}{logical}:: consist\_shape(3)
7790     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
7791     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
7792     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
7793     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
7794     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
7795     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
7796     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
7797     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:)
7798     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:)
7799                     
7800   \textcolor{keywordflow}{continue}
7801     err\_flag = .false.
7802 
7803     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
7804       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
7805       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
7806       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7807 \textcolor{keywordflow}{    end if}
7808                     
7809     answer\_shape = shape(answer)
7810     check\_shape = shape(check)
7811 
7812     consist\_shape = answer\_shape == check\_shape
7813 
7814     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
7815       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7816       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7817       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
7818       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
7819       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
7820 
7821       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7822 \textcolor{keywordflow}{    end if}
7823 
7824 
7825     \textcolor{keyword}{allocate}( mask\_array( &
7826                             &    answer\_shape(1), &
7827                       
7828       &    answer\_shape(2), &
7829                       
7830       &    answer\_shape(3)  )  &
7831       &  )
7832 
7833     \textcolor{keyword}{allocate}( judge( &
7834                             &    answer\_shape(1), &
7835                       
7836       &    answer\_shape(2), &
7837                       
7838       &    answer\_shape(3)  )  &
7839       &  )
7840 
7841     \textcolor{keyword}{allocate}( judge\_rev( &
7842                             &    answer\_shape(1), &
7843                       
7844       &    answer\_shape(2), &
7845                       
7846       &    answer\_shape(3)  )  &
7847       &  )
7848 
7849     \textcolor{keyword}{allocate}( answer\_negative( &
7850                             &    answer\_shape(1), &
7851                       
7852       &    answer\_shape(2), &
7853                       
7854       &    answer\_shape(3)  )  &
7855       &  )
7856 
7857     \textcolor{keyword}{allocate}( check\_negative( &
7858                             &    answer\_shape(1), &
7859                       
7860       &    answer\_shape(2), &
7861                       
7862       &    answer\_shape(3)  )  &
7863       &  )
7864 
7865     \textcolor{keyword}{allocate}( both\_negative( &
7866                             &    answer\_shape(1), &
7867                       
7868       &    answer\_shape(2), &
7869                       
7870       &    answer\_shape(3)  )  &
7871       &  )
7872 
7873     \textcolor{keyword}{allocate}( answer\_max( &
7874                             &    answer\_shape(1), &
7875                       
7876       &    answer\_shape(2), &
7877                       
7878       &    answer\_shape(3)  )  &
7879       &  )
7880 
7881     \textcolor{keyword}{allocate}( answer\_min( &
7882                             &    answer\_shape(1), &
7883                       
7884       &    answer\_shape(2), &
7885                       
7886       &    answer\_shape(3)  )  &
7887       &  )
7888 
7889     answer\_negative = answer < 0.0\_dp
7890     check\_negative = check < 0.0\_dp
7891     both\_negative = answer\_negative .and. check\_negative
7892 
7893     \textcolor{keywordflow}{where} (both\_negative)
7894       answer\_max = &
7895         &   answer &
7896         &   * (   1.0\_dp &
7897         &       - 0.1\_dp ** significant\_digits ) &
7898         & + 0.1\_dp ** (- ignore\_digits)
7899 
7900       answer\_min = &
7901         &   answer &
7902         &   * (   1.0\_dp &
7903         &       + 0.1\_dp ** significant\_digits ) &
7904         & - 0.1\_dp ** (- ignore\_digits)
7905     \textcolor{keywordflow}{elsewhere}
7906       answer\_max = &
7907         &   answer &
7908         &   * (   1.0\_dp &
7909         &       + 0.1\_dp ** significant\_digits ) &
7910         & + 0.1\_dp ** (- ignore\_digits)
7911 
7912       answer\_min = &
7913         &   answer &
7914         &   * (   1.0\_dp &
7915         &       - 0.1\_dp ** significant\_digits ) &
7916         & - 0.1\_dp ** (- ignore\_digits)
7917 \textcolor{keywordflow}{    end where}
7918 
7919     judge = answer\_max > check .and. check > answer\_min
7920     judge\_rev = .not. judge
7921     err\_flag = any(judge\_rev)
7922     mask\_array = 1
7923     pos = maxloc(mask\_array, judge\_rev)
7924 
7925     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7926 
7927       wrong = check( &
7928                               &    pos(1), &
7929                       
7930         &    pos(2), &
7931                       
7932         &    pos(3)  )
7933 
7934       right\_max = answer\_max( &
7935                               &    pos(1), &
7936                       
7937         &    pos(2), &
7938                       
7939         &    pos(3)  )
7940 
7941       right\_min = answer\_min( &
7942                               &    pos(1), &
7943                       
7944         &    pos(2), &
7945                       
7946         &    pos(3)  )
7947 
7948       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
7949         right\_tmp = right\_max
7950         right\_max = right\_min
7951         right\_min = right\_tmp
7952 \textcolor{keywordflow}{      end if}
7953 
7954                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
7955                       
7956       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
7957                       
7958       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
7959                       
7960 
7961       pos\_str = \textcolor{stringliteral}{'('} // &
7962                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
7963                       
7964         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
7965                       
7966         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
7967 
7968 \textcolor{keywordflow}{    end if}
7969     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
7970     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
7971     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
7972 
7973                     
7974 
7975     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7976       pos\_str\_space = \textcolor{stringliteral}{''}
7977       pos\_str\_len = len\_trim(pos\_str)
7978 
7979       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7980       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7981       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
7982       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
7983       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
7984         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
7985       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
7986 
7987       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7988     \textcolor{keywordflow}{else}
7989       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
7990 \textcolor{keywordflow}{    end if}
7991 
7992 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ab3352e51a8b10d642d0deedb984f77e2}\label{namespacedc__test_ab3352e51a8b10d642d0deedb984f77e2}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble4@{dctestassertequaldouble4}}
\index{dctestassertequaldouble4@{dctestassertequaldouble4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble4()}{dctestassertequaldouble4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4219 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
4219     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
4220     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
4221     \textcolor{keywordtype}{implicit none}
4222     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4223     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
4224     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
4225     \textcolor{keywordtype}{logical}:: err\_flag
4226     \textcolor{keywordtype}{character(STRING)}:: pos\_str
4227     \textcolor{keywordtype}{real(DP)}:: wrong, right
4228 
4229                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
4230     \textcolor{keywordtype}{logical}:: consist\_shape(4)
4231     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
4232     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
4233     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
4234     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
4235                     
4236 
4237                     
4238 
4239   \textcolor{keywordflow}{continue}
4240     err\_flag = .false.
4241 
4242                     
4243     answer\_shape = shape(answer)
4244     check\_shape = shape(check)
4245 
4246     consist\_shape = answer\_shape == check\_shape
4247 
4248     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
4249       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4250       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4251       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
4252       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
4253       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
4254 
4255       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4256 \textcolor{keywordflow}{    end if}
4257 
4258 
4259     \textcolor{keyword}{allocate}( mask\_array( &
4260                             &    answer\_shape(1), &
4261                       
4262       &    answer\_shape(2), &
4263                       
4264       &    answer\_shape(3), &
4265                       
4266       &    answer\_shape(4)  )  &
4267       &  )
4268 
4269     \textcolor{keyword}{allocate}( judge( &
4270                             &    answer\_shape(1), &
4271                       
4272       &    answer\_shape(2), &
4273                       
4274       &    answer\_shape(3), &
4275                       
4276       &    answer\_shape(4)  )  &
4277       &  )
4278 
4279     \textcolor{keyword}{allocate}( judge\_rev( &
4280                             &    answer\_shape(1), &
4281                       
4282       &    answer\_shape(2), &
4283                       
4284       &    answer\_shape(3), &
4285                       
4286       &    answer\_shape(4)  )  &
4287       &  )
4288 
4289                       
4290     judge = answer == check
4291 
4292                       
4293 
4294     judge\_rev = .not. judge
4295     err\_flag = any(judge\_rev)
4296     mask\_array = 1
4297     pos = maxloc(mask\_array, judge\_rev)
4298 
4299     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4300 
4301       wrong = check( &
4302                               &    pos(1), &
4303                       
4304         &    pos(2), &
4305                       
4306         &    pos(3), &
4307                       
4308         &    pos(4)  )
4309 
4310       right = answer( &
4311                               &    pos(1), &
4312                       
4313         &    pos(2), &
4314                       
4315         &    pos(3), &
4316                       
4317         &    pos(4)  )
4318 
4319                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
4320                       
4321       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
4322                       
4323       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
4324                       
4325       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
4326                       
4327 
4328       pos\_str = \textcolor{stringliteral}{'('} // &
4329                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
4330                       
4331         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
4332                       
4333         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
4334                       
4335         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
4336 
4337 \textcolor{keywordflow}{    end if}
4338     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
4339 
4340                     
4341 
4342 
4343     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4344       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4345       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4346       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
4347       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
4348       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
4349 
4350       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4351     \textcolor{keywordflow}{else}
4352       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
4353 \textcolor{keywordflow}{    end if}
4354 
4355 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aee86dd15f714c31a64a20371d2e207a9}\label{namespacedc__test_aee86dd15f714c31a64a20371d2e207a9}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble4digits@{dctestassertequaldouble4digits}}
\index{dctestassertequaldouble4digits@{dctestassertequaldouble4digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble4digits()}{dctestassertequaldouble4digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble4digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 7998 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
7998     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
7999     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
8000     \textcolor{keywordtype}{implicit none}
8001     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
8002     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
8003     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
8004     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
8005     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
8006     \textcolor{keywordtype}{logical}:: err\_flag
8007     \textcolor{keywordtype}{character(STRING)}:: pos\_str
8008     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
8009     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
8010     \textcolor{keywordtype}{integer}:: pos\_str\_len
8011     \textcolor{keywordtype}{real(DP)}:: right\_tmp
8012 
8013                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
8014     \textcolor{keywordtype}{logical}:: consist\_shape(4)
8015     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
8016     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
8017     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
8018     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
8019     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
8020     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
8021     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
8022     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:)
8023     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:)
8024                     
8025   \textcolor{keywordflow}{continue}
8026     err\_flag = .false.
8027 
8028     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
8029       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
8030       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
8031       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8032 \textcolor{keywordflow}{    end if}
8033                     
8034     answer\_shape = shape(answer)
8035     check\_shape = shape(check)
8036 
8037     consist\_shape = answer\_shape == check\_shape
8038 
8039     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
8040       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8041       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8042       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
8043       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
8044       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
8045 
8046       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8047 \textcolor{keywordflow}{    end if}
8048 
8049 
8050     \textcolor{keyword}{allocate}( mask\_array( &
8051                             &    answer\_shape(1), &
8052                       
8053       &    answer\_shape(2), &
8054                       
8055       &    answer\_shape(3), &
8056                       
8057       &    answer\_shape(4)  )  &
8058       &  )
8059 
8060     \textcolor{keyword}{allocate}( judge( &
8061                             &    answer\_shape(1), &
8062                       
8063       &    answer\_shape(2), &
8064                       
8065       &    answer\_shape(3), &
8066                       
8067       &    answer\_shape(4)  )  &
8068       &  )
8069 
8070     \textcolor{keyword}{allocate}( judge\_rev( &
8071                             &    answer\_shape(1), &
8072                       
8073       &    answer\_shape(2), &
8074                       
8075       &    answer\_shape(3), &
8076                       
8077       &    answer\_shape(4)  )  &
8078       &  )
8079 
8080     \textcolor{keyword}{allocate}( answer\_negative( &
8081                             &    answer\_shape(1), &
8082                       
8083       &    answer\_shape(2), &
8084                       
8085       &    answer\_shape(3), &
8086                       
8087       &    answer\_shape(4)  )  &
8088       &  )
8089 
8090     \textcolor{keyword}{allocate}( check\_negative( &
8091                             &    answer\_shape(1), &
8092                       
8093       &    answer\_shape(2), &
8094                       
8095       &    answer\_shape(3), &
8096                       
8097       &    answer\_shape(4)  )  &
8098       &  )
8099 
8100     \textcolor{keyword}{allocate}( both\_negative( &
8101                             &    answer\_shape(1), &
8102                       
8103       &    answer\_shape(2), &
8104                       
8105       &    answer\_shape(3), &
8106                       
8107       &    answer\_shape(4)  )  &
8108       &  )
8109 
8110     \textcolor{keyword}{allocate}( answer\_max( &
8111                             &    answer\_shape(1), &
8112                       
8113       &    answer\_shape(2), &
8114                       
8115       &    answer\_shape(3), &
8116                       
8117       &    answer\_shape(4)  )  &
8118       &  )
8119 
8120     \textcolor{keyword}{allocate}( answer\_min( &
8121                             &    answer\_shape(1), &
8122                       
8123       &    answer\_shape(2), &
8124                       
8125       &    answer\_shape(3), &
8126                       
8127       &    answer\_shape(4)  )  &
8128       &  )
8129 
8130     answer\_negative = answer < 0.0\_dp
8131     check\_negative = check < 0.0\_dp
8132     both\_negative = answer\_negative .and. check\_negative
8133 
8134     \textcolor{keywordflow}{where} (both\_negative)
8135       answer\_max = &
8136         &   answer &
8137         &   * (   1.0\_dp &
8138         &       - 0.1\_dp ** significant\_digits ) &
8139         & + 0.1\_dp ** (- ignore\_digits)
8140 
8141       answer\_min = &
8142         &   answer &
8143         &   * (   1.0\_dp &
8144         &       + 0.1\_dp ** significant\_digits ) &
8145         & - 0.1\_dp ** (- ignore\_digits)
8146     \textcolor{keywordflow}{elsewhere}
8147       answer\_max = &
8148         &   answer &
8149         &   * (   1.0\_dp &
8150         &       + 0.1\_dp ** significant\_digits ) &
8151         & + 0.1\_dp ** (- ignore\_digits)
8152 
8153       answer\_min = &
8154         &   answer &
8155         &   * (   1.0\_dp &
8156         &       - 0.1\_dp ** significant\_digits ) &
8157         & - 0.1\_dp ** (- ignore\_digits)
8158 \textcolor{keywordflow}{    end where}
8159 
8160     judge = answer\_max > check .and. check > answer\_min
8161     judge\_rev = .not. judge
8162     err\_flag = any(judge\_rev)
8163     mask\_array = 1
8164     pos = maxloc(mask\_array, judge\_rev)
8165 
8166     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
8167 
8168       wrong = check( &
8169                               &    pos(1), &
8170                       
8171         &    pos(2), &
8172                       
8173         &    pos(3), &
8174                       
8175         &    pos(4)  )
8176 
8177       right\_max = answer\_max( &
8178                               &    pos(1), &
8179                       
8180         &    pos(2), &
8181                       
8182         &    pos(3), &
8183                       
8184         &    pos(4)  )
8185 
8186       right\_min = answer\_min( &
8187                               &    pos(1), &
8188                       
8189         &    pos(2), &
8190                       
8191         &    pos(3), &
8192                       
8193         &    pos(4)  )
8194 
8195       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
8196         right\_tmp = right\_max
8197         right\_max = right\_min
8198         right\_min = right\_tmp
8199 \textcolor{keywordflow}{      end if}
8200 
8201                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
8202                       
8203       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
8204                       
8205       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
8206                       
8207       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
8208                       
8209 
8210       pos\_str = \textcolor{stringliteral}{'('} // &
8211                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
8212                       
8213         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
8214                       
8215         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
8216                       
8217         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
8218 
8219 \textcolor{keywordflow}{    end if}
8220     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
8221     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
8222     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
8223 
8224                     
8225 
8226     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
8227       pos\_str\_space = \textcolor{stringliteral}{''}
8228       pos\_str\_len = len\_trim(pos\_str)
8229 
8230       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8231       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8232       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
8233       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
8234       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
8235         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
8236       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
8237 
8238       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8239     \textcolor{keywordflow}{else}
8240       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
8241 \textcolor{keywordflow}{    end if}
8242 
8243 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_af633351bea9773b6d74161fd40c793ca}\label{namespacedc__test_af633351bea9773b6d74161fd40c793ca}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble5@{dctestassertequaldouble5}}
\index{dctestassertequaldouble5@{dctestassertequaldouble5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble5()}{dctestassertequaldouble5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4360 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
4360     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
4361     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
4362     \textcolor{keywordtype}{implicit none}
4363     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4364     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
4365     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
4366     \textcolor{keywordtype}{logical}:: err\_flag
4367     \textcolor{keywordtype}{character(STRING)}:: pos\_str
4368     \textcolor{keywordtype}{real(DP)}:: wrong, right
4369 
4370                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
4371     \textcolor{keywordtype}{logical}:: consist\_shape(5)
4372     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
4373     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
4374     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
4375     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
4376                     
4377 
4378                     
4379 
4380   \textcolor{keywordflow}{continue}
4381     err\_flag = .false.
4382 
4383                     
4384     answer\_shape = shape(answer)
4385     check\_shape = shape(check)
4386 
4387     consist\_shape = answer\_shape == check\_shape
4388 
4389     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
4390       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4391       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4392       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
4393       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
4394       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
4395 
4396       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4397 \textcolor{keywordflow}{    end if}
4398 
4399 
4400     \textcolor{keyword}{allocate}( mask\_array( &
4401                             &    answer\_shape(1), &
4402                       
4403       &    answer\_shape(2), &
4404                       
4405       &    answer\_shape(3), &
4406                       
4407       &    answer\_shape(4), &
4408                       
4409       &    answer\_shape(5)  )  &
4410       &  )
4411 
4412     \textcolor{keyword}{allocate}( judge( &
4413                             &    answer\_shape(1), &
4414                       
4415       &    answer\_shape(2), &
4416                       
4417       &    answer\_shape(3), &
4418                       
4419       &    answer\_shape(4), &
4420                       
4421       &    answer\_shape(5)  )  &
4422       &  )
4423 
4424     \textcolor{keyword}{allocate}( judge\_rev( &
4425                             &    answer\_shape(1), &
4426                       
4427       &    answer\_shape(2), &
4428                       
4429       &    answer\_shape(3), &
4430                       
4431       &    answer\_shape(4), &
4432                       
4433       &    answer\_shape(5)  )  &
4434       &  )
4435 
4436                       
4437     judge = answer == check
4438 
4439                       
4440 
4441     judge\_rev = .not. judge
4442     err\_flag = any(judge\_rev)
4443     mask\_array = 1
4444     pos = maxloc(mask\_array, judge\_rev)
4445 
4446     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4447 
4448       wrong = check( &
4449                               &    pos(1), &
4450                       
4451         &    pos(2), &
4452                       
4453         &    pos(3), &
4454                       
4455         &    pos(4), &
4456                       
4457         &    pos(5)  )
4458 
4459       right = answer( &
4460                               &    pos(1), &
4461                       
4462         &    pos(2), &
4463                       
4464         &    pos(3), &
4465                       
4466         &    pos(4), &
4467                       
4468         &    pos(5)  )
4469 
4470                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
4471                       
4472       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
4473                       
4474       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
4475                       
4476       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
4477                       
4478       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
4479                       
4480 
4481       pos\_str = \textcolor{stringliteral}{'('} // &
4482                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
4483                       
4484         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
4485                       
4486         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
4487                       
4488         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
4489                       
4490         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
4491 
4492 \textcolor{keywordflow}{    end if}
4493     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
4494 
4495                     
4496 
4497 
4498     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4499       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4500       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4501       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
4502       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
4503       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
4504 
4505       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4506     \textcolor{keywordflow}{else}
4507       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
4508 \textcolor{keywordflow}{    end if}
4509 
4510 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_acb155fcfd1826a16c8af71a1341a193e}\label{namespacedc__test_acb155fcfd1826a16c8af71a1341a193e}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble5digits@{dctestassertequaldouble5digits}}
\index{dctestassertequaldouble5digits@{dctestassertequaldouble5digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble5digits()}{dctestassertequaldouble5digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble5digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 8249 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
8249     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
8250     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
8251     \textcolor{keywordtype}{implicit none}
8252     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
8253     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
8254     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
8255     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
8256     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
8257     \textcolor{keywordtype}{logical}:: err\_flag
8258     \textcolor{keywordtype}{character(STRING)}:: pos\_str
8259     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
8260     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
8261     \textcolor{keywordtype}{integer}:: pos\_str\_len
8262     \textcolor{keywordtype}{real(DP)}:: right\_tmp
8263 
8264                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
8265     \textcolor{keywordtype}{logical}:: consist\_shape(5)
8266     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
8267     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
8268     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
8269     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
8270     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
8271     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
8272     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
8273     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:,:)
8274     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:,:)
8275                     
8276   \textcolor{keywordflow}{continue}
8277     err\_flag = .false.
8278 
8279     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
8280       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
8281       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
8282       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8283 \textcolor{keywordflow}{    end if}
8284                     
8285     answer\_shape = shape(answer)
8286     check\_shape = shape(check)
8287 
8288     consist\_shape = answer\_shape == check\_shape
8289 
8290     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
8291       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8292       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8293       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
8294       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
8295       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
8296 
8297       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8298 \textcolor{keywordflow}{    end if}
8299 
8300 
8301     \textcolor{keyword}{allocate}( mask\_array( &
8302                             &    answer\_shape(1), &
8303                       
8304       &    answer\_shape(2), &
8305                       
8306       &    answer\_shape(3), &
8307                       
8308       &    answer\_shape(4), &
8309                       
8310       &    answer\_shape(5)  )  &
8311       &  )
8312 
8313     \textcolor{keyword}{allocate}( judge( &
8314                             &    answer\_shape(1), &
8315                       
8316       &    answer\_shape(2), &
8317                       
8318       &    answer\_shape(3), &
8319                       
8320       &    answer\_shape(4), &
8321                       
8322       &    answer\_shape(5)  )  &
8323       &  )
8324 
8325     \textcolor{keyword}{allocate}( judge\_rev( &
8326                             &    answer\_shape(1), &
8327                       
8328       &    answer\_shape(2), &
8329                       
8330       &    answer\_shape(3), &
8331                       
8332       &    answer\_shape(4), &
8333                       
8334       &    answer\_shape(5)  )  &
8335       &  )
8336 
8337     \textcolor{keyword}{allocate}( answer\_negative( &
8338                             &    answer\_shape(1), &
8339                       
8340       &    answer\_shape(2), &
8341                       
8342       &    answer\_shape(3), &
8343                       
8344       &    answer\_shape(4), &
8345                       
8346       &    answer\_shape(5)  )  &
8347       &  )
8348 
8349     \textcolor{keyword}{allocate}( check\_negative( &
8350                             &    answer\_shape(1), &
8351                       
8352       &    answer\_shape(2), &
8353                       
8354       &    answer\_shape(3), &
8355                       
8356       &    answer\_shape(4), &
8357                       
8358       &    answer\_shape(5)  )  &
8359       &  )
8360 
8361     \textcolor{keyword}{allocate}( both\_negative( &
8362                             &    answer\_shape(1), &
8363                       
8364       &    answer\_shape(2), &
8365                       
8366       &    answer\_shape(3), &
8367                       
8368       &    answer\_shape(4), &
8369                       
8370       &    answer\_shape(5)  )  &
8371       &  )
8372 
8373     \textcolor{keyword}{allocate}( answer\_max( &
8374                             &    answer\_shape(1), &
8375                       
8376       &    answer\_shape(2), &
8377                       
8378       &    answer\_shape(3), &
8379                       
8380       &    answer\_shape(4), &
8381                       
8382       &    answer\_shape(5)  )  &
8383       &  )
8384 
8385     \textcolor{keyword}{allocate}( answer\_min( &
8386                             &    answer\_shape(1), &
8387                       
8388       &    answer\_shape(2), &
8389                       
8390       &    answer\_shape(3), &
8391                       
8392       &    answer\_shape(4), &
8393                       
8394       &    answer\_shape(5)  )  &
8395       &  )
8396 
8397     answer\_negative = answer < 0.0\_dp
8398     check\_negative = check < 0.0\_dp
8399     both\_negative = answer\_negative .and. check\_negative
8400 
8401     \textcolor{keywordflow}{where} (both\_negative)
8402       answer\_max = &
8403         &   answer &
8404         &   * (   1.0\_dp &
8405         &       - 0.1\_dp ** significant\_digits ) &
8406         & + 0.1\_dp ** (- ignore\_digits)
8407 
8408       answer\_min = &
8409         &   answer &
8410         &   * (   1.0\_dp &
8411         &       + 0.1\_dp ** significant\_digits ) &
8412         & - 0.1\_dp ** (- ignore\_digits)
8413     \textcolor{keywordflow}{elsewhere}
8414       answer\_max = &
8415         &   answer &
8416         &   * (   1.0\_dp &
8417         &       + 0.1\_dp ** significant\_digits ) &
8418         & + 0.1\_dp ** (- ignore\_digits)
8419 
8420       answer\_min = &
8421         &   answer &
8422         &   * (   1.0\_dp &
8423         &       - 0.1\_dp ** significant\_digits ) &
8424         & - 0.1\_dp ** (- ignore\_digits)
8425 \textcolor{keywordflow}{    end where}
8426 
8427     judge = answer\_max > check .and. check > answer\_min
8428     judge\_rev = .not. judge
8429     err\_flag = any(judge\_rev)
8430     mask\_array = 1
8431     pos = maxloc(mask\_array, judge\_rev)
8432 
8433     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
8434 
8435       wrong = check( &
8436                               &    pos(1), &
8437                       
8438         &    pos(2), &
8439                       
8440         &    pos(3), &
8441                       
8442         &    pos(4), &
8443                       
8444         &    pos(5)  )
8445 
8446       right\_max = answer\_max( &
8447                               &    pos(1), &
8448                       
8449         &    pos(2), &
8450                       
8451         &    pos(3), &
8452                       
8453         &    pos(4), &
8454                       
8455         &    pos(5)  )
8456 
8457       right\_min = answer\_min( &
8458                               &    pos(1), &
8459                       
8460         &    pos(2), &
8461                       
8462         &    pos(3), &
8463                       
8464         &    pos(4), &
8465                       
8466         &    pos(5)  )
8467 
8468       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
8469         right\_tmp = right\_max
8470         right\_max = right\_min
8471         right\_min = right\_tmp
8472 \textcolor{keywordflow}{      end if}
8473 
8474                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
8475                       
8476       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
8477                       
8478       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
8479                       
8480       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
8481                       
8482       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
8483                       
8484 
8485       pos\_str = \textcolor{stringliteral}{'('} // &
8486                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
8487                       
8488         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
8489                       
8490         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
8491                       
8492         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
8493                       
8494         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
8495 
8496 \textcolor{keywordflow}{    end if}
8497     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
8498     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
8499     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
8500 
8501                     
8502 
8503     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
8504       pos\_str\_space = \textcolor{stringliteral}{''}
8505       pos\_str\_len = len\_trim(pos\_str)
8506 
8507       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8508       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8509       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
8510       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
8511       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
8512         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
8513       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
8514 
8515       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8516     \textcolor{keywordflow}{else}
8517       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
8518 \textcolor{keywordflow}{    end if}
8519 
8520 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ac5dbee18978876086a13dfd5c0574d0d}\label{namespacedc__test_ac5dbee18978876086a13dfd5c0574d0d}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble6@{dctestassertequaldouble6}}
\index{dctestassertequaldouble6@{dctestassertequaldouble6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble6()}{dctestassertequaldouble6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4515 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
4515     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
4516     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
4517     \textcolor{keywordtype}{implicit none}
4518     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4519     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
4520     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
4521     \textcolor{keywordtype}{logical}:: err\_flag
4522     \textcolor{keywordtype}{character(STRING)}:: pos\_str
4523     \textcolor{keywordtype}{real(DP)}:: wrong, right
4524 
4525                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
4526     \textcolor{keywordtype}{logical}:: consist\_shape(6)
4527     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
4528     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
4529     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
4530     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
4531                     
4532 
4533                     
4534 
4535   \textcolor{keywordflow}{continue}
4536     err\_flag = .false.
4537 
4538                     
4539     answer\_shape = shape(answer)
4540     check\_shape = shape(check)
4541 
4542     consist\_shape = answer\_shape == check\_shape
4543 
4544     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
4545       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4546       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4547       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
4548       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
4549       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
4550 
4551       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4552 \textcolor{keywordflow}{    end if}
4553 
4554 
4555     \textcolor{keyword}{allocate}( mask\_array( &
4556                             &    answer\_shape(1), &
4557                       
4558       &    answer\_shape(2), &
4559                       
4560       &    answer\_shape(3), &
4561                       
4562       &    answer\_shape(4), &
4563                       
4564       &    answer\_shape(5), &
4565                       
4566       &    answer\_shape(6)  )  &
4567       &  )
4568 
4569     \textcolor{keyword}{allocate}( judge( &
4570                             &    answer\_shape(1), &
4571                       
4572       &    answer\_shape(2), &
4573                       
4574       &    answer\_shape(3), &
4575                       
4576       &    answer\_shape(4), &
4577                       
4578       &    answer\_shape(5), &
4579                       
4580       &    answer\_shape(6)  )  &
4581       &  )
4582 
4583     \textcolor{keyword}{allocate}( judge\_rev( &
4584                             &    answer\_shape(1), &
4585                       
4586       &    answer\_shape(2), &
4587                       
4588       &    answer\_shape(3), &
4589                       
4590       &    answer\_shape(4), &
4591                       
4592       &    answer\_shape(5), &
4593                       
4594       &    answer\_shape(6)  )  &
4595       &  )
4596 
4597                       
4598     judge = answer == check
4599 
4600                       
4601 
4602     judge\_rev = .not. judge
4603     err\_flag = any(judge\_rev)
4604     mask\_array = 1
4605     pos = maxloc(mask\_array, judge\_rev)
4606 
4607     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4608 
4609       wrong = check( &
4610                               &    pos(1), &
4611                       
4612         &    pos(2), &
4613                       
4614         &    pos(3), &
4615                       
4616         &    pos(4), &
4617                       
4618         &    pos(5), &
4619                       
4620         &    pos(6)  )
4621 
4622       right = answer( &
4623                               &    pos(1), &
4624                       
4625         &    pos(2), &
4626                       
4627         &    pos(3), &
4628                       
4629         &    pos(4), &
4630                       
4631         &    pos(5), &
4632                       
4633         &    pos(6)  )
4634 
4635                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
4636                       
4637       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
4638                       
4639       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
4640                       
4641       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
4642                       
4643       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
4644                       
4645       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
4646                       
4647 
4648       pos\_str = \textcolor{stringliteral}{'('} // &
4649                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
4650                       
4651         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
4652                       
4653         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
4654                       
4655         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
4656                       
4657         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
4658                       
4659         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
4660 
4661 \textcolor{keywordflow}{    end if}
4662     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
4663 
4664                     
4665 
4666 
4667     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4668       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4669       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4670       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
4671       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
4672       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
4673 
4674       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4675     \textcolor{keywordflow}{else}
4676       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
4677 \textcolor{keywordflow}{    end if}
4678 
4679 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a3d69b5d3695a5a167d6283926e0809b8}\label{namespacedc__test_a3d69b5d3695a5a167d6283926e0809b8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble6digits@{dctestassertequaldouble6digits}}
\index{dctestassertequaldouble6digits@{dctestassertequaldouble6digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble6digits()}{dctestassertequaldouble6digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble6digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 8526 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
8526     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
8527     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
8528     \textcolor{keywordtype}{implicit none}
8529     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
8530     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
8531     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
8532     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
8533     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
8534     \textcolor{keywordtype}{logical}:: err\_flag
8535     \textcolor{keywordtype}{character(STRING)}:: pos\_str
8536     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
8537     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
8538     \textcolor{keywordtype}{integer}:: pos\_str\_len
8539     \textcolor{keywordtype}{real(DP)}:: right\_tmp
8540 
8541                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
8542     \textcolor{keywordtype}{logical}:: consist\_shape(6)
8543     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
8544     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
8545     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
8546     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
8547     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
8548     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
8549     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
8550     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:,:,:)
8551     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:,:,:)
8552                     
8553   \textcolor{keywordflow}{continue}
8554     err\_flag = .false.
8555 
8556     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
8557       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
8558       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
8559       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8560 \textcolor{keywordflow}{    end if}
8561                     
8562     answer\_shape = shape(answer)
8563     check\_shape = shape(check)
8564 
8565     consist\_shape = answer\_shape == check\_shape
8566 
8567     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
8568       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8569       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8570       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
8571       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
8572       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
8573 
8574       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8575 \textcolor{keywordflow}{    end if}
8576 
8577 
8578     \textcolor{keyword}{allocate}( mask\_array( &
8579                             &    answer\_shape(1), &
8580                       
8581       &    answer\_shape(2), &
8582                       
8583       &    answer\_shape(3), &
8584                       
8585       &    answer\_shape(4), &
8586                       
8587       &    answer\_shape(5), &
8588                       
8589       &    answer\_shape(6)  )  &
8590       &  )
8591 
8592     \textcolor{keyword}{allocate}( judge( &
8593                             &    answer\_shape(1), &
8594                       
8595       &    answer\_shape(2), &
8596                       
8597       &    answer\_shape(3), &
8598                       
8599       &    answer\_shape(4), &
8600                       
8601       &    answer\_shape(5), &
8602                       
8603       &    answer\_shape(6)  )  &
8604       &  )
8605 
8606     \textcolor{keyword}{allocate}( judge\_rev( &
8607                             &    answer\_shape(1), &
8608                       
8609       &    answer\_shape(2), &
8610                       
8611       &    answer\_shape(3), &
8612                       
8613       &    answer\_shape(4), &
8614                       
8615       &    answer\_shape(5), &
8616                       
8617       &    answer\_shape(6)  )  &
8618       &  )
8619 
8620     \textcolor{keyword}{allocate}( answer\_negative( &
8621                             &    answer\_shape(1), &
8622                       
8623       &    answer\_shape(2), &
8624                       
8625       &    answer\_shape(3), &
8626                       
8627       &    answer\_shape(4), &
8628                       
8629       &    answer\_shape(5), &
8630                       
8631       &    answer\_shape(6)  )  &
8632       &  )
8633 
8634     \textcolor{keyword}{allocate}( check\_negative( &
8635                             &    answer\_shape(1), &
8636                       
8637       &    answer\_shape(2), &
8638                       
8639       &    answer\_shape(3), &
8640                       
8641       &    answer\_shape(4), &
8642                       
8643       &    answer\_shape(5), &
8644                       
8645       &    answer\_shape(6)  )  &
8646       &  )
8647 
8648     \textcolor{keyword}{allocate}( both\_negative( &
8649                             &    answer\_shape(1), &
8650                       
8651       &    answer\_shape(2), &
8652                       
8653       &    answer\_shape(3), &
8654                       
8655       &    answer\_shape(4), &
8656                       
8657       &    answer\_shape(5), &
8658                       
8659       &    answer\_shape(6)  )  &
8660       &  )
8661 
8662     \textcolor{keyword}{allocate}( answer\_max( &
8663                             &    answer\_shape(1), &
8664                       
8665       &    answer\_shape(2), &
8666                       
8667       &    answer\_shape(3), &
8668                       
8669       &    answer\_shape(4), &
8670                       
8671       &    answer\_shape(5), &
8672                       
8673       &    answer\_shape(6)  )  &
8674       &  )
8675 
8676     \textcolor{keyword}{allocate}( answer\_min( &
8677                             &    answer\_shape(1), &
8678                       
8679       &    answer\_shape(2), &
8680                       
8681       &    answer\_shape(3), &
8682                       
8683       &    answer\_shape(4), &
8684                       
8685       &    answer\_shape(5), &
8686                       
8687       &    answer\_shape(6)  )  &
8688       &  )
8689 
8690     answer\_negative = answer < 0.0\_dp
8691     check\_negative = check < 0.0\_dp
8692     both\_negative = answer\_negative .and. check\_negative
8693 
8694     \textcolor{keywordflow}{where} (both\_negative)
8695       answer\_max = &
8696         &   answer &
8697         &   * (   1.0\_dp &
8698         &       - 0.1\_dp ** significant\_digits ) &
8699         & + 0.1\_dp ** (- ignore\_digits)
8700 
8701       answer\_min = &
8702         &   answer &
8703         &   * (   1.0\_dp &
8704         &       + 0.1\_dp ** significant\_digits ) &
8705         & - 0.1\_dp ** (- ignore\_digits)
8706     \textcolor{keywordflow}{elsewhere}
8707       answer\_max = &
8708         &   answer &
8709         &   * (   1.0\_dp &
8710         &       + 0.1\_dp ** significant\_digits ) &
8711         & + 0.1\_dp ** (- ignore\_digits)
8712 
8713       answer\_min = &
8714         &   answer &
8715         &   * (   1.0\_dp &
8716         &       - 0.1\_dp ** significant\_digits ) &
8717         & - 0.1\_dp ** (- ignore\_digits)
8718 \textcolor{keywordflow}{    end where}
8719 
8720     judge = answer\_max > check .and. check > answer\_min
8721     judge\_rev = .not. judge
8722     err\_flag = any(judge\_rev)
8723     mask\_array = 1
8724     pos = maxloc(mask\_array, judge\_rev)
8725 
8726     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
8727 
8728       wrong = check( &
8729                               &    pos(1), &
8730                       
8731         &    pos(2), &
8732                       
8733         &    pos(3), &
8734                       
8735         &    pos(4), &
8736                       
8737         &    pos(5), &
8738                       
8739         &    pos(6)  )
8740 
8741       right\_max = answer\_max( &
8742                               &    pos(1), &
8743                       
8744         &    pos(2), &
8745                       
8746         &    pos(3), &
8747                       
8748         &    pos(4), &
8749                       
8750         &    pos(5), &
8751                       
8752         &    pos(6)  )
8753 
8754       right\_min = answer\_min( &
8755                               &    pos(1), &
8756                       
8757         &    pos(2), &
8758                       
8759         &    pos(3), &
8760                       
8761         &    pos(4), &
8762                       
8763         &    pos(5), &
8764                       
8765         &    pos(6)  )
8766 
8767       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
8768         right\_tmp = right\_max
8769         right\_max = right\_min
8770         right\_min = right\_tmp
8771 \textcolor{keywordflow}{      end if}
8772 
8773                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
8774                       
8775       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
8776                       
8777       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
8778                       
8779       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
8780                       
8781       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
8782                       
8783       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
8784                       
8785 
8786       pos\_str = \textcolor{stringliteral}{'('} // &
8787                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
8788                       
8789         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
8790                       
8791         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
8792                       
8793         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
8794                       
8795         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
8796                       
8797         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
8798 
8799 \textcolor{keywordflow}{    end if}
8800     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
8801     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
8802     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
8803 
8804                     
8805 
8806     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
8807       pos\_str\_space = \textcolor{stringliteral}{''}
8808       pos\_str\_len = len\_trim(pos\_str)
8809 
8810       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8811       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8812       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
8813       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
8814       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
8815         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
8816       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
8817 
8818       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8819     \textcolor{keywordflow}{else}
8820       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
8821 \textcolor{keywordflow}{    end if}
8822 
8823 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a6c08715d6b92a7a41d70804faf0439c1}\label{namespacedc__test_a6c08715d6b92a7a41d70804faf0439c1}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble7@{dctestassertequaldouble7}}
\index{dctestassertequaldouble7@{dctestassertequaldouble7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble7()}{dctestassertequaldouble7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4684 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
4684     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
4685     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
4686     \textcolor{keywordtype}{implicit none}
4687     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4688     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
4689     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
4690     \textcolor{keywordtype}{logical}:: err\_flag
4691     \textcolor{keywordtype}{character(STRING)}:: pos\_str
4692     \textcolor{keywordtype}{real(DP)}:: wrong, right
4693 
4694                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
4695     \textcolor{keywordtype}{logical}:: consist\_shape(7)
4696     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
4697     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
4698     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
4699     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
4700                     
4701 
4702                     
4703 
4704   \textcolor{keywordflow}{continue}
4705     err\_flag = .false.
4706 
4707                     
4708     answer\_shape = shape(answer)
4709     check\_shape = shape(check)
4710 
4711     consist\_shape = answer\_shape == check\_shape
4712 
4713     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
4714       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4715       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4716       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
4717       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
4718       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
4719 
4720       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4721 \textcolor{keywordflow}{    end if}
4722 
4723 
4724     \textcolor{keyword}{allocate}( mask\_array( &
4725                             &    answer\_shape(1), &
4726                       
4727       &    answer\_shape(2), &
4728                       
4729       &    answer\_shape(3), &
4730                       
4731       &    answer\_shape(4), &
4732                       
4733       &    answer\_shape(5), &
4734                       
4735       &    answer\_shape(6), &
4736                       
4737       &    answer\_shape(7)  )  &
4738       &  )
4739 
4740     \textcolor{keyword}{allocate}( judge( &
4741                             &    answer\_shape(1), &
4742                       
4743       &    answer\_shape(2), &
4744                       
4745       &    answer\_shape(3), &
4746                       
4747       &    answer\_shape(4), &
4748                       
4749       &    answer\_shape(5), &
4750                       
4751       &    answer\_shape(6), &
4752                       
4753       &    answer\_shape(7)  )  &
4754       &  )
4755 
4756     \textcolor{keyword}{allocate}( judge\_rev( &
4757                             &    answer\_shape(1), &
4758                       
4759       &    answer\_shape(2), &
4760                       
4761       &    answer\_shape(3), &
4762                       
4763       &    answer\_shape(4), &
4764                       
4765       &    answer\_shape(5), &
4766                       
4767       &    answer\_shape(6), &
4768                       
4769       &    answer\_shape(7)  )  &
4770       &  )
4771 
4772                       
4773     judge = answer == check
4774 
4775                       
4776 
4777     judge\_rev = .not. judge
4778     err\_flag = any(judge\_rev)
4779     mask\_array = 1
4780     pos = maxloc(mask\_array, judge\_rev)
4781 
4782     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4783 
4784       wrong = check( &
4785                               &    pos(1), &
4786                       
4787         &    pos(2), &
4788                       
4789         &    pos(3), &
4790                       
4791         &    pos(4), &
4792                       
4793         &    pos(5), &
4794                       
4795         &    pos(6), &
4796                       
4797         &    pos(7)  )
4798 
4799       right = answer( &
4800                               &    pos(1), &
4801                       
4802         &    pos(2), &
4803                       
4804         &    pos(3), &
4805                       
4806         &    pos(4), &
4807                       
4808         &    pos(5), &
4809                       
4810         &    pos(6), &
4811                       
4812         &    pos(7)  )
4813 
4814                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
4815                       
4816       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
4817                       
4818       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
4819                       
4820       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
4821                       
4822       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
4823                       
4824       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
4825                       
4826       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
4827                       
4828 
4829       pos\_str = \textcolor{stringliteral}{'('} // &
4830                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
4831                       
4832         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
4833                       
4834         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
4835                       
4836         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
4837                       
4838         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
4839                       
4840         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
4841                       
4842         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
4843 
4844 \textcolor{keywordflow}{    end if}
4845     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
4846 
4847                     
4848 
4849 
4850     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
4851       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
4852       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
4853       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
4854       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
4855       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
4856 
4857       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
4858     \textcolor{keywordflow}{else}
4859       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
4860 \textcolor{keywordflow}{    end if}
4861 
4862 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a6b21f9ed94b74a7ab4081bf8b7d874a3}\label{namespacedc__test_a6b21f9ed94b74a7ab4081bf8b7d874a3}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequaldouble7digits@{dctestassertequaldouble7digits}}
\index{dctestassertequaldouble7digits@{dctestassertequaldouble7digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequaldouble7digits()}{dctestassertequaldouble7digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequaldouble7digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 8829 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
8829     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
8830     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
8831     \textcolor{keywordtype}{implicit none}
8832     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
8833     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
8834     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
8835     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
8836     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
8837     \textcolor{keywordtype}{logical}:: err\_flag
8838     \textcolor{keywordtype}{character(STRING)}:: pos\_str
8839     \textcolor{keywordtype}{real(DP)}:: wrong, right\_max, right\_min
8840     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
8841     \textcolor{keywordtype}{integer}:: pos\_str\_len
8842     \textcolor{keywordtype}{real(DP)}:: right\_tmp
8843 
8844                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
8845     \textcolor{keywordtype}{logical}:: consist\_shape(7)
8846     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
8847     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
8848     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
8849     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
8850     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
8851     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
8852     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
8853     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:,:,:,:)
8854     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:,:,:,:)
8855                     
8856   \textcolor{keywordflow}{continue}
8857     err\_flag = .false.
8858 
8859     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
8860       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
8861       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
8862       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8863 \textcolor{keywordflow}{    end if}
8864                     
8865     answer\_shape = shape(answer)
8866     check\_shape = shape(check)
8867 
8868     consist\_shape = answer\_shape == check\_shape
8869 
8870     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
8871       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
8872       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
8873       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
8874       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
8875       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
8876 
8877       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
8878 \textcolor{keywordflow}{    end if}
8879 
8880 
8881     \textcolor{keyword}{allocate}( mask\_array( &
8882                             &    answer\_shape(1), &
8883                       
8884       &    answer\_shape(2), &
8885                       
8886       &    answer\_shape(3), &
8887                       
8888       &    answer\_shape(4), &
8889                       
8890       &    answer\_shape(5), &
8891                       
8892       &    answer\_shape(6), &
8893                       
8894       &    answer\_shape(7)  )  &
8895       &  )
8896 
8897     \textcolor{keyword}{allocate}( judge( &
8898                             &    answer\_shape(1), &
8899                       
8900       &    answer\_shape(2), &
8901                       
8902       &    answer\_shape(3), &
8903                       
8904       &    answer\_shape(4), &
8905                       
8906       &    answer\_shape(5), &
8907                       
8908       &    answer\_shape(6), &
8909                       
8910       &    answer\_shape(7)  )  &
8911       &  )
8912 
8913     \textcolor{keyword}{allocate}( judge\_rev( &
8914                             &    answer\_shape(1), &
8915                       
8916       &    answer\_shape(2), &
8917                       
8918       &    answer\_shape(3), &
8919                       
8920       &    answer\_shape(4), &
8921                       
8922       &    answer\_shape(5), &
8923                       
8924       &    answer\_shape(6), &
8925                       
8926       &    answer\_shape(7)  )  &
8927       &  )
8928 
8929     \textcolor{keyword}{allocate}( answer\_negative( &
8930                             &    answer\_shape(1), &
8931                       
8932       &    answer\_shape(2), &
8933                       
8934       &    answer\_shape(3), &
8935                       
8936       &    answer\_shape(4), &
8937                       
8938       &    answer\_shape(5), &
8939                       
8940       &    answer\_shape(6), &
8941                       
8942       &    answer\_shape(7)  )  &
8943       &  )
8944 
8945     \textcolor{keyword}{allocate}( check\_negative( &
8946                             &    answer\_shape(1), &
8947                       
8948       &    answer\_shape(2), &
8949                       
8950       &    answer\_shape(3), &
8951                       
8952       &    answer\_shape(4), &
8953                       
8954       &    answer\_shape(5), &
8955                       
8956       &    answer\_shape(6), &
8957                       
8958       &    answer\_shape(7)  )  &
8959       &  )
8960 
8961     \textcolor{keyword}{allocate}( both\_negative( &
8962                             &    answer\_shape(1), &
8963                       
8964       &    answer\_shape(2), &
8965                       
8966       &    answer\_shape(3), &
8967                       
8968       &    answer\_shape(4), &
8969                       
8970       &    answer\_shape(5), &
8971                       
8972       &    answer\_shape(6), &
8973                       
8974       &    answer\_shape(7)  )  &
8975       &  )
8976 
8977     \textcolor{keyword}{allocate}( answer\_max( &
8978                             &    answer\_shape(1), &
8979                       
8980       &    answer\_shape(2), &
8981                       
8982       &    answer\_shape(3), &
8983                       
8984       &    answer\_shape(4), &
8985                       
8986       &    answer\_shape(5), &
8987                       
8988       &    answer\_shape(6), &
8989                       
8990       &    answer\_shape(7)  )  &
8991       &  )
8992 
8993     \textcolor{keyword}{allocate}( answer\_min( &
8994                             &    answer\_shape(1), &
8995                       
8996       &    answer\_shape(2), &
8997                       
8998       &    answer\_shape(3), &
8999                       
9000       &    answer\_shape(4), &
9001                       
9002       &    answer\_shape(5), &
9003                       
9004       &    answer\_shape(6), &
9005                       
9006       &    answer\_shape(7)  )  &
9007       &  )
9008 
9009     answer\_negative = answer < 0.0\_dp
9010     check\_negative = check < 0.0\_dp
9011     both\_negative = answer\_negative .and. check\_negative
9012 
9013     \textcolor{keywordflow}{where} (both\_negative)
9014       answer\_max = &
9015         &   answer &
9016         &   * (   1.0\_dp &
9017         &       - 0.1\_dp ** significant\_digits ) &
9018         & + 0.1\_dp ** (- ignore\_digits)
9019 
9020       answer\_min = &
9021         &   answer &
9022         &   * (   1.0\_dp &
9023         &       + 0.1\_dp ** significant\_digits ) &
9024         & - 0.1\_dp ** (- ignore\_digits)
9025     \textcolor{keywordflow}{elsewhere}
9026       answer\_max = &
9027         &   answer &
9028         &   * (   1.0\_dp &
9029         &       + 0.1\_dp ** significant\_digits ) &
9030         & + 0.1\_dp ** (- ignore\_digits)
9031 
9032       answer\_min = &
9033         &   answer &
9034         &   * (   1.0\_dp &
9035         &       - 0.1\_dp ** significant\_digits ) &
9036         & - 0.1\_dp ** (- ignore\_digits)
9037 \textcolor{keywordflow}{    end where}
9038 
9039     judge = answer\_max > check .and. check > answer\_min
9040     judge\_rev = .not. judge
9041     err\_flag = any(judge\_rev)
9042     mask\_array = 1
9043     pos = maxloc(mask\_array, judge\_rev)
9044 
9045     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9046 
9047       wrong = check( &
9048                               &    pos(1), &
9049                       
9050         &    pos(2), &
9051                       
9052         &    pos(3), &
9053                       
9054         &    pos(4), &
9055                       
9056         &    pos(5), &
9057                       
9058         &    pos(6), &
9059                       
9060         &    pos(7)  )
9061 
9062       right\_max = answer\_max( &
9063                               &    pos(1), &
9064                       
9065         &    pos(2), &
9066                       
9067         &    pos(3), &
9068                       
9069         &    pos(4), &
9070                       
9071         &    pos(5), &
9072                       
9073         &    pos(6), &
9074                       
9075         &    pos(7)  )
9076 
9077       right\_min = answer\_min( &
9078                               &    pos(1), &
9079                       
9080         &    pos(2), &
9081                       
9082         &    pos(3), &
9083                       
9084         &    pos(4), &
9085                       
9086         &    pos(5), &
9087                       
9088         &    pos(6), &
9089                       
9090         &    pos(7)  )
9091 
9092       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
9093         right\_tmp = right\_max
9094         right\_max = right\_min
9095         right\_min = right\_tmp
9096 \textcolor{keywordflow}{      end if}
9097 
9098                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
9099                       
9100       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
9101                       
9102       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
9103                       
9104       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
9105                       
9106       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
9107                       
9108       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
9109                       
9110       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
9111                       
9112 
9113       pos\_str = \textcolor{stringliteral}{'('} // &
9114                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
9115                       
9116         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
9117                       
9118         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
9119                       
9120         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
9121                       
9122         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
9123                       
9124         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
9125                       
9126         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
9127 
9128 \textcolor{keywordflow}{    end if}
9129     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
9130     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
9131     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
9132 
9133                     
9134 
9135     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9136       pos\_str\_space = \textcolor{stringliteral}{''}
9137       pos\_str\_len = len\_trim(pos\_str)
9138 
9139       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9140       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9141       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
9142       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
9143       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
9144         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
9145       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
9146 
9147       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9148     \textcolor{keywordflow}{else}
9149       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
9150 \textcolor{keywordflow}{    end if}
9151 
9152 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_af1360f58ecfc661f088f34608339f5c5}\label{namespacedc__test_af1360f58ecfc661f088f34608339f5c5}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint0@{dctestassertequalint0}}
\index{dctestassertequalint0@{dctestassertequalint0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint0()}{dctestassertequalint0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, intent(in)}]{answer,  }\item[{integer, intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 1759 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
1759     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
1760     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
1761     \textcolor{keywordtype}{implicit none}
1762     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
1763     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer
1764     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check
1765     \textcolor{keywordtype}{logical}:: err\_flag
1766     \textcolor{keywordtype}{character(STRING)}:: pos\_str
1767     \textcolor{keywordtype}{integer}:: wrong, right
1768 
1769                                         
1770 
1771                     
1772 
1773   \textcolor{keywordflow}{continue}
1774     err\_flag = .false.
1775 
1776                     
1777     err\_flag = .not. answer == check
1778     wrong = check
1779     right = answer
1780     pos\_str = \textcolor{stringliteral}{''}
1781 
1782                     
1783 
1784 
1785     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1786       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1787       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1788       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
1789       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
1790       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
1791 
1792       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1793     \textcolor{keywordflow}{else}
1794       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
1795 \textcolor{keywordflow}{    end if}
1796 
1797 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a3a3ab7d9e43139a9237ab9a8b0f2e969}\label{namespacedc__test_a3a3ab7d9e43139a9237ab9a8b0f2e969}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint1@{dctestassertequalint1}}
\index{dctestassertequalint1@{dctestassertequalint1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint1()}{dctestassertequalint1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 1802 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
1802     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
1803     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
1804     \textcolor{keywordtype}{implicit none}
1805     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
1806     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:)
1807     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:)
1808     \textcolor{keywordtype}{logical}:: err\_flag
1809     \textcolor{keywordtype}{character(STRING)}:: pos\_str
1810     \textcolor{keywordtype}{integer}:: wrong, right
1811 
1812                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
1813     \textcolor{keywordtype}{logical}:: consist\_shape(1)
1814     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
1815     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
1816     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
1817     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
1818                     
1819 
1820                     
1821 
1822   \textcolor{keywordflow}{continue}
1823     err\_flag = .false.
1824 
1825                     
1826     answer\_shape = shape(answer)
1827     check\_shape = shape(check)
1828 
1829     consist\_shape = answer\_shape == check\_shape
1830 
1831     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
1832       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1833       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1834       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
1835       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
1836       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
1837 
1838       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1839 \textcolor{keywordflow}{    end if}
1840 
1841 
1842     \textcolor{keyword}{allocate}( mask\_array( &
1843                       
1844       &    answer\_shape(1)  )  &
1845       &  )
1846 
1847     \textcolor{keyword}{allocate}( judge( &
1848                       
1849       &    answer\_shape(1)  )  &
1850       &  )
1851 
1852     \textcolor{keyword}{allocate}( judge\_rev( &
1853                       
1854       &    answer\_shape(1)  )  &
1855       &  )
1856 
1857                       
1858     judge = answer == check
1859 
1860                       
1861 
1862     judge\_rev = .not. judge
1863     err\_flag = any(judge\_rev)
1864     mask\_array = 1
1865     pos = maxloc(mask\_array, judge\_rev)
1866 
1867     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1868 
1869       wrong = check( &
1870                       
1871         &    pos(1)  )
1872 
1873       right = answer( &
1874                       
1875         &    pos(1)  )
1876 
1877                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
1878                       
1879 
1880       pos\_str = \textcolor{stringliteral}{'('} // &
1881                       
1882         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
1883 
1884 \textcolor{keywordflow}{    end if}
1885     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
1886 
1887                     
1888 
1889 
1890     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1891       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1892       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1893       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
1894       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
1895       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
1896 
1897       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1898     \textcolor{keywordflow}{else}
1899       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
1900 \textcolor{keywordflow}{    end if}
1901 
1902 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_af4805f067921cde82159d53cbb674c97}\label{namespacedc__test_af4805f067921cde82159d53cbb674c97}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint2@{dctestassertequalint2}}
\index{dctestassertequalint2@{dctestassertequalint2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint2()}{dctestassertequalint2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 1907 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
1907     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
1908     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
1909     \textcolor{keywordtype}{implicit none}
1910     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
1911     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
1912     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
1913     \textcolor{keywordtype}{logical}:: err\_flag
1914     \textcolor{keywordtype}{character(STRING)}:: pos\_str
1915     \textcolor{keywordtype}{integer}:: wrong, right
1916 
1917                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
1918     \textcolor{keywordtype}{logical}:: consist\_shape(2)
1919     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
1920     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
1921     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
1922     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
1923                     
1924 
1925                     
1926 
1927   \textcolor{keywordflow}{continue}
1928     err\_flag = .false.
1929 
1930                     
1931     answer\_shape = shape(answer)
1932     check\_shape = shape(check)
1933 
1934     consist\_shape = answer\_shape == check\_shape
1935 
1936     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
1937       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
1938       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
1939       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
1940       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
1941       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
1942 
1943       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
1944 \textcolor{keywordflow}{    end if}
1945 
1946 
1947     \textcolor{keyword}{allocate}( mask\_array( &
1948                             &    answer\_shape(1), &
1949                       
1950       &    answer\_shape(2)  )  &
1951       &  )
1952 
1953     \textcolor{keyword}{allocate}( judge( &
1954                             &    answer\_shape(1), &
1955                       
1956       &    answer\_shape(2)  )  &
1957       &  )
1958 
1959     \textcolor{keyword}{allocate}( judge\_rev( &
1960                             &    answer\_shape(1), &
1961                       
1962       &    answer\_shape(2)  )  &
1963       &  )
1964 
1965                       
1966     judge = answer == check
1967 
1968                       
1969 
1970     judge\_rev = .not. judge
1971     err\_flag = any(judge\_rev)
1972     mask\_array = 1
1973     pos = maxloc(mask\_array, judge\_rev)
1974 
1975     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
1976 
1977       wrong = check( &
1978                               &    pos(1), &
1979                       
1980         &    pos(2)  )
1981 
1982       right = answer( &
1983                               &    pos(1), &
1984                       
1985         &    pos(2)  )
1986 
1987                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
1988                       
1989       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
1990                       
1991 
1992       pos\_str = \textcolor{stringliteral}{'('} // &
1993                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
1994                       
1995         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
1996 
1997 \textcolor{keywordflow}{    end if}
1998     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
1999 
2000                     
2001 
2002 
2003     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2004       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2005       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2006       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2007       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2008       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2009 
2010       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2011     \textcolor{keywordflow}{else}
2012       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2013 \textcolor{keywordflow}{    end if}
2014 
2015 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae64ef30b66884d430aa2ffe43ab23584}\label{namespacedc__test_ae64ef30b66884d430aa2ffe43ab23584}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint3@{dctestassertequalint3}}
\index{dctestassertequalint3@{dctestassertequalint3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint3()}{dctestassertequalint3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2020 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2020     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2021     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2022     \textcolor{keywordtype}{implicit none}
2023     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2024     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
2025     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
2026     \textcolor{keywordtype}{logical}:: err\_flag
2027     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2028     \textcolor{keywordtype}{integer}:: wrong, right
2029 
2030                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
2031     \textcolor{keywordtype}{logical}:: consist\_shape(3)
2032     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
2033     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
2034     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
2035     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
2036                     
2037 
2038                     
2039 
2040   \textcolor{keywordflow}{continue}
2041     err\_flag = .false.
2042 
2043                     
2044     answer\_shape = shape(answer)
2045     check\_shape = shape(check)
2046 
2047     consist\_shape = answer\_shape == check\_shape
2048 
2049     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2050       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2051       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2052       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2053       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2054       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2055 
2056       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2057 \textcolor{keywordflow}{    end if}
2058 
2059 
2060     \textcolor{keyword}{allocate}( mask\_array( &
2061                             &    answer\_shape(1), &
2062                       
2063       &    answer\_shape(2), &
2064                       
2065       &    answer\_shape(3)  )  &
2066       &  )
2067 
2068     \textcolor{keyword}{allocate}( judge( &
2069                             &    answer\_shape(1), &
2070                       
2071       &    answer\_shape(2), &
2072                       
2073       &    answer\_shape(3)  )  &
2074       &  )
2075 
2076     \textcolor{keyword}{allocate}( judge\_rev( &
2077                             &    answer\_shape(1), &
2078                       
2079       &    answer\_shape(2), &
2080                       
2081       &    answer\_shape(3)  )  &
2082       &  )
2083 
2084                       
2085     judge = answer == check
2086 
2087                       
2088 
2089     judge\_rev = .not. judge
2090     err\_flag = any(judge\_rev)
2091     mask\_array = 1
2092     pos = maxloc(mask\_array, judge\_rev)
2093 
2094     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2095 
2096       wrong = check( &
2097                               &    pos(1), &
2098                       
2099         &    pos(2), &
2100                       
2101         &    pos(3)  )
2102 
2103       right = answer( &
2104                               &    pos(1), &
2105                       
2106         &    pos(2), &
2107                       
2108         &    pos(3)  )
2109 
2110                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
2111                       
2112       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
2113                       
2114       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
2115                       
2116 
2117       pos\_str = \textcolor{stringliteral}{'('} // &
2118                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
2119                       
2120         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
2121                       
2122         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
2123 
2124 \textcolor{keywordflow}{    end if}
2125     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
2126 
2127                     
2128 
2129 
2130     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2131       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2132       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2133       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2134       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2135       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2136 
2137       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2138     \textcolor{keywordflow}{else}
2139       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2140 \textcolor{keywordflow}{    end if}
2141 
2142 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a6e7b69732c577c1f0e75edbccac8b618}\label{namespacedc__test_a6e7b69732c577c1f0e75edbccac8b618}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint4@{dctestassertequalint4}}
\index{dctestassertequalint4@{dctestassertequalint4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint4()}{dctestassertequalint4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2147 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2147     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2148     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2149     \textcolor{keywordtype}{implicit none}
2150     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2151     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
2152     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
2153     \textcolor{keywordtype}{logical}:: err\_flag
2154     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2155     \textcolor{keywordtype}{integer}:: wrong, right
2156 
2157                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
2158     \textcolor{keywordtype}{logical}:: consist\_shape(4)
2159     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
2160     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
2161     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
2162     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
2163                     
2164 
2165                     
2166 
2167   \textcolor{keywordflow}{continue}
2168     err\_flag = .false.
2169 
2170                     
2171     answer\_shape = shape(answer)
2172     check\_shape = shape(check)
2173 
2174     consist\_shape = answer\_shape == check\_shape
2175 
2176     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2177       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2178       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2179       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2180       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2181       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2182 
2183       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2184 \textcolor{keywordflow}{    end if}
2185 
2186 
2187     \textcolor{keyword}{allocate}( mask\_array( &
2188                             &    answer\_shape(1), &
2189                       
2190       &    answer\_shape(2), &
2191                       
2192       &    answer\_shape(3), &
2193                       
2194       &    answer\_shape(4)  )  &
2195       &  )
2196 
2197     \textcolor{keyword}{allocate}( judge( &
2198                             &    answer\_shape(1), &
2199                       
2200       &    answer\_shape(2), &
2201                       
2202       &    answer\_shape(3), &
2203                       
2204       &    answer\_shape(4)  )  &
2205       &  )
2206 
2207     \textcolor{keyword}{allocate}( judge\_rev( &
2208                             &    answer\_shape(1), &
2209                       
2210       &    answer\_shape(2), &
2211                       
2212       &    answer\_shape(3), &
2213                       
2214       &    answer\_shape(4)  )  &
2215       &  )
2216 
2217                       
2218     judge = answer == check
2219 
2220                       
2221 
2222     judge\_rev = .not. judge
2223     err\_flag = any(judge\_rev)
2224     mask\_array = 1
2225     pos = maxloc(mask\_array, judge\_rev)
2226 
2227     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2228 
2229       wrong = check( &
2230                               &    pos(1), &
2231                       
2232         &    pos(2), &
2233                       
2234         &    pos(3), &
2235                       
2236         &    pos(4)  )
2237 
2238       right = answer( &
2239                               &    pos(1), &
2240                       
2241         &    pos(2), &
2242                       
2243         &    pos(3), &
2244                       
2245         &    pos(4)  )
2246 
2247                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
2248                       
2249       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
2250                       
2251       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
2252                       
2253       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
2254                       
2255 
2256       pos\_str = \textcolor{stringliteral}{'('} // &
2257                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
2258                       
2259         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
2260                       
2261         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
2262                       
2263         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
2264 
2265 \textcolor{keywordflow}{    end if}
2266     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
2267 
2268                     
2269 
2270 
2271     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2272       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2273       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2274       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2275       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2276       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2277 
2278       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2279     \textcolor{keywordflow}{else}
2280       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2281 \textcolor{keywordflow}{    end if}
2282 
2283 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a1de2ec08e272751973f901026750a693}\label{namespacedc__test_a1de2ec08e272751973f901026750a693}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint5@{dctestassertequalint5}}
\index{dctestassertequalint5@{dctestassertequalint5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint5()}{dctestassertequalint5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2288 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2288     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2289     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2290     \textcolor{keywordtype}{implicit none}
2291     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2292     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
2293     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
2294     \textcolor{keywordtype}{logical}:: err\_flag
2295     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2296     \textcolor{keywordtype}{integer}:: wrong, right
2297 
2298                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
2299     \textcolor{keywordtype}{logical}:: consist\_shape(5)
2300     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
2301     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
2302     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
2303     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
2304                     
2305 
2306                     
2307 
2308   \textcolor{keywordflow}{continue}
2309     err\_flag = .false.
2310 
2311                     
2312     answer\_shape = shape(answer)
2313     check\_shape = shape(check)
2314 
2315     consist\_shape = answer\_shape == check\_shape
2316 
2317     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2318       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2319       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2320       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2321       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2322       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2323 
2324       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2325 \textcolor{keywordflow}{    end if}
2326 
2327 
2328     \textcolor{keyword}{allocate}( mask\_array( &
2329                             &    answer\_shape(1), &
2330                       
2331       &    answer\_shape(2), &
2332                       
2333       &    answer\_shape(3), &
2334                       
2335       &    answer\_shape(4), &
2336                       
2337       &    answer\_shape(5)  )  &
2338       &  )
2339 
2340     \textcolor{keyword}{allocate}( judge( &
2341                             &    answer\_shape(1), &
2342                       
2343       &    answer\_shape(2), &
2344                       
2345       &    answer\_shape(3), &
2346                       
2347       &    answer\_shape(4), &
2348                       
2349       &    answer\_shape(5)  )  &
2350       &  )
2351 
2352     \textcolor{keyword}{allocate}( judge\_rev( &
2353                             &    answer\_shape(1), &
2354                       
2355       &    answer\_shape(2), &
2356                       
2357       &    answer\_shape(3), &
2358                       
2359       &    answer\_shape(4), &
2360                       
2361       &    answer\_shape(5)  )  &
2362       &  )
2363 
2364                       
2365     judge = answer == check
2366 
2367                       
2368 
2369     judge\_rev = .not. judge
2370     err\_flag = any(judge\_rev)
2371     mask\_array = 1
2372     pos = maxloc(mask\_array, judge\_rev)
2373 
2374     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2375 
2376       wrong = check( &
2377                               &    pos(1), &
2378                       
2379         &    pos(2), &
2380                       
2381         &    pos(3), &
2382                       
2383         &    pos(4), &
2384                       
2385         &    pos(5)  )
2386 
2387       right = answer( &
2388                               &    pos(1), &
2389                       
2390         &    pos(2), &
2391                       
2392         &    pos(3), &
2393                       
2394         &    pos(4), &
2395                       
2396         &    pos(5)  )
2397 
2398                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
2399                       
2400       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
2401                       
2402       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
2403                       
2404       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
2405                       
2406       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
2407                       
2408 
2409       pos\_str = \textcolor{stringliteral}{'('} // &
2410                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
2411                       
2412         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
2413                       
2414         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
2415                       
2416         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
2417                       
2418         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
2419 
2420 \textcolor{keywordflow}{    end if}
2421     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
2422 
2423                     
2424 
2425 
2426     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2427       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2428       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2429       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2430       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2431       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2432 
2433       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2434     \textcolor{keywordflow}{else}
2435       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2436 \textcolor{keywordflow}{    end if}
2437 
2438 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a88dfeac828710cc9beadfa5e2d89801d}\label{namespacedc__test_a88dfeac828710cc9beadfa5e2d89801d}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint6@{dctestassertequalint6}}
\index{dctestassertequalint6@{dctestassertequalint6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint6()}{dctestassertequalint6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2443 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2443     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2444     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2445     \textcolor{keywordtype}{implicit none}
2446     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2447     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
2448     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
2449     \textcolor{keywordtype}{logical}:: err\_flag
2450     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2451     \textcolor{keywordtype}{integer}:: wrong, right
2452 
2453                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
2454     \textcolor{keywordtype}{logical}:: consist\_shape(6)
2455     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
2456     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
2457     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
2458     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
2459                     
2460 
2461                     
2462 
2463   \textcolor{keywordflow}{continue}
2464     err\_flag = .false.
2465 
2466                     
2467     answer\_shape = shape(answer)
2468     check\_shape = shape(check)
2469 
2470     consist\_shape = answer\_shape == check\_shape
2471 
2472     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2473       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2474       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2475       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2476       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2477       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2478 
2479       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2480 \textcolor{keywordflow}{    end if}
2481 
2482 
2483     \textcolor{keyword}{allocate}( mask\_array( &
2484                             &    answer\_shape(1), &
2485                       
2486       &    answer\_shape(2), &
2487                       
2488       &    answer\_shape(3), &
2489                       
2490       &    answer\_shape(4), &
2491                       
2492       &    answer\_shape(5), &
2493                       
2494       &    answer\_shape(6)  )  &
2495       &  )
2496 
2497     \textcolor{keyword}{allocate}( judge( &
2498                             &    answer\_shape(1), &
2499                       
2500       &    answer\_shape(2), &
2501                       
2502       &    answer\_shape(3), &
2503                       
2504       &    answer\_shape(4), &
2505                       
2506       &    answer\_shape(5), &
2507                       
2508       &    answer\_shape(6)  )  &
2509       &  )
2510 
2511     \textcolor{keyword}{allocate}( judge\_rev( &
2512                             &    answer\_shape(1), &
2513                       
2514       &    answer\_shape(2), &
2515                       
2516       &    answer\_shape(3), &
2517                       
2518       &    answer\_shape(4), &
2519                       
2520       &    answer\_shape(5), &
2521                       
2522       &    answer\_shape(6)  )  &
2523       &  )
2524 
2525                       
2526     judge = answer == check
2527 
2528                       
2529 
2530     judge\_rev = .not. judge
2531     err\_flag = any(judge\_rev)
2532     mask\_array = 1
2533     pos = maxloc(mask\_array, judge\_rev)
2534 
2535     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2536 
2537       wrong = check( &
2538                               &    pos(1), &
2539                       
2540         &    pos(2), &
2541                       
2542         &    pos(3), &
2543                       
2544         &    pos(4), &
2545                       
2546         &    pos(5), &
2547                       
2548         &    pos(6)  )
2549 
2550       right = answer( &
2551                               &    pos(1), &
2552                       
2553         &    pos(2), &
2554                       
2555         &    pos(3), &
2556                       
2557         &    pos(4), &
2558                       
2559         &    pos(5), &
2560                       
2561         &    pos(6)  )
2562 
2563                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
2564                       
2565       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
2566                       
2567       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
2568                       
2569       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
2570                       
2571       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
2572                       
2573       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
2574                       
2575 
2576       pos\_str = \textcolor{stringliteral}{'('} // &
2577                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
2578                       
2579         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
2580                       
2581         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
2582                       
2583         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
2584                       
2585         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
2586                       
2587         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
2588 
2589 \textcolor{keywordflow}{    end if}
2590     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
2591 
2592                     
2593 
2594 
2595     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2596       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2597       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2598       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2599       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2600       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2601 
2602       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2603     \textcolor{keywordflow}{else}
2604       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2605 \textcolor{keywordflow}{    end if}
2606 
2607 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a3712c54be325e3fa05d63ab3f1e9c6d8}\label{namespacedc__test_a3712c54be325e3fa05d63ab3f1e9c6d8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalint7@{dctestassertequalint7}}
\index{dctestassertequalint7@{dctestassertequalint7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalint7()}{dctestassertequalint7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalint7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2612 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2612     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2613     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2614     \textcolor{keywordtype}{implicit none}
2615     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2616     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
2617     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
2618     \textcolor{keywordtype}{logical}:: err\_flag
2619     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2620     \textcolor{keywordtype}{integer}:: wrong, right
2621 
2622                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
2623     \textcolor{keywordtype}{logical}:: consist\_shape(7)
2624     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
2625     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
2626     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
2627     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
2628                     
2629 
2630                     
2631 
2632   \textcolor{keywordflow}{continue}
2633     err\_flag = .false.
2634 
2635                     
2636     answer\_shape = shape(answer)
2637     check\_shape = shape(check)
2638 
2639     consist\_shape = answer\_shape == check\_shape
2640 
2641     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2642       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2643       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2644       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2645       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2646       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2647 
2648       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2649 \textcolor{keywordflow}{    end if}
2650 
2651 
2652     \textcolor{keyword}{allocate}( mask\_array( &
2653                             &    answer\_shape(1), &
2654                       
2655       &    answer\_shape(2), &
2656                       
2657       &    answer\_shape(3), &
2658                       
2659       &    answer\_shape(4), &
2660                       
2661       &    answer\_shape(5), &
2662                       
2663       &    answer\_shape(6), &
2664                       
2665       &    answer\_shape(7)  )  &
2666       &  )
2667 
2668     \textcolor{keyword}{allocate}( judge( &
2669                             &    answer\_shape(1), &
2670                       
2671       &    answer\_shape(2), &
2672                       
2673       &    answer\_shape(3), &
2674                       
2675       &    answer\_shape(4), &
2676                       
2677       &    answer\_shape(5), &
2678                       
2679       &    answer\_shape(6), &
2680                       
2681       &    answer\_shape(7)  )  &
2682       &  )
2683 
2684     \textcolor{keyword}{allocate}( judge\_rev( &
2685                             &    answer\_shape(1), &
2686                       
2687       &    answer\_shape(2), &
2688                       
2689       &    answer\_shape(3), &
2690                       
2691       &    answer\_shape(4), &
2692                       
2693       &    answer\_shape(5), &
2694                       
2695       &    answer\_shape(6), &
2696                       
2697       &    answer\_shape(7)  )  &
2698       &  )
2699 
2700                       
2701     judge = answer == check
2702 
2703                       
2704 
2705     judge\_rev = .not. judge
2706     err\_flag = any(judge\_rev)
2707     mask\_array = 1
2708     pos = maxloc(mask\_array, judge\_rev)
2709 
2710     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2711 
2712       wrong = check( &
2713                               &    pos(1), &
2714                       
2715         &    pos(2), &
2716                       
2717         &    pos(3), &
2718                       
2719         &    pos(4), &
2720                       
2721         &    pos(5), &
2722                       
2723         &    pos(6), &
2724                       
2725         &    pos(7)  )
2726 
2727       right = answer( &
2728                               &    pos(1), &
2729                       
2730         &    pos(2), &
2731                       
2732         &    pos(3), &
2733                       
2734         &    pos(4), &
2735                       
2736         &    pos(5), &
2737                       
2738         &    pos(6), &
2739                       
2740         &    pos(7)  )
2741 
2742                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
2743                       
2744       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
2745                       
2746       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
2747                       
2748       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
2749                       
2750       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
2751                       
2752       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
2753                       
2754       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
2755                       
2756 
2757       pos\_str = \textcolor{stringliteral}{'('} // &
2758                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
2759                       
2760         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
2761                       
2762         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
2763                       
2764         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
2765                       
2766         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
2767                       
2768         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
2769                       
2770         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
2771 
2772 \textcolor{keywordflow}{    end if}
2773     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
2774 
2775                     
2776 
2777 
2778     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2779       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2780       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2781       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2782       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2783       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2784 
2785       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2786     \textcolor{keywordflow}{else}
2787       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2788 \textcolor{keywordflow}{    end if}
2789 
2790 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aba85cc5713828aa9a03aef9a748abdbf}\label{namespacedc__test_aba85cc5713828aa9a03aef9a748abdbf}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical0@{dctestassertequallogical0}}
\index{dctestassertequallogical0@{dctestassertequallogical0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical0()}{dctestassertequallogical0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, intent(in)}]{answer,  }\item[{logical, intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4866 of file dc\+\_\+test.\+f90.



References dctestassertequalchar0(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
4866     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
4867     \textcolor{keywordtype}{implicit none}
4868     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4869     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer
4870     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check
4871 
4872                         \textcolor{keywordtype}{character(STRING)}:: answer\_str
4873     \textcolor{keywordtype}{character(STRING)}:: check\_str
4874                     
4875 
4876 
4877   \textcolor{keywordflow}{continue}
4878 
4879                     
4880     \textcolor{keywordflow}{if} (answer) \textcolor{keywordflow}{then}
4881       answer\_str = \textcolor{stringliteral}{".true."}
4882     \textcolor{keywordflow}{else}
4883       answer\_str = \textcolor{stringliteral}{".false."}
4884 \textcolor{keywordflow}{    end if}
4885 
4886     \textcolor{keywordflow}{if} (check) \textcolor{keywordflow}{then}
4887       check\_str = \textcolor{stringliteral}{".true."}
4888     \textcolor{keywordflow}{else}
4889       check\_str = \textcolor{stringliteral}{".false."}
4890 \textcolor{keywordflow}{    end if}
4891 
4892                     
4893 
4894     \textcolor{keyword}{call }dctestassertequalchar0(message, answer\_str, check\_str)
4895 
4896                                         
4897 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_aba85cc5713828aa9a03aef9a748abdbf_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_af6b625c4f021c5c74044719921655b7f}\label{namespacedc__test_af6b625c4f021c5c74044719921655b7f}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical1@{dctestassertequallogical1}}
\index{dctestassertequallogical1@{dctestassertequallogical1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical1()}{dctestassertequallogical1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4900 of file dc\+\_\+test.\+f90.



References dctestassertequalchar1(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
4900     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
4901     \textcolor{keywordtype}{implicit none}
4902     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4903     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:)
4904     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:)
4905 
4906                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), i
4907     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
4908     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
4909     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:)
4910     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:)
4911                     
4912 
4913 
4914   \textcolor{keywordflow}{continue}
4915 
4916                     
4917     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
4918     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
4919     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
4920     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
4921     answer\_tmp = pack(answer, .true.)
4922     check\_tmp = pack(check, .true.)
4923 
4924     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
4925       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
4926         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
4927       \textcolor{keywordflow}{else}
4928         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
4929 \textcolor{keywordflow}{      end if}
4930 \textcolor{keywordflow}{    end do}
4931 
4932     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
4933       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
4934         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
4935       \textcolor{keywordflow}{else}
4936         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
4937 \textcolor{keywordflow}{      end if}
4938 \textcolor{keywordflow}{    end do}
4939 
4940     answer\_shape = shape(answer)
4941     check\_shape = shape(check)
4942 
4943     \textcolor{keyword}{allocate}( answer\_str( &
4944                       
4945       &    answer\_shape(1)  )  &
4946       &  )
4947 
4948     \textcolor{keyword}{allocate}( check\_str( &
4949                       
4950       &    check\_shape(1)  )  &
4951       &  )
4952 
4953     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
4954     check\_str = reshape(check\_str\_tmp, check\_shape)
4955 
4956                     
4957 
4958     \textcolor{keyword}{call }dctestassertequalchar1(message, answer\_str, check\_str)
4959 
4960                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
4961     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
4962                     
4963 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_af6b625c4f021c5c74044719921655b7f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a4470588faf39e2d7f713b3e53d7d6ac9}\label{namespacedc__test_a4470588faf39e2d7f713b3e53d7d6ac9}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical2@{dctestassertequallogical2}}
\index{dctestassertequallogical2@{dctestassertequallogical2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical2()}{dctestassertequallogical2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 4966 of file dc\+\_\+test.\+f90.



References dctestassertequalchar2(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
4966     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
4967     \textcolor{keywordtype}{implicit none}
4968     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
4969     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
4970     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
4971 
4972                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), i
4973     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
4974     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
4975     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:,:)
4976     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:,:)
4977                     
4978 
4979 
4980   \textcolor{keywordflow}{continue}
4981 
4982                     
4983     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
4984     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
4985     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
4986     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
4987     answer\_tmp = pack(answer, .true.)
4988     check\_tmp = pack(check, .true.)
4989 
4990     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
4991       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
4992         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
4993       \textcolor{keywordflow}{else}
4994         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
4995 \textcolor{keywordflow}{      end if}
4996 \textcolor{keywordflow}{    end do}
4997 
4998     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
4999       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
5000         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5001       \textcolor{keywordflow}{else}
5002         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5003 \textcolor{keywordflow}{      end if}
5004 \textcolor{keywordflow}{    end do}
5005 
5006     answer\_shape = shape(answer)
5007     check\_shape = shape(check)
5008 
5009     \textcolor{keyword}{allocate}( answer\_str( &
5010                             &    answer\_shape(1), &
5011                       
5012       &    answer\_shape(2)  )  &
5013       &  )
5014 
5015     \textcolor{keyword}{allocate}( check\_str( &
5016                             &    check\_shape(1), &
5017                       
5018       &    check\_shape(2)  )  &
5019       &  )
5020 
5021     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
5022     check\_str = reshape(check\_str\_tmp, check\_shape)
5023 
5024                     
5025 
5026     \textcolor{keyword}{call }dctestassertequalchar2(message, answer\_str, check\_str)
5027 
5028                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
5029     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
5030                     
5031 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a4470588faf39e2d7f713b3e53d7d6ac9_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_ae688aeba2bc9afbb50db9768e3d4b6c0}\label{namespacedc__test_ae688aeba2bc9afbb50db9768e3d4b6c0}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical3@{dctestassertequallogical3}}
\index{dctestassertequallogical3@{dctestassertequallogical3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical3()}{dctestassertequallogical3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 5034 of file dc\+\_\+test.\+f90.



References dctestassertequalchar3(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
5034     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
5035     \textcolor{keywordtype}{implicit none}
5036     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5037     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
5038     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
5039 
5040                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), i
5041     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
5042     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
5043     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:,:,:)
5044     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:,:,:)
5045                     
5046 
5047 
5048   \textcolor{keywordflow}{continue}
5049 
5050                     
5051     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
5052     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
5053     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
5054     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
5055     answer\_tmp = pack(answer, .true.)
5056     check\_tmp = pack(check, .true.)
5057 
5058     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
5059       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
5060         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5061       \textcolor{keywordflow}{else}
5062         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5063 \textcolor{keywordflow}{      end if}
5064 \textcolor{keywordflow}{    end do}
5065 
5066     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
5067       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
5068         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5069       \textcolor{keywordflow}{else}
5070         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5071 \textcolor{keywordflow}{      end if}
5072 \textcolor{keywordflow}{    end do}
5073 
5074     answer\_shape = shape(answer)
5075     check\_shape = shape(check)
5076 
5077     \textcolor{keyword}{allocate}( answer\_str( &
5078                             &    answer\_shape(1), &
5079                       
5080       &    answer\_shape(2), &
5081                       
5082       &    answer\_shape(3)  )  &
5083       &  )
5084 
5085     \textcolor{keyword}{allocate}( check\_str( &
5086                             &    check\_shape(1), &
5087                       
5088       &    check\_shape(2), &
5089                       
5090       &    check\_shape(3)  )  &
5091       &  )
5092 
5093     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
5094     check\_str = reshape(check\_str\_tmp, check\_shape)
5095 
5096                     
5097 
5098     \textcolor{keyword}{call }dctestassertequalchar3(message, answer\_str, check\_str)
5099 
5100                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
5101     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
5102                     
5103 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_ae688aeba2bc9afbb50db9768e3d4b6c0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_abc8b0ff0f8f5c4d4f8b12c7dcbd28ccb}\label{namespacedc__test_abc8b0ff0f8f5c4d4f8b12c7dcbd28ccb}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical4@{dctestassertequallogical4}}
\index{dctestassertequallogical4@{dctestassertequallogical4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical4()}{dctestassertequallogical4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 5106 of file dc\+\_\+test.\+f90.



References dctestassertequalchar4(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
5106     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
5107     \textcolor{keywordtype}{implicit none}
5108     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5109     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
5110     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
5111 
5112                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), i
5113     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
5114     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
5115     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:,:,:,:)
5116     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:,:,:,:)
5117                     
5118 
5119 
5120   \textcolor{keywordflow}{continue}
5121 
5122                     
5123     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
5124     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
5125     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
5126     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
5127     answer\_tmp = pack(answer, .true.)
5128     check\_tmp = pack(check, .true.)
5129 
5130     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
5131       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
5132         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5133       \textcolor{keywordflow}{else}
5134         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5135 \textcolor{keywordflow}{      end if}
5136 \textcolor{keywordflow}{    end do}
5137 
5138     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
5139       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
5140         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5141       \textcolor{keywordflow}{else}
5142         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5143 \textcolor{keywordflow}{      end if}
5144 \textcolor{keywordflow}{    end do}
5145 
5146     answer\_shape = shape(answer)
5147     check\_shape = shape(check)
5148 
5149     \textcolor{keyword}{allocate}( answer\_str( &
5150                             &    answer\_shape(1), &
5151                       
5152       &    answer\_shape(2), &
5153                       
5154       &    answer\_shape(3), &
5155                       
5156       &    answer\_shape(4)  )  &
5157       &  )
5158 
5159     \textcolor{keyword}{allocate}( check\_str( &
5160                             &    check\_shape(1), &
5161                       
5162       &    check\_shape(2), &
5163                       
5164       &    check\_shape(3), &
5165                       
5166       &    check\_shape(4)  )  &
5167       &  )
5168 
5169     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
5170     check\_str = reshape(check\_str\_tmp, check\_shape)
5171 
5172                     
5173 
5174     \textcolor{keyword}{call }dctestassertequalchar4(message, answer\_str, check\_str)
5175 
5176                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
5177     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
5178                     
5179 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_abc8b0ff0f8f5c4d4f8b12c7dcbd28ccb_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_acc7a7a45cba4c850e13b9a24810a499d}\label{namespacedc__test_acc7a7a45cba4c850e13b9a24810a499d}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical5@{dctestassertequallogical5}}
\index{dctestassertequallogical5@{dctestassertequallogical5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical5()}{dctestassertequallogical5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 5182 of file dc\+\_\+test.\+f90.



References dctestassertequalchar5(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
5182     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
5183     \textcolor{keywordtype}{implicit none}
5184     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5185     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
5186     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
5187 
5188                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), i
5189     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
5190     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
5191     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:,:,:,:,:)
5192     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:,:,:,:,:)
5193                     
5194 
5195 
5196   \textcolor{keywordflow}{continue}
5197 
5198                     
5199     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
5200     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
5201     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
5202     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
5203     answer\_tmp = pack(answer, .true.)
5204     check\_tmp = pack(check, .true.)
5205 
5206     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
5207       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
5208         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5209       \textcolor{keywordflow}{else}
5210         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5211 \textcolor{keywordflow}{      end if}
5212 \textcolor{keywordflow}{    end do}
5213 
5214     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
5215       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
5216         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5217       \textcolor{keywordflow}{else}
5218         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5219 \textcolor{keywordflow}{      end if}
5220 \textcolor{keywordflow}{    end do}
5221 
5222     answer\_shape = shape(answer)
5223     check\_shape = shape(check)
5224 
5225     \textcolor{keyword}{allocate}( answer\_str( &
5226                             &    answer\_shape(1), &
5227                       
5228       &    answer\_shape(2), &
5229                       
5230       &    answer\_shape(3), &
5231                       
5232       &    answer\_shape(4), &
5233                       
5234       &    answer\_shape(5)  )  &
5235       &  )
5236 
5237     \textcolor{keyword}{allocate}( check\_str( &
5238                             &    check\_shape(1), &
5239                       
5240       &    check\_shape(2), &
5241                       
5242       &    check\_shape(3), &
5243                       
5244       &    check\_shape(4), &
5245                       
5246       &    check\_shape(5)  )  &
5247       &  )
5248 
5249     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
5250     check\_str = reshape(check\_str\_tmp, check\_shape)
5251 
5252                     
5253 
5254     \textcolor{keyword}{call }dctestassertequalchar5(message, answer\_str, check\_str)
5255 
5256                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
5257     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
5258                     
5259 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_acc7a7a45cba4c850e13b9a24810a499d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a4ad0124e7c92193f47fdf41f646b7748}\label{namespacedc__test_a4ad0124e7c92193f47fdf41f646b7748}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical6@{dctestassertequallogical6}}
\index{dctestassertequallogical6@{dctestassertequallogical6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical6()}{dctestassertequallogical6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 5262 of file dc\+\_\+test.\+f90.



References dctestassertequalchar6(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
5262     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
5263     \textcolor{keywordtype}{implicit none}
5264     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5265     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
5266     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
5267 
5268                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), i
5269     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
5270     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
5271     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:,:,:,:,:,:)
5272     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:,:,:,:,:,:)
5273                     
5274 
5275 
5276   \textcolor{keywordflow}{continue}
5277 
5278                     
5279     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
5280     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
5281     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
5282     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
5283     answer\_tmp = pack(answer, .true.)
5284     check\_tmp = pack(check, .true.)
5285 
5286     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
5287       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
5288         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5289       \textcolor{keywordflow}{else}
5290         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5291 \textcolor{keywordflow}{      end if}
5292 \textcolor{keywordflow}{    end do}
5293 
5294     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
5295       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
5296         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5297       \textcolor{keywordflow}{else}
5298         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5299 \textcolor{keywordflow}{      end if}
5300 \textcolor{keywordflow}{    end do}
5301 
5302     answer\_shape = shape(answer)
5303     check\_shape = shape(check)
5304 
5305     \textcolor{keyword}{allocate}( answer\_str( &
5306                             &    answer\_shape(1), &
5307                       
5308       &    answer\_shape(2), &
5309                       
5310       &    answer\_shape(3), &
5311                       
5312       &    answer\_shape(4), &
5313                       
5314       &    answer\_shape(5), &
5315                       
5316       &    answer\_shape(6)  )  &
5317       &  )
5318 
5319     \textcolor{keyword}{allocate}( check\_str( &
5320                             &    check\_shape(1), &
5321                       
5322       &    check\_shape(2), &
5323                       
5324       &    check\_shape(3), &
5325                       
5326       &    check\_shape(4), &
5327                       
5328       &    check\_shape(5), &
5329                       
5330       &    check\_shape(6)  )  &
5331       &  )
5332 
5333     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
5334     check\_str = reshape(check\_str\_tmp, check\_shape)
5335 
5336                     
5337 
5338     \textcolor{keyword}{call }dctestassertequalchar6(message, answer\_str, check\_str)
5339 
5340                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
5341     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
5342                     
5343 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a4ad0124e7c92193f47fdf41f646b7748_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a1aca06626f712a2ce70654771b1fb1c0}\label{namespacedc__test_a1aca06626f712a2ce70654771b1fb1c0}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequallogical7@{dctestassertequallogical7}}
\index{dctestassertequallogical7@{dctestassertequallogical7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequallogical7()}{dctestassertequallogical7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequallogical7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{logical, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{logical, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 5346 of file dc\+\_\+test.\+f90.



References dctestassertequalchar7(), and dc\+\_\+types\+::string.


\begin{DoxyCode}
5346     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
5347     \textcolor{keywordtype}{implicit none}
5348     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5349     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
5350     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
5351 
5352                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), i
5353     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_tmp(:), check\_tmp(:)
5354     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str\_tmp(:), check\_str\_tmp(:)
5355     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: answer\_str(:,:,:,:,:,:,:)
5356     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{allocatable}:: check\_str(:,:,:,:,:,:,:)
5357                     
5358 
5359 
5360   \textcolor{keywordflow}{continue}
5361 
5362                     
5363     \textcolor{keyword}{allocate}(answer\_tmp(\textcolor{keyword}{size}(answer)))
5364     \textcolor{keyword}{allocate}(check\_tmp(\textcolor{keyword}{size}(check)))
5365     \textcolor{keyword}{allocate}(answer\_str\_tmp(\textcolor{keyword}{size}(answer)))
5366     \textcolor{keyword}{allocate}(check\_str\_tmp(\textcolor{keyword}{size}(check)))
5367     answer\_tmp = pack(answer, .true.)
5368     check\_tmp = pack(check, .true.)
5369 
5370     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(answer\_tmp)
5371       \textcolor{keywordflow}{if} (answer\_tmp(i)) \textcolor{keywordflow}{then}
5372         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5373       \textcolor{keywordflow}{else}
5374         answer\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5375 \textcolor{keywordflow}{      end if}
5376 \textcolor{keywordflow}{    end do}
5377 
5378     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(check\_tmp)
5379       \textcolor{keywordflow}{if} (check\_tmp(i)) \textcolor{keywordflow}{then}
5380         check\_str\_tmp(i) = \textcolor{stringliteral}{'.true.'}
5381       \textcolor{keywordflow}{else}
5382         check\_str\_tmp(i) = \textcolor{stringliteral}{'.false.'}
5383 \textcolor{keywordflow}{      end if}
5384 \textcolor{keywordflow}{    end do}
5385 
5386     answer\_shape = shape(answer)
5387     check\_shape = shape(check)
5388 
5389     \textcolor{keyword}{allocate}( answer\_str( &
5390                             &    answer\_shape(1), &
5391                       
5392       &    answer\_shape(2), &
5393                       
5394       &    answer\_shape(3), &
5395                       
5396       &    answer\_shape(4), &
5397                       
5398       &    answer\_shape(5), &
5399                       
5400       &    answer\_shape(6), &
5401                       
5402       &    answer\_shape(7)  )  &
5403       &  )
5404 
5405     \textcolor{keyword}{allocate}( check\_str( &
5406                             &    check\_shape(1), &
5407                       
5408       &    check\_shape(2), &
5409                       
5410       &    check\_shape(3), &
5411                       
5412       &    check\_shape(4), &
5413                       
5414       &    check\_shape(5), &
5415                       
5416       &    check\_shape(6), &
5417                       
5418       &    check\_shape(7)  )  &
5419       &  )
5420 
5421     answer\_str = reshape(answer\_str\_tmp, answer\_shape)
5422     check\_str = reshape(check\_str\_tmp, check\_shape)
5423 
5424                     
5425 
5426     \textcolor{keyword}{call }dctestassertequalchar7(message, answer\_str, check\_str)
5427 
5428                         \textcolor{keyword}{deallocate}(answer\_str, answer\_tmp, answer\_str\_tmp)
5429     \textcolor{keyword}{deallocate}(check\_str, check\_tmp, check\_str\_tmp)
5430                     
5431 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__test_a1aca06626f712a2ce70654771b1fb1c0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__test_a804219402fdf7b21f5681687a1eac76d}\label{namespacedc__test_a804219402fdf7b21f5681687a1eac76d}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal0@{dctestassertequalreal0}}
\index{dctestassertequalreal0@{dctestassertequalreal0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal0()}{dctestassertequalreal0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, intent(in)}]{answer,  }\item[{real, intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2795 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2795     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2796     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2797     \textcolor{keywordtype}{implicit none}
2798     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2799     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer
2800     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check
2801     \textcolor{keywordtype}{logical}:: err\_flag
2802     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2803     \textcolor{keywordtype}{real}:: wrong, right
2804 
2805                                         
2806 
2807                     
2808 
2809   \textcolor{keywordflow}{continue}
2810     err\_flag = .false.
2811 
2812                     
2813     err\_flag = .not. answer == check
2814     wrong = check
2815     right = answer
2816     pos\_str = \textcolor{stringliteral}{''}
2817 
2818                     
2819 
2820 
2821     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2822       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2823       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2824       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2825       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2826       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2827 
2828       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2829     \textcolor{keywordflow}{else}
2830       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2831 \textcolor{keywordflow}{    end if}
2832 
2833 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a0fc485baf2cb1bcf06fface6a8390a9f}\label{namespacedc__test_a0fc485baf2cb1bcf06fface6a8390a9f}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal0digits@{dctestassertequalreal0digits}}
\index{dctestassertequalreal0digits@{dctestassertequalreal0digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal0digits()}{dctestassertequalreal0digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal0digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, intent(in)}]{answer,  }\item[{real, intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 5436 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
5436     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
5437     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
5438     \textcolor{keywordtype}{implicit none}
5439     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5440     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer
5441     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check
5442     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
5443     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
5444     \textcolor{keywordtype}{logical}:: err\_flag
5445     \textcolor{keywordtype}{character(STRING)}:: pos\_str
5446     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
5447     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
5448     \textcolor{keywordtype}{integer}:: pos\_str\_len
5449     \textcolor{keywordtype}{real}:: right\_tmp
5450 
5451                         \textcolor{keywordtype}{real}:: answer\_max
5452     \textcolor{keywordtype}{real}:: answer\_min
5453                     
5454   \textcolor{keywordflow}{continue}
5455     err\_flag = .false.
5456 
5457     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
5458       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
5459       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
5460       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5461 \textcolor{keywordflow}{    end if}
5462                     
5463     \textcolor{keywordflow}{if} ( answer < 0.0 .and. check < 0.0 ) \textcolor{keywordflow}{then}
5464       answer\_max = &
5465         &   answer &
5466         &   * (   1.0 &
5467         &       - 0.1 ** significant\_digits ) &
5468         & + 0.1 ** (- ignore\_digits)
5469 
5470       answer\_min = &
5471         &   answer &
5472         &   * (   1.0 &
5473         &       + 0.1 ** significant\_digits ) &
5474         & - 0.1 ** (- ignore\_digits)
5475     \textcolor{keywordflow}{else}
5476 
5477       answer\_max = &
5478         &   answer &
5479         &   * (   1.0 &
5480         &       + 0.1 ** significant\_digits ) &
5481         & + 0.1 ** (- ignore\_digits)
5482 
5483       answer\_min = &
5484         &   answer &
5485         &   * (   1.0 &
5486         &       - 0.1 ** significant\_digits ) &
5487         & - 0.1 ** (- ignore\_digits)
5488 \textcolor{keywordflow}{    end if}
5489 
5490     wrong = check
5491     right\_max = answer\_max
5492     right\_min = answer\_min
5493     \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
5494       right\_tmp = right\_max
5495       right\_max = right\_min
5496       right\_min = right\_tmp
5497 \textcolor{keywordflow}{    end if}
5498 
5499     err\_flag = .not. (answer\_max > check .and. check > answer\_min)
5500 
5501     pos\_str = \textcolor{stringliteral}{''}
5502 
5503                     
5504 
5505     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
5506       pos\_str\_space = \textcolor{stringliteral}{''}
5507       pos\_str\_len = len\_trim(pos\_str)
5508 
5509       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
5510       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
5511       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
5512       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
5513       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
5514         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
5515       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
5516 
5517       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5518     \textcolor{keywordflow}{else}
5519       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
5520 \textcolor{keywordflow}{    end if}
5521 
5522 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_acd6257297a565a43dfdddde112152c10}\label{namespacedc__test_acd6257297a565a43dfdddde112152c10}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal1@{dctestassertequalreal1}}
\index{dctestassertequalreal1@{dctestassertequalreal1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal1()}{dctestassertequalreal1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2838 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2838     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2839     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2840     \textcolor{keywordtype}{implicit none}
2841     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2842     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:)
2843     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:)
2844     \textcolor{keywordtype}{logical}:: err\_flag
2845     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2846     \textcolor{keywordtype}{real}:: wrong, right
2847 
2848                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
2849     \textcolor{keywordtype}{logical}:: consist\_shape(1)
2850     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
2851     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
2852     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
2853     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
2854                     
2855 
2856                     
2857 
2858   \textcolor{keywordflow}{continue}
2859     err\_flag = .false.
2860 
2861                     
2862     answer\_shape = shape(answer)
2863     check\_shape = shape(check)
2864 
2865     consist\_shape = answer\_shape == check\_shape
2866 
2867     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2868       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2869       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2870       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2871       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2872       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2873 
2874       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2875 \textcolor{keywordflow}{    end if}
2876 
2877 
2878     \textcolor{keyword}{allocate}( mask\_array( &
2879                       
2880       &    answer\_shape(1)  )  &
2881       &  )
2882 
2883     \textcolor{keyword}{allocate}( judge( &
2884                       
2885       &    answer\_shape(1)  )  &
2886       &  )
2887 
2888     \textcolor{keyword}{allocate}( judge\_rev( &
2889                       
2890       &    answer\_shape(1)  )  &
2891       &  )
2892 
2893                       
2894     judge = answer == check
2895 
2896                       
2897 
2898     judge\_rev = .not. judge
2899     err\_flag = any(judge\_rev)
2900     mask\_array = 1
2901     pos = maxloc(mask\_array, judge\_rev)
2902 
2903     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2904 
2905       wrong = check( &
2906                       
2907         &    pos(1)  )
2908 
2909       right = answer( &
2910                       
2911         &    pos(1)  )
2912 
2913                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
2914                       
2915 
2916       pos\_str = \textcolor{stringliteral}{'('} // &
2917                       
2918         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
2919 
2920 \textcolor{keywordflow}{    end if}
2921     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
2922 
2923                     
2924 
2925 
2926     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
2927       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2928       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2929       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
2930       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
2931       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
2932 
2933       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2934     \textcolor{keywordflow}{else}
2935       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
2936 \textcolor{keywordflow}{    end if}
2937 
2938 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ad07e88e22ae0532a57c91df17929cf0e}\label{namespacedc__test_ad07e88e22ae0532a57c91df17929cf0e}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal1digits@{dctestassertequalreal1digits}}
\index{dctestassertequalreal1digits@{dctestassertequalreal1digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal1digits()}{dctestassertequalreal1digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal1digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 5528 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
5528     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
5529     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
5530     \textcolor{keywordtype}{implicit none}
5531     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5532     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:)
5533     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:)
5534     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
5535     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
5536     \textcolor{keywordtype}{logical}:: err\_flag
5537     \textcolor{keywordtype}{character(STRING)}:: pos\_str
5538     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
5539     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
5540     \textcolor{keywordtype}{integer}:: pos\_str\_len
5541     \textcolor{keywordtype}{real}:: right\_tmp
5542 
5543                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
5544     \textcolor{keywordtype}{logical}:: consist\_shape(1)
5545     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
5546     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
5547     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
5548     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
5549     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
5550     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
5551     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
5552     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:)
5553     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:)
5554                     
5555   \textcolor{keywordflow}{continue}
5556     err\_flag = .false.
5557 
5558     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
5559       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
5560       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
5561       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5562 \textcolor{keywordflow}{    end if}
5563                     
5564     answer\_shape = shape(answer)
5565     check\_shape = shape(check)
5566 
5567     consist\_shape = answer\_shape == check\_shape
5568 
5569     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
5570       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
5571       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
5572       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
5573       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
5574       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
5575 
5576       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5577 \textcolor{keywordflow}{    end if}
5578 
5579 
5580     \textcolor{keyword}{allocate}( mask\_array( &
5581                       
5582       &    answer\_shape(1)  )  &
5583       &  )
5584 
5585     \textcolor{keyword}{allocate}( judge( &
5586                       
5587       &    answer\_shape(1)  )  &
5588       &  )
5589 
5590     \textcolor{keyword}{allocate}( judge\_rev( &
5591                       
5592       &    answer\_shape(1)  )  &
5593       &  )
5594 
5595     \textcolor{keyword}{allocate}( answer\_negative( &
5596                       
5597       &    answer\_shape(1)  )  &
5598       &  )
5599 
5600     \textcolor{keyword}{allocate}( check\_negative( &
5601                       
5602       &    answer\_shape(1)  )  &
5603       &  )
5604 
5605     \textcolor{keyword}{allocate}( both\_negative( &
5606                       
5607       &    answer\_shape(1)  )  &
5608       &  )
5609 
5610     \textcolor{keyword}{allocate}( answer\_max( &
5611                       
5612       &    answer\_shape(1)  )  &
5613       &  )
5614 
5615     \textcolor{keyword}{allocate}( answer\_min( &
5616                       
5617       &    answer\_shape(1)  )  &
5618       &  )
5619 
5620     answer\_negative = answer < 0.0
5621     check\_negative = check < 0.0
5622     both\_negative = answer\_negative .and. check\_negative
5623 
5624     \textcolor{keywordflow}{where} (both\_negative)
5625       answer\_max = &
5626         &   answer &
5627         &   * (   1.0 &
5628         &       - 0.1 ** significant\_digits ) &
5629         & + 0.1 ** (- ignore\_digits)
5630 
5631       answer\_min = &
5632         &   answer &
5633         &   * (   1.0 &
5634         &       + 0.1 ** significant\_digits ) &
5635         & - 0.1 ** (- ignore\_digits)
5636     \textcolor{keywordflow}{elsewhere}
5637       answer\_max = &
5638         &   answer &
5639         &   * (   1.0 &
5640         &       + 0.1 ** significant\_digits ) &
5641         & + 0.1 ** (- ignore\_digits)
5642 
5643       answer\_min = &
5644         &   answer &
5645         &   * (   1.0 &
5646         &       - 0.1 ** significant\_digits ) &
5647         & - 0.1 ** (- ignore\_digits)
5648 \textcolor{keywordflow}{    end where}
5649 
5650     judge = answer\_max > check .and. check > answer\_min
5651     judge\_rev = .not. judge
5652     err\_flag = any(judge\_rev)
5653     mask\_array = 1
5654     pos = maxloc(mask\_array, judge\_rev)
5655 
5656     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
5657 
5658       wrong = check( &
5659                       
5660         &    pos(1)  )
5661 
5662       right\_max = answer\_max( &
5663                       
5664         &    pos(1)  )
5665 
5666       right\_min = answer\_min( &
5667                       
5668         &    pos(1)  )
5669 
5670       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
5671         right\_tmp = right\_max
5672         right\_max = right\_min
5673         right\_min = right\_tmp
5674 \textcolor{keywordflow}{      end if}
5675 
5676                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
5677                       
5678 
5679       pos\_str = \textcolor{stringliteral}{'('} // &
5680                       
5681         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
5682 
5683 \textcolor{keywordflow}{    end if}
5684     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
5685     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
5686     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
5687 
5688                     
5689 
5690     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
5691       pos\_str\_space = \textcolor{stringliteral}{''}
5692       pos\_str\_len = len\_trim(pos\_str)
5693 
5694       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
5695       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
5696       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
5697       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
5698       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
5699         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
5700       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
5701 
5702       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5703     \textcolor{keywordflow}{else}
5704       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
5705 \textcolor{keywordflow}{    end if}
5706 
5707 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a1fe9c8e1b8e5377cea9096d89a81aba9}\label{namespacedc__test_a1fe9c8e1b8e5377cea9096d89a81aba9}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal2@{dctestassertequalreal2}}
\index{dctestassertequalreal2@{dctestassertequalreal2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal2()}{dctestassertequalreal2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 2943 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
2943     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
2944     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
2945     \textcolor{keywordtype}{implicit none}
2946     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
2947     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
2948     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
2949     \textcolor{keywordtype}{logical}:: err\_flag
2950     \textcolor{keywordtype}{character(STRING)}:: pos\_str
2951     \textcolor{keywordtype}{real}:: wrong, right
2952 
2953                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
2954     \textcolor{keywordtype}{logical}:: consist\_shape(2)
2955     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
2956     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
2957     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
2958     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
2959                     
2960 
2961                     
2962 
2963   \textcolor{keywordflow}{continue}
2964     err\_flag = .false.
2965 
2966                     
2967     answer\_shape = shape(answer)
2968     check\_shape = shape(check)
2969 
2970     consist\_shape = answer\_shape == check\_shape
2971 
2972     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
2973       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
2974       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
2975       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
2976       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
2977       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
2978 
2979       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
2980 \textcolor{keywordflow}{    end if}
2981 
2982 
2983     \textcolor{keyword}{allocate}( mask\_array( &
2984                             &    answer\_shape(1), &
2985                       
2986       &    answer\_shape(2)  )  &
2987       &  )
2988 
2989     \textcolor{keyword}{allocate}( judge( &
2990                             &    answer\_shape(1), &
2991                       
2992       &    answer\_shape(2)  )  &
2993       &  )
2994 
2995     \textcolor{keyword}{allocate}( judge\_rev( &
2996                             &    answer\_shape(1), &
2997                       
2998       &    answer\_shape(2)  )  &
2999       &  )
3000 
3001                       
3002     judge = answer == check
3003 
3004                       
3005 
3006     judge\_rev = .not. judge
3007     err\_flag = any(judge\_rev)
3008     mask\_array = 1
3009     pos = maxloc(mask\_array, judge\_rev)
3010 
3011     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3012 
3013       wrong = check( &
3014                               &    pos(1), &
3015                       
3016         &    pos(2)  )
3017 
3018       right = answer( &
3019                               &    pos(1), &
3020                       
3021         &    pos(2)  )
3022 
3023                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3024                       
3025       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
3026                       
3027 
3028       pos\_str = \textcolor{stringliteral}{'('} // &
3029                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
3030                       
3031         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
3032 
3033 \textcolor{keywordflow}{    end if}
3034     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3035 
3036                     
3037 
3038 
3039     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3040       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3041       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3042       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3043       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3044       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3045 
3046       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3047     \textcolor{keywordflow}{else}
3048       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3049 \textcolor{keywordflow}{    end if}
3050 
3051 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a583c8186bd8ed299aefa62ae5d8a5050}\label{namespacedc__test_a583c8186bd8ed299aefa62ae5d8a5050}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal2digits@{dctestassertequalreal2digits}}
\index{dctestassertequalreal2digits@{dctestassertequalreal2digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal2digits()}{dctestassertequalreal2digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal2digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 5713 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
5713     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
5714     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
5715     \textcolor{keywordtype}{implicit none}
5716     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5717     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
5718     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
5719     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
5720     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
5721     \textcolor{keywordtype}{logical}:: err\_flag
5722     \textcolor{keywordtype}{character(STRING)}:: pos\_str
5723     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
5724     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
5725     \textcolor{keywordtype}{integer}:: pos\_str\_len
5726     \textcolor{keywordtype}{real}:: right\_tmp
5727 
5728                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
5729     \textcolor{keywordtype}{logical}:: consist\_shape(2)
5730     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
5731     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
5732     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
5733     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
5734     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
5735     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
5736     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
5737     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:)
5738     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:)
5739                     
5740   \textcolor{keywordflow}{continue}
5741     err\_flag = .false.
5742 
5743     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
5744       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
5745       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
5746       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5747 \textcolor{keywordflow}{    end if}
5748                     
5749     answer\_shape = shape(answer)
5750     check\_shape = shape(check)
5751 
5752     consist\_shape = answer\_shape == check\_shape
5753 
5754     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
5755       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
5756       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
5757       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
5758       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
5759       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
5760 
5761       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5762 \textcolor{keywordflow}{    end if}
5763 
5764 
5765     \textcolor{keyword}{allocate}( mask\_array( &
5766                             &    answer\_shape(1), &
5767                       
5768       &    answer\_shape(2)  )  &
5769       &  )
5770 
5771     \textcolor{keyword}{allocate}( judge( &
5772                             &    answer\_shape(1), &
5773                       
5774       &    answer\_shape(2)  )  &
5775       &  )
5776 
5777     \textcolor{keyword}{allocate}( judge\_rev( &
5778                             &    answer\_shape(1), &
5779                       
5780       &    answer\_shape(2)  )  &
5781       &  )
5782 
5783     \textcolor{keyword}{allocate}( answer\_negative( &
5784                             &    answer\_shape(1), &
5785                       
5786       &    answer\_shape(2)  )  &
5787       &  )
5788 
5789     \textcolor{keyword}{allocate}( check\_negative( &
5790                             &    answer\_shape(1), &
5791                       
5792       &    answer\_shape(2)  )  &
5793       &  )
5794 
5795     \textcolor{keyword}{allocate}( both\_negative( &
5796                             &    answer\_shape(1), &
5797                       
5798       &    answer\_shape(2)  )  &
5799       &  )
5800 
5801     \textcolor{keyword}{allocate}( answer\_max( &
5802                             &    answer\_shape(1), &
5803                       
5804       &    answer\_shape(2)  )  &
5805       &  )
5806 
5807     \textcolor{keyword}{allocate}( answer\_min( &
5808                             &    answer\_shape(1), &
5809                       
5810       &    answer\_shape(2)  )  &
5811       &  )
5812 
5813     answer\_negative = answer < 0.0
5814     check\_negative = check < 0.0
5815     both\_negative = answer\_negative .and. check\_negative
5816 
5817     \textcolor{keywordflow}{where} (both\_negative)
5818       answer\_max = &
5819         &   answer &
5820         &   * (   1.0 &
5821         &       - 0.1 ** significant\_digits ) &
5822         & + 0.1 ** (- ignore\_digits)
5823 
5824       answer\_min = &
5825         &   answer &
5826         &   * (   1.0 &
5827         &       + 0.1 ** significant\_digits ) &
5828         & - 0.1 ** (- ignore\_digits)
5829     \textcolor{keywordflow}{elsewhere}
5830       answer\_max = &
5831         &   answer &
5832         &   * (   1.0 &
5833         &       + 0.1 ** significant\_digits ) &
5834         & + 0.1 ** (- ignore\_digits)
5835 
5836       answer\_min = &
5837         &   answer &
5838         &   * (   1.0 &
5839         &       - 0.1 ** significant\_digits ) &
5840         & - 0.1 ** (- ignore\_digits)
5841 \textcolor{keywordflow}{    end where}
5842 
5843     judge = answer\_max > check .and. check > answer\_min
5844     judge\_rev = .not. judge
5845     err\_flag = any(judge\_rev)
5846     mask\_array = 1
5847     pos = maxloc(mask\_array, judge\_rev)
5848 
5849     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
5850 
5851       wrong = check( &
5852                               &    pos(1), &
5853                       
5854         &    pos(2)  )
5855 
5856       right\_max = answer\_max( &
5857                               &    pos(1), &
5858                       
5859         &    pos(2)  )
5860 
5861       right\_min = answer\_min( &
5862                               &    pos(1), &
5863                       
5864         &    pos(2)  )
5865 
5866       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
5867         right\_tmp = right\_max
5868         right\_max = right\_min
5869         right\_min = right\_tmp
5870 \textcolor{keywordflow}{      end if}
5871 
5872                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
5873                       
5874       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
5875                       
5876 
5877       pos\_str = \textcolor{stringliteral}{'('} // &
5878                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
5879                       
5880         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
5881 
5882 \textcolor{keywordflow}{    end if}
5883     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
5884     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
5885     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
5886 
5887                     
5888 
5889     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
5890       pos\_str\_space = \textcolor{stringliteral}{''}
5891       pos\_str\_len = len\_trim(pos\_str)
5892 
5893       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
5894       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
5895       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
5896       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
5897       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
5898         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
5899       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
5900 
5901       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5902     \textcolor{keywordflow}{else}
5903       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
5904 \textcolor{keywordflow}{    end if}
5905 
5906 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_adb3f78450733ce27579f4704b5b3da04}\label{namespacedc__test_adb3f78450733ce27579f4704b5b3da04}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal3@{dctestassertequalreal3}}
\index{dctestassertequalreal3@{dctestassertequalreal3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal3()}{dctestassertequalreal3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3056 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3056     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3057     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3058     \textcolor{keywordtype}{implicit none}
3059     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3060     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
3061     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
3062     \textcolor{keywordtype}{logical}:: err\_flag
3063     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3064     \textcolor{keywordtype}{real}:: wrong, right
3065 
3066                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
3067     \textcolor{keywordtype}{logical}:: consist\_shape(3)
3068     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
3069     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
3070     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
3071     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
3072                     
3073 
3074                     
3075 
3076   \textcolor{keywordflow}{continue}
3077     err\_flag = .false.
3078 
3079                     
3080     answer\_shape = shape(answer)
3081     check\_shape = shape(check)
3082 
3083     consist\_shape = answer\_shape == check\_shape
3084 
3085     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
3086       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3087       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3088       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
3089       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
3090       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
3091 
3092       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3093 \textcolor{keywordflow}{    end if}
3094 
3095 
3096     \textcolor{keyword}{allocate}( mask\_array( &
3097                             &    answer\_shape(1), &
3098                       
3099       &    answer\_shape(2), &
3100                       
3101       &    answer\_shape(3)  )  &
3102       &  )
3103 
3104     \textcolor{keyword}{allocate}( judge( &
3105                             &    answer\_shape(1), &
3106                       
3107       &    answer\_shape(2), &
3108                       
3109       &    answer\_shape(3)  )  &
3110       &  )
3111 
3112     \textcolor{keyword}{allocate}( judge\_rev( &
3113                             &    answer\_shape(1), &
3114                       
3115       &    answer\_shape(2), &
3116                       
3117       &    answer\_shape(3)  )  &
3118       &  )
3119 
3120                       
3121     judge = answer == check
3122 
3123                       
3124 
3125     judge\_rev = .not. judge
3126     err\_flag = any(judge\_rev)
3127     mask\_array = 1
3128     pos = maxloc(mask\_array, judge\_rev)
3129 
3130     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3131 
3132       wrong = check( &
3133                               &    pos(1), &
3134                       
3135         &    pos(2), &
3136                       
3137         &    pos(3)  )
3138 
3139       right = answer( &
3140                               &    pos(1), &
3141                       
3142         &    pos(2), &
3143                       
3144         &    pos(3)  )
3145 
3146                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3147                       
3148       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
3149                       
3150       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
3151                       
3152 
3153       pos\_str = \textcolor{stringliteral}{'('} // &
3154                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
3155                       
3156         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
3157                       
3158         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
3159 
3160 \textcolor{keywordflow}{    end if}
3161     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3162 
3163                     
3164 
3165 
3166     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3167       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3168       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3169       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3170       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3171       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3172 
3173       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3174     \textcolor{keywordflow}{else}
3175       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3176 \textcolor{keywordflow}{    end if}
3177 
3178 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a01b383a8f977885ad9e34b71ee51c5e1}\label{namespacedc__test_a01b383a8f977885ad9e34b71ee51c5e1}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal3digits@{dctestassertequalreal3digits}}
\index{dctestassertequalreal3digits@{dctestassertequalreal3digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal3digits()}{dctestassertequalreal3digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal3digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 5912 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
5912     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
5913     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
5914     \textcolor{keywordtype}{implicit none}
5915     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
5916     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
5917     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
5918     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
5919     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
5920     \textcolor{keywordtype}{logical}:: err\_flag
5921     \textcolor{keywordtype}{character(STRING)}:: pos\_str
5922     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
5923     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
5924     \textcolor{keywordtype}{integer}:: pos\_str\_len
5925     \textcolor{keywordtype}{real}:: right\_tmp
5926 
5927                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
5928     \textcolor{keywordtype}{logical}:: consist\_shape(3)
5929     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
5930     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
5931     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
5932     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
5933     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
5934     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
5935     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
5936     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:)
5937     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:)
5938                     
5939   \textcolor{keywordflow}{continue}
5940     err\_flag = .false.
5941 
5942     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
5943       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
5944       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
5945       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5946 \textcolor{keywordflow}{    end if}
5947                     
5948     answer\_shape = shape(answer)
5949     check\_shape = shape(check)
5950 
5951     consist\_shape = answer\_shape == check\_shape
5952 
5953     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
5954       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
5955       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
5956       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
5957       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
5958       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
5959 
5960       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
5961 \textcolor{keywordflow}{    end if}
5962 
5963 
5964     \textcolor{keyword}{allocate}( mask\_array( &
5965                             &    answer\_shape(1), &
5966                       
5967       &    answer\_shape(2), &
5968                       
5969       &    answer\_shape(3)  )  &
5970       &  )
5971 
5972     \textcolor{keyword}{allocate}( judge( &
5973                             &    answer\_shape(1), &
5974                       
5975       &    answer\_shape(2), &
5976                       
5977       &    answer\_shape(3)  )  &
5978       &  )
5979 
5980     \textcolor{keyword}{allocate}( judge\_rev( &
5981                             &    answer\_shape(1), &
5982                       
5983       &    answer\_shape(2), &
5984                       
5985       &    answer\_shape(3)  )  &
5986       &  )
5987 
5988     \textcolor{keyword}{allocate}( answer\_negative( &
5989                             &    answer\_shape(1), &
5990                       
5991       &    answer\_shape(2), &
5992                       
5993       &    answer\_shape(3)  )  &
5994       &  )
5995 
5996     \textcolor{keyword}{allocate}( check\_negative( &
5997                             &    answer\_shape(1), &
5998                       
5999       &    answer\_shape(2), &
6000                       
6001       &    answer\_shape(3)  )  &
6002       &  )
6003 
6004     \textcolor{keyword}{allocate}( both\_negative( &
6005                             &    answer\_shape(1), &
6006                       
6007       &    answer\_shape(2), &
6008                       
6009       &    answer\_shape(3)  )  &
6010       &  )
6011 
6012     \textcolor{keyword}{allocate}( answer\_max( &
6013                             &    answer\_shape(1), &
6014                       
6015       &    answer\_shape(2), &
6016                       
6017       &    answer\_shape(3)  )  &
6018       &  )
6019 
6020     \textcolor{keyword}{allocate}( answer\_min( &
6021                             &    answer\_shape(1), &
6022                       
6023       &    answer\_shape(2), &
6024                       
6025       &    answer\_shape(3)  )  &
6026       &  )
6027 
6028     answer\_negative = answer < 0.0
6029     check\_negative = check < 0.0
6030     both\_negative = answer\_negative .and. check\_negative
6031 
6032     \textcolor{keywordflow}{where} (both\_negative)
6033       answer\_max = &
6034         &   answer &
6035         &   * (   1.0 &
6036         &       - 0.1 ** significant\_digits ) &
6037         & + 0.1 ** (- ignore\_digits)
6038 
6039       answer\_min = &
6040         &   answer &
6041         &   * (   1.0 &
6042         &       + 0.1 ** significant\_digits ) &
6043         & - 0.1 ** (- ignore\_digits)
6044     \textcolor{keywordflow}{elsewhere}
6045       answer\_max = &
6046         &   answer &
6047         &   * (   1.0 &
6048         &       + 0.1 ** significant\_digits ) &
6049         & + 0.1 ** (- ignore\_digits)
6050 
6051       answer\_min = &
6052         &   answer &
6053         &   * (   1.0 &
6054         &       - 0.1 ** significant\_digits ) &
6055         & - 0.1 ** (- ignore\_digits)
6056 \textcolor{keywordflow}{    end where}
6057 
6058     judge = answer\_max > check .and. check > answer\_min
6059     judge\_rev = .not. judge
6060     err\_flag = any(judge\_rev)
6061     mask\_array = 1
6062     pos = maxloc(mask\_array, judge\_rev)
6063 
6064     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6065 
6066       wrong = check( &
6067                               &    pos(1), &
6068                       
6069         &    pos(2), &
6070                       
6071         &    pos(3)  )
6072 
6073       right\_max = answer\_max( &
6074                               &    pos(1), &
6075                       
6076         &    pos(2), &
6077                       
6078         &    pos(3)  )
6079 
6080       right\_min = answer\_min( &
6081                               &    pos(1), &
6082                       
6083         &    pos(2), &
6084                       
6085         &    pos(3)  )
6086 
6087       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
6088         right\_tmp = right\_max
6089         right\_max = right\_min
6090         right\_min = right\_tmp
6091 \textcolor{keywordflow}{      end if}
6092 
6093                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
6094                       
6095       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
6096                       
6097       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
6098                       
6099 
6100       pos\_str = \textcolor{stringliteral}{'('} // &
6101                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
6102                       
6103         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
6104                       
6105         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
6106 
6107 \textcolor{keywordflow}{    end if}
6108     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
6109     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
6110     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
6111 
6112                     
6113 
6114     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6115       pos\_str\_space = \textcolor{stringliteral}{''}
6116       pos\_str\_len = len\_trim(pos\_str)
6117 
6118       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6119       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6120       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
6121       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
6122       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
6123         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
6124       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
6125 
6126       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6127     \textcolor{keywordflow}{else}
6128       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
6129 \textcolor{keywordflow}{    end if}
6130 
6131 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a24d343162a875787b9073ba74e6f788b}\label{namespacedc__test_a24d343162a875787b9073ba74e6f788b}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal4@{dctestassertequalreal4}}
\index{dctestassertequalreal4@{dctestassertequalreal4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal4()}{dctestassertequalreal4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3183 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3183     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3184     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3185     \textcolor{keywordtype}{implicit none}
3186     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3187     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
3188     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
3189     \textcolor{keywordtype}{logical}:: err\_flag
3190     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3191     \textcolor{keywordtype}{real}:: wrong, right
3192 
3193                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
3194     \textcolor{keywordtype}{logical}:: consist\_shape(4)
3195     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
3196     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
3197     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
3198     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
3199                     
3200 
3201                     
3202 
3203   \textcolor{keywordflow}{continue}
3204     err\_flag = .false.
3205 
3206                     
3207     answer\_shape = shape(answer)
3208     check\_shape = shape(check)
3209 
3210     consist\_shape = answer\_shape == check\_shape
3211 
3212     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
3213       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3214       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3215       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
3216       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
3217       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
3218 
3219       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3220 \textcolor{keywordflow}{    end if}
3221 
3222 
3223     \textcolor{keyword}{allocate}( mask\_array( &
3224                             &    answer\_shape(1), &
3225                       
3226       &    answer\_shape(2), &
3227                       
3228       &    answer\_shape(3), &
3229                       
3230       &    answer\_shape(4)  )  &
3231       &  )
3232 
3233     \textcolor{keyword}{allocate}( judge( &
3234                             &    answer\_shape(1), &
3235                       
3236       &    answer\_shape(2), &
3237                       
3238       &    answer\_shape(3), &
3239                       
3240       &    answer\_shape(4)  )  &
3241       &  )
3242 
3243     \textcolor{keyword}{allocate}( judge\_rev( &
3244                             &    answer\_shape(1), &
3245                       
3246       &    answer\_shape(2), &
3247                       
3248       &    answer\_shape(3), &
3249                       
3250       &    answer\_shape(4)  )  &
3251       &  )
3252 
3253                       
3254     judge = answer == check
3255 
3256                       
3257 
3258     judge\_rev = .not. judge
3259     err\_flag = any(judge\_rev)
3260     mask\_array = 1
3261     pos = maxloc(mask\_array, judge\_rev)
3262 
3263     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3264 
3265       wrong = check( &
3266                               &    pos(1), &
3267                       
3268         &    pos(2), &
3269                       
3270         &    pos(3), &
3271                       
3272         &    pos(4)  )
3273 
3274       right = answer( &
3275                               &    pos(1), &
3276                       
3277         &    pos(2), &
3278                       
3279         &    pos(3), &
3280                       
3281         &    pos(4)  )
3282 
3283                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3284                       
3285       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
3286                       
3287       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
3288                       
3289       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
3290                       
3291 
3292       pos\_str = \textcolor{stringliteral}{'('} // &
3293                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
3294                       
3295         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
3296                       
3297         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
3298                       
3299         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
3300 
3301 \textcolor{keywordflow}{    end if}
3302     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3303 
3304                     
3305 
3306 
3307     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3308       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3309       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3310       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3311       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3312       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3313 
3314       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3315     \textcolor{keywordflow}{else}
3316       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3317 \textcolor{keywordflow}{    end if}
3318 
3319 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aed734b8ebca9216b8b8480380304072b}\label{namespacedc__test_aed734b8ebca9216b8b8480380304072b}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal4digits@{dctestassertequalreal4digits}}
\index{dctestassertequalreal4digits@{dctestassertequalreal4digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal4digits()}{dctestassertequalreal4digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal4digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 6137 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
6137     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
6138     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
6139     \textcolor{keywordtype}{implicit none}
6140     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
6141     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
6142     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
6143     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
6144     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
6145     \textcolor{keywordtype}{logical}:: err\_flag
6146     \textcolor{keywordtype}{character(STRING)}:: pos\_str
6147     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
6148     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
6149     \textcolor{keywordtype}{integer}:: pos\_str\_len
6150     \textcolor{keywordtype}{real}:: right\_tmp
6151 
6152                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
6153     \textcolor{keywordtype}{logical}:: consist\_shape(4)
6154     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
6155     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
6156     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
6157     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
6158     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
6159     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
6160     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
6161     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:)
6162     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:)
6163                     
6164   \textcolor{keywordflow}{continue}
6165     err\_flag = .false.
6166 
6167     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
6168       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
6169       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
6170       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6171 \textcolor{keywordflow}{    end if}
6172                     
6173     answer\_shape = shape(answer)
6174     check\_shape = shape(check)
6175 
6176     consist\_shape = answer\_shape == check\_shape
6177 
6178     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
6179       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6180       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6181       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
6182       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
6183       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
6184 
6185       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6186 \textcolor{keywordflow}{    end if}
6187 
6188 
6189     \textcolor{keyword}{allocate}( mask\_array( &
6190                             &    answer\_shape(1), &
6191                       
6192       &    answer\_shape(2), &
6193                       
6194       &    answer\_shape(3), &
6195                       
6196       &    answer\_shape(4)  )  &
6197       &  )
6198 
6199     \textcolor{keyword}{allocate}( judge( &
6200                             &    answer\_shape(1), &
6201                       
6202       &    answer\_shape(2), &
6203                       
6204       &    answer\_shape(3), &
6205                       
6206       &    answer\_shape(4)  )  &
6207       &  )
6208 
6209     \textcolor{keyword}{allocate}( judge\_rev( &
6210                             &    answer\_shape(1), &
6211                       
6212       &    answer\_shape(2), &
6213                       
6214       &    answer\_shape(3), &
6215                       
6216       &    answer\_shape(4)  )  &
6217       &  )
6218 
6219     \textcolor{keyword}{allocate}( answer\_negative( &
6220                             &    answer\_shape(1), &
6221                       
6222       &    answer\_shape(2), &
6223                       
6224       &    answer\_shape(3), &
6225                       
6226       &    answer\_shape(4)  )  &
6227       &  )
6228 
6229     \textcolor{keyword}{allocate}( check\_negative( &
6230                             &    answer\_shape(1), &
6231                       
6232       &    answer\_shape(2), &
6233                       
6234       &    answer\_shape(3), &
6235                       
6236       &    answer\_shape(4)  )  &
6237       &  )
6238 
6239     \textcolor{keyword}{allocate}( both\_negative( &
6240                             &    answer\_shape(1), &
6241                       
6242       &    answer\_shape(2), &
6243                       
6244       &    answer\_shape(3), &
6245                       
6246       &    answer\_shape(4)  )  &
6247       &  )
6248 
6249     \textcolor{keyword}{allocate}( answer\_max( &
6250                             &    answer\_shape(1), &
6251                       
6252       &    answer\_shape(2), &
6253                       
6254       &    answer\_shape(3), &
6255                       
6256       &    answer\_shape(4)  )  &
6257       &  )
6258 
6259     \textcolor{keyword}{allocate}( answer\_min( &
6260                             &    answer\_shape(1), &
6261                       
6262       &    answer\_shape(2), &
6263                       
6264       &    answer\_shape(3), &
6265                       
6266       &    answer\_shape(4)  )  &
6267       &  )
6268 
6269     answer\_negative = answer < 0.0
6270     check\_negative = check < 0.0
6271     both\_negative = answer\_negative .and. check\_negative
6272 
6273     \textcolor{keywordflow}{where} (both\_negative)
6274       answer\_max = &
6275         &   answer &
6276         &   * (   1.0 &
6277         &       - 0.1 ** significant\_digits ) &
6278         & + 0.1 ** (- ignore\_digits)
6279 
6280       answer\_min = &
6281         &   answer &
6282         &   * (   1.0 &
6283         &       + 0.1 ** significant\_digits ) &
6284         & - 0.1 ** (- ignore\_digits)
6285     \textcolor{keywordflow}{elsewhere}
6286       answer\_max = &
6287         &   answer &
6288         &   * (   1.0 &
6289         &       + 0.1 ** significant\_digits ) &
6290         & + 0.1 ** (- ignore\_digits)
6291 
6292       answer\_min = &
6293         &   answer &
6294         &   * (   1.0 &
6295         &       - 0.1 ** significant\_digits ) &
6296         & - 0.1 ** (- ignore\_digits)
6297 \textcolor{keywordflow}{    end where}
6298 
6299     judge = answer\_max > check .and. check > answer\_min
6300     judge\_rev = .not. judge
6301     err\_flag = any(judge\_rev)
6302     mask\_array = 1
6303     pos = maxloc(mask\_array, judge\_rev)
6304 
6305     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6306 
6307       wrong = check( &
6308                               &    pos(1), &
6309                       
6310         &    pos(2), &
6311                       
6312         &    pos(3), &
6313                       
6314         &    pos(4)  )
6315 
6316       right\_max = answer\_max( &
6317                               &    pos(1), &
6318                       
6319         &    pos(2), &
6320                       
6321         &    pos(3), &
6322                       
6323         &    pos(4)  )
6324 
6325       right\_min = answer\_min( &
6326                               &    pos(1), &
6327                       
6328         &    pos(2), &
6329                       
6330         &    pos(3), &
6331                       
6332         &    pos(4)  )
6333 
6334       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
6335         right\_tmp = right\_max
6336         right\_max = right\_min
6337         right\_min = right\_tmp
6338 \textcolor{keywordflow}{      end if}
6339 
6340                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
6341                       
6342       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
6343                       
6344       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
6345                       
6346       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
6347                       
6348 
6349       pos\_str = \textcolor{stringliteral}{'('} // &
6350                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
6351                       
6352         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
6353                       
6354         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
6355                       
6356         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
6357 
6358 \textcolor{keywordflow}{    end if}
6359     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
6360     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
6361     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
6362 
6363                     
6364 
6365     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6366       pos\_str\_space = \textcolor{stringliteral}{''}
6367       pos\_str\_len = len\_trim(pos\_str)
6368 
6369       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6370       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6371       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
6372       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
6373       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
6374         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
6375       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
6376 
6377       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6378     \textcolor{keywordflow}{else}
6379       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
6380 \textcolor{keywordflow}{    end if}
6381 
6382 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a45f8c11826b5db2ee31c26ad8110d8ce}\label{namespacedc__test_a45f8c11826b5db2ee31c26ad8110d8ce}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal5@{dctestassertequalreal5}}
\index{dctestassertequalreal5@{dctestassertequalreal5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal5()}{dctestassertequalreal5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3324 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3324     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3325     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3326     \textcolor{keywordtype}{implicit none}
3327     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3328     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
3329     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
3330     \textcolor{keywordtype}{logical}:: err\_flag
3331     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3332     \textcolor{keywordtype}{real}:: wrong, right
3333 
3334                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
3335     \textcolor{keywordtype}{logical}:: consist\_shape(5)
3336     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
3337     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
3338     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
3339     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
3340                     
3341 
3342                     
3343 
3344   \textcolor{keywordflow}{continue}
3345     err\_flag = .false.
3346 
3347                     
3348     answer\_shape = shape(answer)
3349     check\_shape = shape(check)
3350 
3351     consist\_shape = answer\_shape == check\_shape
3352 
3353     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
3354       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3355       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3356       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
3357       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
3358       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
3359 
3360       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3361 \textcolor{keywordflow}{    end if}
3362 
3363 
3364     \textcolor{keyword}{allocate}( mask\_array( &
3365                             &    answer\_shape(1), &
3366                       
3367       &    answer\_shape(2), &
3368                       
3369       &    answer\_shape(3), &
3370                       
3371       &    answer\_shape(4), &
3372                       
3373       &    answer\_shape(5)  )  &
3374       &  )
3375 
3376     \textcolor{keyword}{allocate}( judge( &
3377                             &    answer\_shape(1), &
3378                       
3379       &    answer\_shape(2), &
3380                       
3381       &    answer\_shape(3), &
3382                       
3383       &    answer\_shape(4), &
3384                       
3385       &    answer\_shape(5)  )  &
3386       &  )
3387 
3388     \textcolor{keyword}{allocate}( judge\_rev( &
3389                             &    answer\_shape(1), &
3390                       
3391       &    answer\_shape(2), &
3392                       
3393       &    answer\_shape(3), &
3394                       
3395       &    answer\_shape(4), &
3396                       
3397       &    answer\_shape(5)  )  &
3398       &  )
3399 
3400                       
3401     judge = answer == check
3402 
3403                       
3404 
3405     judge\_rev = .not. judge
3406     err\_flag = any(judge\_rev)
3407     mask\_array = 1
3408     pos = maxloc(mask\_array, judge\_rev)
3409 
3410     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3411 
3412       wrong = check( &
3413                               &    pos(1), &
3414                       
3415         &    pos(2), &
3416                       
3417         &    pos(3), &
3418                       
3419         &    pos(4), &
3420                       
3421         &    pos(5)  )
3422 
3423       right = answer( &
3424                               &    pos(1), &
3425                       
3426         &    pos(2), &
3427                       
3428         &    pos(3), &
3429                       
3430         &    pos(4), &
3431                       
3432         &    pos(5)  )
3433 
3434                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3435                       
3436       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
3437                       
3438       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
3439                       
3440       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
3441                       
3442       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
3443                       
3444 
3445       pos\_str = \textcolor{stringliteral}{'('} // &
3446                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
3447                       
3448         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
3449                       
3450         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
3451                       
3452         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
3453                       
3454         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
3455 
3456 \textcolor{keywordflow}{    end if}
3457     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3458 
3459                     
3460 
3461 
3462     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3463       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3464       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3465       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3466       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3467       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3468 
3469       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3470     \textcolor{keywordflow}{else}
3471       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3472 \textcolor{keywordflow}{    end if}
3473 
3474 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_acf159d39c75e081a58533c1c19125277}\label{namespacedc__test_acf159d39c75e081a58533c1c19125277}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal5digits@{dctestassertequalreal5digits}}
\index{dctestassertequalreal5digits@{dctestassertequalreal5digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal5digits()}{dctestassertequalreal5digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal5digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 6388 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
6388     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
6389     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
6390     \textcolor{keywordtype}{implicit none}
6391     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
6392     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
6393     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
6394     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
6395     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
6396     \textcolor{keywordtype}{logical}:: err\_flag
6397     \textcolor{keywordtype}{character(STRING)}:: pos\_str
6398     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
6399     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
6400     \textcolor{keywordtype}{integer}:: pos\_str\_len
6401     \textcolor{keywordtype}{real}:: right\_tmp
6402 
6403                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
6404     \textcolor{keywordtype}{logical}:: consist\_shape(5)
6405     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
6406     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
6407     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
6408     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
6409     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
6410     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
6411     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
6412     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:,:)
6413     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:,:)
6414                     
6415   \textcolor{keywordflow}{continue}
6416     err\_flag = .false.
6417 
6418     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
6419       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
6420       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
6421       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6422 \textcolor{keywordflow}{    end if}
6423                     
6424     answer\_shape = shape(answer)
6425     check\_shape = shape(check)
6426 
6427     consist\_shape = answer\_shape == check\_shape
6428 
6429     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
6430       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6431       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6432       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
6433       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
6434       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
6435 
6436       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6437 \textcolor{keywordflow}{    end if}
6438 
6439 
6440     \textcolor{keyword}{allocate}( mask\_array( &
6441                             &    answer\_shape(1), &
6442                       
6443       &    answer\_shape(2), &
6444                       
6445       &    answer\_shape(3), &
6446                       
6447       &    answer\_shape(4), &
6448                       
6449       &    answer\_shape(5)  )  &
6450       &  )
6451 
6452     \textcolor{keyword}{allocate}( judge( &
6453                             &    answer\_shape(1), &
6454                       
6455       &    answer\_shape(2), &
6456                       
6457       &    answer\_shape(3), &
6458                       
6459       &    answer\_shape(4), &
6460                       
6461       &    answer\_shape(5)  )  &
6462       &  )
6463 
6464     \textcolor{keyword}{allocate}( judge\_rev( &
6465                             &    answer\_shape(1), &
6466                       
6467       &    answer\_shape(2), &
6468                       
6469       &    answer\_shape(3), &
6470                       
6471       &    answer\_shape(4), &
6472                       
6473       &    answer\_shape(5)  )  &
6474       &  )
6475 
6476     \textcolor{keyword}{allocate}( answer\_negative( &
6477                             &    answer\_shape(1), &
6478                       
6479       &    answer\_shape(2), &
6480                       
6481       &    answer\_shape(3), &
6482                       
6483       &    answer\_shape(4), &
6484                       
6485       &    answer\_shape(5)  )  &
6486       &  )
6487 
6488     \textcolor{keyword}{allocate}( check\_negative( &
6489                             &    answer\_shape(1), &
6490                       
6491       &    answer\_shape(2), &
6492                       
6493       &    answer\_shape(3), &
6494                       
6495       &    answer\_shape(4), &
6496                       
6497       &    answer\_shape(5)  )  &
6498       &  )
6499 
6500     \textcolor{keyword}{allocate}( both\_negative( &
6501                             &    answer\_shape(1), &
6502                       
6503       &    answer\_shape(2), &
6504                       
6505       &    answer\_shape(3), &
6506                       
6507       &    answer\_shape(4), &
6508                       
6509       &    answer\_shape(5)  )  &
6510       &  )
6511 
6512     \textcolor{keyword}{allocate}( answer\_max( &
6513                             &    answer\_shape(1), &
6514                       
6515       &    answer\_shape(2), &
6516                       
6517       &    answer\_shape(3), &
6518                       
6519       &    answer\_shape(4), &
6520                       
6521       &    answer\_shape(5)  )  &
6522       &  )
6523 
6524     \textcolor{keyword}{allocate}( answer\_min( &
6525                             &    answer\_shape(1), &
6526                       
6527       &    answer\_shape(2), &
6528                       
6529       &    answer\_shape(3), &
6530                       
6531       &    answer\_shape(4), &
6532                       
6533       &    answer\_shape(5)  )  &
6534       &  )
6535 
6536     answer\_negative = answer < 0.0
6537     check\_negative = check < 0.0
6538     both\_negative = answer\_negative .and. check\_negative
6539 
6540     \textcolor{keywordflow}{where} (both\_negative)
6541       answer\_max = &
6542         &   answer &
6543         &   * (   1.0 &
6544         &       - 0.1 ** significant\_digits ) &
6545         & + 0.1 ** (- ignore\_digits)
6546 
6547       answer\_min = &
6548         &   answer &
6549         &   * (   1.0 &
6550         &       + 0.1 ** significant\_digits ) &
6551         & - 0.1 ** (- ignore\_digits)
6552     \textcolor{keywordflow}{elsewhere}
6553       answer\_max = &
6554         &   answer &
6555         &   * (   1.0 &
6556         &       + 0.1 ** significant\_digits ) &
6557         & + 0.1 ** (- ignore\_digits)
6558 
6559       answer\_min = &
6560         &   answer &
6561         &   * (   1.0 &
6562         &       - 0.1 ** significant\_digits ) &
6563         & - 0.1 ** (- ignore\_digits)
6564 \textcolor{keywordflow}{    end where}
6565 
6566     judge = answer\_max > check .and. check > answer\_min
6567     judge\_rev = .not. judge
6568     err\_flag = any(judge\_rev)
6569     mask\_array = 1
6570     pos = maxloc(mask\_array, judge\_rev)
6571 
6572     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6573 
6574       wrong = check( &
6575                               &    pos(1), &
6576                       
6577         &    pos(2), &
6578                       
6579         &    pos(3), &
6580                       
6581         &    pos(4), &
6582                       
6583         &    pos(5)  )
6584 
6585       right\_max = answer\_max( &
6586                               &    pos(1), &
6587                       
6588         &    pos(2), &
6589                       
6590         &    pos(3), &
6591                       
6592         &    pos(4), &
6593                       
6594         &    pos(5)  )
6595 
6596       right\_min = answer\_min( &
6597                               &    pos(1), &
6598                       
6599         &    pos(2), &
6600                       
6601         &    pos(3), &
6602                       
6603         &    pos(4), &
6604                       
6605         &    pos(5)  )
6606 
6607       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
6608         right\_tmp = right\_max
6609         right\_max = right\_min
6610         right\_min = right\_tmp
6611 \textcolor{keywordflow}{      end if}
6612 
6613                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
6614                       
6615       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
6616                       
6617       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
6618                       
6619       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
6620                       
6621       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
6622                       
6623 
6624       pos\_str = \textcolor{stringliteral}{'('} // &
6625                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
6626                       
6627         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
6628                       
6629         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
6630                       
6631         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
6632                       
6633         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
6634 
6635 \textcolor{keywordflow}{    end if}
6636     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
6637     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
6638     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
6639 
6640                     
6641 
6642     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6643       pos\_str\_space = \textcolor{stringliteral}{''}
6644       pos\_str\_len = len\_trim(pos\_str)
6645 
6646       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6647       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6648       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
6649       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
6650       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
6651         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
6652       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
6653 
6654       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6655     \textcolor{keywordflow}{else}
6656       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
6657 \textcolor{keywordflow}{    end if}
6658 
6659 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a56c58886052cee279acb53729fb5b243}\label{namespacedc__test_a56c58886052cee279acb53729fb5b243}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal6@{dctestassertequalreal6}}
\index{dctestassertequalreal6@{dctestassertequalreal6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal6()}{dctestassertequalreal6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3479 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3479     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3480     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3481     \textcolor{keywordtype}{implicit none}
3482     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3483     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
3484     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
3485     \textcolor{keywordtype}{logical}:: err\_flag
3486     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3487     \textcolor{keywordtype}{real}:: wrong, right
3488 
3489                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
3490     \textcolor{keywordtype}{logical}:: consist\_shape(6)
3491     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
3492     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
3493     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
3494     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
3495                     
3496 
3497                     
3498 
3499   \textcolor{keywordflow}{continue}
3500     err\_flag = .false.
3501 
3502                     
3503     answer\_shape = shape(answer)
3504     check\_shape = shape(check)
3505 
3506     consist\_shape = answer\_shape == check\_shape
3507 
3508     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
3509       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3510       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3511       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
3512       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
3513       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
3514 
3515       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3516 \textcolor{keywordflow}{    end if}
3517 
3518 
3519     \textcolor{keyword}{allocate}( mask\_array( &
3520                             &    answer\_shape(1), &
3521                       
3522       &    answer\_shape(2), &
3523                       
3524       &    answer\_shape(3), &
3525                       
3526       &    answer\_shape(4), &
3527                       
3528       &    answer\_shape(5), &
3529                       
3530       &    answer\_shape(6)  )  &
3531       &  )
3532 
3533     \textcolor{keyword}{allocate}( judge( &
3534                             &    answer\_shape(1), &
3535                       
3536       &    answer\_shape(2), &
3537                       
3538       &    answer\_shape(3), &
3539                       
3540       &    answer\_shape(4), &
3541                       
3542       &    answer\_shape(5), &
3543                       
3544       &    answer\_shape(6)  )  &
3545       &  )
3546 
3547     \textcolor{keyword}{allocate}( judge\_rev( &
3548                             &    answer\_shape(1), &
3549                       
3550       &    answer\_shape(2), &
3551                       
3552       &    answer\_shape(3), &
3553                       
3554       &    answer\_shape(4), &
3555                       
3556       &    answer\_shape(5), &
3557                       
3558       &    answer\_shape(6)  )  &
3559       &  )
3560 
3561                       
3562     judge = answer == check
3563 
3564                       
3565 
3566     judge\_rev = .not. judge
3567     err\_flag = any(judge\_rev)
3568     mask\_array = 1
3569     pos = maxloc(mask\_array, judge\_rev)
3570 
3571     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3572 
3573       wrong = check( &
3574                               &    pos(1), &
3575                       
3576         &    pos(2), &
3577                       
3578         &    pos(3), &
3579                       
3580         &    pos(4), &
3581                       
3582         &    pos(5), &
3583                       
3584         &    pos(6)  )
3585 
3586       right = answer( &
3587                               &    pos(1), &
3588                       
3589         &    pos(2), &
3590                       
3591         &    pos(3), &
3592                       
3593         &    pos(4), &
3594                       
3595         &    pos(5), &
3596                       
3597         &    pos(6)  )
3598 
3599                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3600                       
3601       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
3602                       
3603       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
3604                       
3605       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
3606                       
3607       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
3608                       
3609       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
3610                       
3611 
3612       pos\_str = \textcolor{stringliteral}{'('} // &
3613                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
3614                       
3615         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
3616                       
3617         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
3618                       
3619         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
3620                       
3621         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
3622                       
3623         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
3624 
3625 \textcolor{keywordflow}{    end if}
3626     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3627 
3628                     
3629 
3630 
3631     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3632       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3633       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3634       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3635       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3636       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3637 
3638       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3639     \textcolor{keywordflow}{else}
3640       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3641 \textcolor{keywordflow}{    end if}
3642 
3643 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae4b2fc5ee4de62154c04d04994b62c9c}\label{namespacedc__test_ae4b2fc5ee4de62154c04d04994b62c9c}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal6digits@{dctestassertequalreal6digits}}
\index{dctestassertequalreal6digits@{dctestassertequalreal6digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal6digits()}{dctestassertequalreal6digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal6digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 6665 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
6665     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
6666     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
6667     \textcolor{keywordtype}{implicit none}
6668     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
6669     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
6670     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
6671     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
6672     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
6673     \textcolor{keywordtype}{logical}:: err\_flag
6674     \textcolor{keywordtype}{character(STRING)}:: pos\_str
6675     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
6676     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
6677     \textcolor{keywordtype}{integer}:: pos\_str\_len
6678     \textcolor{keywordtype}{real}:: right\_tmp
6679 
6680                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
6681     \textcolor{keywordtype}{logical}:: consist\_shape(6)
6682     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
6683     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
6684     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
6685     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
6686     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
6687     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
6688     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
6689     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:,:,:)
6690     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:,:,:)
6691                     
6692   \textcolor{keywordflow}{continue}
6693     err\_flag = .false.
6694 
6695     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
6696       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
6697       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
6698       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6699 \textcolor{keywordflow}{    end if}
6700                     
6701     answer\_shape = shape(answer)
6702     check\_shape = shape(check)
6703 
6704     consist\_shape = answer\_shape == check\_shape
6705 
6706     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
6707       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6708       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6709       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
6710       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
6711       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
6712 
6713       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6714 \textcolor{keywordflow}{    end if}
6715 
6716 
6717     \textcolor{keyword}{allocate}( mask\_array( &
6718                             &    answer\_shape(1), &
6719                       
6720       &    answer\_shape(2), &
6721                       
6722       &    answer\_shape(3), &
6723                       
6724       &    answer\_shape(4), &
6725                       
6726       &    answer\_shape(5), &
6727                       
6728       &    answer\_shape(6)  )  &
6729       &  )
6730 
6731     \textcolor{keyword}{allocate}( judge( &
6732                             &    answer\_shape(1), &
6733                       
6734       &    answer\_shape(2), &
6735                       
6736       &    answer\_shape(3), &
6737                       
6738       &    answer\_shape(4), &
6739                       
6740       &    answer\_shape(5), &
6741                       
6742       &    answer\_shape(6)  )  &
6743       &  )
6744 
6745     \textcolor{keyword}{allocate}( judge\_rev( &
6746                             &    answer\_shape(1), &
6747                       
6748       &    answer\_shape(2), &
6749                       
6750       &    answer\_shape(3), &
6751                       
6752       &    answer\_shape(4), &
6753                       
6754       &    answer\_shape(5), &
6755                       
6756       &    answer\_shape(6)  )  &
6757       &  )
6758 
6759     \textcolor{keyword}{allocate}( answer\_negative( &
6760                             &    answer\_shape(1), &
6761                       
6762       &    answer\_shape(2), &
6763                       
6764       &    answer\_shape(3), &
6765                       
6766       &    answer\_shape(4), &
6767                       
6768       &    answer\_shape(5), &
6769                       
6770       &    answer\_shape(6)  )  &
6771       &  )
6772 
6773     \textcolor{keyword}{allocate}( check\_negative( &
6774                             &    answer\_shape(1), &
6775                       
6776       &    answer\_shape(2), &
6777                       
6778       &    answer\_shape(3), &
6779                       
6780       &    answer\_shape(4), &
6781                       
6782       &    answer\_shape(5), &
6783                       
6784       &    answer\_shape(6)  )  &
6785       &  )
6786 
6787     \textcolor{keyword}{allocate}( both\_negative( &
6788                             &    answer\_shape(1), &
6789                       
6790       &    answer\_shape(2), &
6791                       
6792       &    answer\_shape(3), &
6793                       
6794       &    answer\_shape(4), &
6795                       
6796       &    answer\_shape(5), &
6797                       
6798       &    answer\_shape(6)  )  &
6799       &  )
6800 
6801     \textcolor{keyword}{allocate}( answer\_max( &
6802                             &    answer\_shape(1), &
6803                       
6804       &    answer\_shape(2), &
6805                       
6806       &    answer\_shape(3), &
6807                       
6808       &    answer\_shape(4), &
6809                       
6810       &    answer\_shape(5), &
6811                       
6812       &    answer\_shape(6)  )  &
6813       &  )
6814 
6815     \textcolor{keyword}{allocate}( answer\_min( &
6816                             &    answer\_shape(1), &
6817                       
6818       &    answer\_shape(2), &
6819                       
6820       &    answer\_shape(3), &
6821                       
6822       &    answer\_shape(4), &
6823                       
6824       &    answer\_shape(5), &
6825                       
6826       &    answer\_shape(6)  )  &
6827       &  )
6828 
6829     answer\_negative = answer < 0.0
6830     check\_negative = check < 0.0
6831     both\_negative = answer\_negative .and. check\_negative
6832 
6833     \textcolor{keywordflow}{where} (both\_negative)
6834       answer\_max = &
6835         &   answer &
6836         &   * (   1.0 &
6837         &       - 0.1 ** significant\_digits ) &
6838         & + 0.1 ** (- ignore\_digits)
6839 
6840       answer\_min = &
6841         &   answer &
6842         &   * (   1.0 &
6843         &       + 0.1 ** significant\_digits ) &
6844         & - 0.1 ** (- ignore\_digits)
6845     \textcolor{keywordflow}{elsewhere}
6846       answer\_max = &
6847         &   answer &
6848         &   * (   1.0 &
6849         &       + 0.1 ** significant\_digits ) &
6850         & + 0.1 ** (- ignore\_digits)
6851 
6852       answer\_min = &
6853         &   answer &
6854         &   * (   1.0 &
6855         &       - 0.1 ** significant\_digits ) &
6856         & - 0.1 ** (- ignore\_digits)
6857 \textcolor{keywordflow}{    end where}
6858 
6859     judge = answer\_max > check .and. check > answer\_min
6860     judge\_rev = .not. judge
6861     err\_flag = any(judge\_rev)
6862     mask\_array = 1
6863     pos = maxloc(mask\_array, judge\_rev)
6864 
6865     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6866 
6867       wrong = check( &
6868                               &    pos(1), &
6869                       
6870         &    pos(2), &
6871                       
6872         &    pos(3), &
6873                       
6874         &    pos(4), &
6875                       
6876         &    pos(5), &
6877                       
6878         &    pos(6)  )
6879 
6880       right\_max = answer\_max( &
6881                               &    pos(1), &
6882                       
6883         &    pos(2), &
6884                       
6885         &    pos(3), &
6886                       
6887         &    pos(4), &
6888                       
6889         &    pos(5), &
6890                       
6891         &    pos(6)  )
6892 
6893       right\_min = answer\_min( &
6894                               &    pos(1), &
6895                       
6896         &    pos(2), &
6897                       
6898         &    pos(3), &
6899                       
6900         &    pos(4), &
6901                       
6902         &    pos(5), &
6903                       
6904         &    pos(6)  )
6905 
6906       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
6907         right\_tmp = right\_max
6908         right\_max = right\_min
6909         right\_min = right\_tmp
6910 \textcolor{keywordflow}{      end if}
6911 
6912                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
6913                       
6914       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
6915                       
6916       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
6917                       
6918       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
6919                       
6920       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
6921                       
6922       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
6923                       
6924 
6925       pos\_str = \textcolor{stringliteral}{'('} // &
6926                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
6927                       
6928         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
6929                       
6930         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
6931                       
6932         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
6933                       
6934         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
6935                       
6936         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
6937 
6938 \textcolor{keywordflow}{    end if}
6939     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
6940     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
6941     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
6942 
6943                     
6944 
6945     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
6946       pos\_str\_space = \textcolor{stringliteral}{''}
6947       pos\_str\_len = len\_trim(pos\_str)
6948 
6949       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
6950       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
6951       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
6952       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
6953       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
6954         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
6955       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
6956 
6957       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
6958     \textcolor{keywordflow}{else}
6959       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
6960 \textcolor{keywordflow}{    end if}
6961 
6962 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a56548a7e0cd8b80ae6e34a2dc256459d}\label{namespacedc__test_a56548a7e0cd8b80ae6e34a2dc256459d}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal7@{dctestassertequalreal7}}
\index{dctestassertequalreal7@{dctestassertequalreal7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal7()}{dctestassertequalreal7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check }\end{DoxyParamCaption})}



Definition at line 3648 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
3648     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
3649     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
3650     \textcolor{keywordtype}{implicit none}
3651     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
3652     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
3653     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
3654     \textcolor{keywordtype}{logical}:: err\_flag
3655     \textcolor{keywordtype}{character(STRING)}:: pos\_str
3656     \textcolor{keywordtype}{real}:: wrong, right
3657 
3658                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
3659     \textcolor{keywordtype}{logical}:: consist\_shape(7)
3660     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
3661     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
3662     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
3663     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
3664                     
3665 
3666                     
3667 
3668   \textcolor{keywordflow}{continue}
3669     err\_flag = .false.
3670 
3671                     
3672     answer\_shape = shape(answer)
3673     check\_shape = shape(check)
3674 
3675     consist\_shape = answer\_shape == check\_shape
3676 
3677     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
3678       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3679       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3680       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
3681       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
3682       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
3683 
3684       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3685 \textcolor{keywordflow}{    end if}
3686 
3687 
3688     \textcolor{keyword}{allocate}( mask\_array( &
3689                             &    answer\_shape(1), &
3690                       
3691       &    answer\_shape(2), &
3692                       
3693       &    answer\_shape(3), &
3694                       
3695       &    answer\_shape(4), &
3696                       
3697       &    answer\_shape(5), &
3698                       
3699       &    answer\_shape(6), &
3700                       
3701       &    answer\_shape(7)  )  &
3702       &  )
3703 
3704     \textcolor{keyword}{allocate}( judge( &
3705                             &    answer\_shape(1), &
3706                       
3707       &    answer\_shape(2), &
3708                       
3709       &    answer\_shape(3), &
3710                       
3711       &    answer\_shape(4), &
3712                       
3713       &    answer\_shape(5), &
3714                       
3715       &    answer\_shape(6), &
3716                       
3717       &    answer\_shape(7)  )  &
3718       &  )
3719 
3720     \textcolor{keyword}{allocate}( judge\_rev( &
3721                             &    answer\_shape(1), &
3722                       
3723       &    answer\_shape(2), &
3724                       
3725       &    answer\_shape(3), &
3726                       
3727       &    answer\_shape(4), &
3728                       
3729       &    answer\_shape(5), &
3730                       
3731       &    answer\_shape(6), &
3732                       
3733       &    answer\_shape(7)  )  &
3734       &  )
3735 
3736                       
3737     judge = answer == check
3738 
3739                       
3740 
3741     judge\_rev = .not. judge
3742     err\_flag = any(judge\_rev)
3743     mask\_array = 1
3744     pos = maxloc(mask\_array, judge\_rev)
3745 
3746     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3747 
3748       wrong = check( &
3749                               &    pos(1), &
3750                       
3751         &    pos(2), &
3752                       
3753         &    pos(3), &
3754                       
3755         &    pos(4), &
3756                       
3757         &    pos(5), &
3758                       
3759         &    pos(6), &
3760                       
3761         &    pos(7)  )
3762 
3763       right = answer( &
3764                               &    pos(1), &
3765                       
3766         &    pos(2), &
3767                       
3768         &    pos(3), &
3769                       
3770         &    pos(4), &
3771                       
3772         &    pos(5), &
3773                       
3774         &    pos(6), &
3775                       
3776         &    pos(7)  )
3777 
3778                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
3779                       
3780       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
3781                       
3782       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
3783                       
3784       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
3785                       
3786       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
3787                       
3788       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
3789                       
3790       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
3791                       
3792 
3793       pos\_str = \textcolor{stringliteral}{'('} // &
3794                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
3795                       
3796         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
3797                       
3798         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
3799                       
3800         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
3801                       
3802         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
3803                       
3804         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
3805                       
3806         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
3807 
3808 \textcolor{keywordflow}{    end if}
3809     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
3810 
3811                     
3812 
3813 
3814     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
3815       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
3816       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
3817       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
3818       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
3819       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
3820 
3821       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
3822     \textcolor{keywordflow}{else}
3823       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
3824 \textcolor{keywordflow}{    end if}
3825 
3826 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ac7b251b46e1fea1babcbf237bd46ea75}\label{namespacedc__test_ac7b251b46e1fea1babcbf237bd46ea75}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertequalreal7digits@{dctestassertequalreal7digits}}
\index{dctestassertequalreal7digits@{dctestassertequalreal7digits}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertequalreal7digits()}{dctestassertequalreal7digits()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertequalreal7digits (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{integer, intent(in)}]{significant\+\_\+digits,  }\item[{integer, intent(in)}]{ignore\+\_\+digits }\end{DoxyParamCaption})}



Definition at line 6968 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
6968     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
6969     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
6970     \textcolor{keywordtype}{implicit none}
6971     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
6972     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
6973     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
6974     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: significant\_digits
6975     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: ignore\_digits
6976     \textcolor{keywordtype}{logical}:: err\_flag
6977     \textcolor{keywordtype}{character(STRING)}:: pos\_str
6978     \textcolor{keywordtype}{real}:: wrong, right\_max, right\_min
6979     \textcolor{keywordtype}{character(STRING)}:: pos\_str\_space
6980     \textcolor{keywordtype}{integer}:: pos\_str\_len
6981     \textcolor{keywordtype}{real}:: right\_tmp
6982 
6983                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
6984     \textcolor{keywordtype}{logical}:: consist\_shape(7)
6985     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
6986     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
6987     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
6988     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
6989     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
6990     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
6991     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
6992     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_max(:,:,:,:,:,:,:)
6993     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}:: answer\_min(:,:,:,:,:,:,:)
6994                     
6995   \textcolor{keywordflow}{continue}
6996     err\_flag = .false.
6997 
6998     \textcolor{keywordflow}{if} ( significant\_digits < 1 ) \textcolor{keywordflow}{then}
6999       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** '}
7000       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Specify a number more than 1 to "significant\_digits"'}
7001       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7002 \textcolor{keywordflow}{    end if}
7003                     
7004     answer\_shape = shape(answer)
7005     check\_shape = shape(check)
7006 
7007     consist\_shape = answer\_shape == check\_shape
7008 
7009     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
7010       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7011       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7012       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
7013       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
7014       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
7015 
7016       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7017 \textcolor{keywordflow}{    end if}
7018 
7019 
7020     \textcolor{keyword}{allocate}( mask\_array( &
7021                             &    answer\_shape(1), &
7022                       
7023       &    answer\_shape(2), &
7024                       
7025       &    answer\_shape(3), &
7026                       
7027       &    answer\_shape(4), &
7028                       
7029       &    answer\_shape(5), &
7030                       
7031       &    answer\_shape(6), &
7032                       
7033       &    answer\_shape(7)  )  &
7034       &  )
7035 
7036     \textcolor{keyword}{allocate}( judge( &
7037                             &    answer\_shape(1), &
7038                       
7039       &    answer\_shape(2), &
7040                       
7041       &    answer\_shape(3), &
7042                       
7043       &    answer\_shape(4), &
7044                       
7045       &    answer\_shape(5), &
7046                       
7047       &    answer\_shape(6), &
7048                       
7049       &    answer\_shape(7)  )  &
7050       &  )
7051 
7052     \textcolor{keyword}{allocate}( judge\_rev( &
7053                             &    answer\_shape(1), &
7054                       
7055       &    answer\_shape(2), &
7056                       
7057       &    answer\_shape(3), &
7058                       
7059       &    answer\_shape(4), &
7060                       
7061       &    answer\_shape(5), &
7062                       
7063       &    answer\_shape(6), &
7064                       
7065       &    answer\_shape(7)  )  &
7066       &  )
7067 
7068     \textcolor{keyword}{allocate}( answer\_negative( &
7069                             &    answer\_shape(1), &
7070                       
7071       &    answer\_shape(2), &
7072                       
7073       &    answer\_shape(3), &
7074                       
7075       &    answer\_shape(4), &
7076                       
7077       &    answer\_shape(5), &
7078                       
7079       &    answer\_shape(6), &
7080                       
7081       &    answer\_shape(7)  )  &
7082       &  )
7083 
7084     \textcolor{keyword}{allocate}( check\_negative( &
7085                             &    answer\_shape(1), &
7086                       
7087       &    answer\_shape(2), &
7088                       
7089       &    answer\_shape(3), &
7090                       
7091       &    answer\_shape(4), &
7092                       
7093       &    answer\_shape(5), &
7094                       
7095       &    answer\_shape(6), &
7096                       
7097       &    answer\_shape(7)  )  &
7098       &  )
7099 
7100     \textcolor{keyword}{allocate}( both\_negative( &
7101                             &    answer\_shape(1), &
7102                       
7103       &    answer\_shape(2), &
7104                       
7105       &    answer\_shape(3), &
7106                       
7107       &    answer\_shape(4), &
7108                       
7109       &    answer\_shape(5), &
7110                       
7111       &    answer\_shape(6), &
7112                       
7113       &    answer\_shape(7)  )  &
7114       &  )
7115 
7116     \textcolor{keyword}{allocate}( answer\_max( &
7117                             &    answer\_shape(1), &
7118                       
7119       &    answer\_shape(2), &
7120                       
7121       &    answer\_shape(3), &
7122                       
7123       &    answer\_shape(4), &
7124                       
7125       &    answer\_shape(5), &
7126                       
7127       &    answer\_shape(6), &
7128                       
7129       &    answer\_shape(7)  )  &
7130       &  )
7131 
7132     \textcolor{keyword}{allocate}( answer\_min( &
7133                             &    answer\_shape(1), &
7134                       
7135       &    answer\_shape(2), &
7136                       
7137       &    answer\_shape(3), &
7138                       
7139       &    answer\_shape(4), &
7140                       
7141       &    answer\_shape(5), &
7142                       
7143       &    answer\_shape(6), &
7144                       
7145       &    answer\_shape(7)  )  &
7146       &  )
7147 
7148     answer\_negative = answer < 0.0
7149     check\_negative = check < 0.0
7150     both\_negative = answer\_negative .and. check\_negative
7151 
7152     \textcolor{keywordflow}{where} (both\_negative)
7153       answer\_max = &
7154         &   answer &
7155         &   * (   1.0 &
7156         &       - 0.1 ** significant\_digits ) &
7157         & + 0.1 ** (- ignore\_digits)
7158 
7159       answer\_min = &
7160         &   answer &
7161         &   * (   1.0 &
7162         &       + 0.1 ** significant\_digits ) &
7163         & - 0.1 ** (- ignore\_digits)
7164     \textcolor{keywordflow}{elsewhere}
7165       answer\_max = &
7166         &   answer &
7167         &   * (   1.0 &
7168         &       + 0.1 ** significant\_digits ) &
7169         & + 0.1 ** (- ignore\_digits)
7170 
7171       answer\_min = &
7172         &   answer &
7173         &   * (   1.0 &
7174         &       - 0.1 ** significant\_digits ) &
7175         & - 0.1 ** (- ignore\_digits)
7176 \textcolor{keywordflow}{    end where}
7177 
7178     judge = answer\_max > check .and. check > answer\_min
7179     judge\_rev = .not. judge
7180     err\_flag = any(judge\_rev)
7181     mask\_array = 1
7182     pos = maxloc(mask\_array, judge\_rev)
7183 
7184     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7185 
7186       wrong = check( &
7187                               &    pos(1), &
7188                       
7189         &    pos(2), &
7190                       
7191         &    pos(3), &
7192                       
7193         &    pos(4), &
7194                       
7195         &    pos(5), &
7196                       
7197         &    pos(6), &
7198                       
7199         &    pos(7)  )
7200 
7201       right\_max = answer\_max( &
7202                               &    pos(1), &
7203                       
7204         &    pos(2), &
7205                       
7206         &    pos(3), &
7207                       
7208         &    pos(4), &
7209                       
7210         &    pos(5), &
7211                       
7212         &    pos(6), &
7213                       
7214         &    pos(7)  )
7215 
7216       right\_min = answer\_min( &
7217                               &    pos(1), &
7218                       
7219         &    pos(2), &
7220                       
7221         &    pos(3), &
7222                       
7223         &    pos(4), &
7224                       
7225         &    pos(5), &
7226                       
7227         &    pos(6), &
7228                       
7229         &    pos(7)  )
7230 
7231       \textcolor{keywordflow}{if} ( right\_max < right\_min ) \textcolor{keywordflow}{then}
7232         right\_tmp = right\_max
7233         right\_max = right\_min
7234         right\_min = right\_tmp
7235 \textcolor{keywordflow}{      end if}
7236 
7237                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
7238                       
7239       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
7240                       
7241       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
7242                       
7243       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
7244                       
7245       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
7246                       
7247       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
7248                       
7249       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
7250                       
7251 
7252       pos\_str = \textcolor{stringliteral}{'('} // &
7253                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
7254                       
7255         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
7256                       
7257         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
7258                       
7259         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
7260                       
7261         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
7262                       
7263         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
7264                       
7265         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
7266 
7267 \textcolor{keywordflow}{    end if}
7268     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
7269     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
7270     \textcolor{keyword}{deallocate}(answer\_max, answer\_min)
7271 
7272                     
7273 
7274     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
7275       pos\_str\_space = \textcolor{stringliteral}{''}
7276       pos\_str\_len = len\_trim(pos\_str)
7277 
7278       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
7279       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
7280       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  check'} // trim(pos\_str)  // \textcolor{stringliteral}{'  = '}, wrong
7281       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT EQUAL to'}
7282       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'        '} // pos\_str\_space(1:pos\_str\_len) &
7283         &                                     // \textcolor{stringliteral}{'   '}, right\_min, \textcolor{stringliteral}{' < '}
7284       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  answer'} // trim(pos\_str)  // \textcolor{stringliteral}{' < '}, right\_max
7285 
7286       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
7287     \textcolor{keywordflow}{else}
7288       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertEQ] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
7289 \textcolor{keywordflow}{    end if}
7290 
7291 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a89b22ca9cfc7967df3808c2fec067606}\label{namespacedc__test_a89b22ca9cfc7967df3808c2fec067606}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble0@{dctestassertgreaterthandouble0}}
\index{dctestassertgreaterthandouble0@{dctestassertgreaterthandouble0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble0()}{dctestassertgreaterthandouble0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), intent(in)}]{answer,  }\item[{real(dp), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 12146 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
12146     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
12147     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
12148     \textcolor{keywordtype}{implicit none}
12149     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
12150     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer
12151     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check
12152     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
12153     \textcolor{keywordtype}{logical}:: err\_flag
12154     \textcolor{keywordtype}{logical}:: negative\_support\_on
12155     \textcolor{keywordtype}{character(STRING)}:: pos\_str
12156     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
12157     \textcolor{keywordtype}{real(DP)}:: wrong, right
12158 
12159                                         
12160 
12161   \textcolor{keywordflow}{continue}
12162     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
12163       negative\_support\_on = negative\_support
12164     \textcolor{keywordflow}{else}
12165       negative\_support\_on = .true.
12166 \textcolor{keywordflow}{    end if}
12167 
12168     err\_flag = .false.
12169 
12170                     
12171     err\_flag = .not. answer < check
12172     abs\_mes = \textcolor{stringliteral}{''}
12173 
12174     \textcolor{keywordflow}{if} ( answer < 0.0\_dp &
12175       &  .and. check < 0.0\_dp &
12176       &  .and. negative\_support\_on ) \textcolor{keywordflow}{then}
12177 
12178       err\_flag = .not. err\_flag
12179       abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
12180 \textcolor{keywordflow}{    end if}
12181 
12182     wrong = check
12183     right = answer
12184     pos\_str = \textcolor{stringliteral}{''}
12185 
12186                     
12187 
12188 
12189     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12190       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12191       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12192       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12193         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
12194       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
12195       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12196         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
12197 
12198       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12199     \textcolor{keywordflow}{else}
12200       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
12201 \textcolor{keywordflow}{    end if}
12202 
12203 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a96e139e5a0771adcdb417c709544778e}\label{namespacedc__test_a96e139e5a0771adcdb417c709544778e}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble1@{dctestassertgreaterthandouble1}}
\index{dctestassertgreaterthandouble1@{dctestassertgreaterthandouble1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble1()}{dctestassertgreaterthandouble1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 12209 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
12209     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
12210     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
12211     \textcolor{keywordtype}{implicit none}
12212     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
12213     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:)
12214     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:)
12215     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
12216     \textcolor{keywordtype}{logical}:: err\_flag
12217     \textcolor{keywordtype}{logical}:: negative\_support\_on
12218     \textcolor{keywordtype}{character(STRING)}:: pos\_str
12219     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
12220     \textcolor{keywordtype}{real(DP)}:: wrong, right
12221 
12222                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
12223     \textcolor{keywordtype}{logical}:: consist\_shape(1)
12224     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
12225     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
12226     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
12227     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
12228     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
12229     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
12230     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
12231                     
12232 
12233   \textcolor{keywordflow}{continue}
12234     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
12235       negative\_support\_on = negative\_support
12236     \textcolor{keywordflow}{else}
12237       negative\_support\_on = .true.
12238 \textcolor{keywordflow}{    end if}
12239 
12240     err\_flag = .false.
12241 
12242                     
12243     answer\_shape = shape(answer)
12244     check\_shape = shape(check)
12245 
12246     consist\_shape = answer\_shape == check\_shape
12247 
12248     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
12249       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12250       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12251       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
12252       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
12253       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
12254 
12255       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12256 \textcolor{keywordflow}{    end if}
12257 
12258 
12259     \textcolor{keyword}{allocate}( mask\_array( &
12260                       
12261       &    answer\_shape(1)  )  &
12262       &  )
12263 
12264     \textcolor{keyword}{allocate}( judge( &
12265                       
12266       &    answer\_shape(1)  )  &
12267       &  )
12268 
12269     \textcolor{keyword}{allocate}( judge\_rev( &
12270                       
12271       &    answer\_shape(1)  )  &
12272       &  )
12273 
12274     \textcolor{keyword}{allocate}( answer\_negative( &
12275                       
12276       &    answer\_shape(1)  )  &
12277       &  )
12278 
12279     \textcolor{keyword}{allocate}( check\_negative( &
12280                       
12281       &    answer\_shape(1)  )  &
12282       &  )
12283 
12284     \textcolor{keyword}{allocate}( both\_negative( &
12285                       
12286       &    answer\_shape(1)  )  &
12287       &  )
12288 
12289     answer\_negative = answer < 0.0\_dp
12290     check\_negative = check < 0.0\_dp
12291     both\_negative = answer\_negative .and. check\_negative
12292     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
12293 
12294     judge = answer < check
12295     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
12296 
12297     judge\_rev = .not. judge
12298     err\_flag = any(judge\_rev)
12299     mask\_array = 1
12300     pos = maxloc(mask\_array, judge\_rev)
12301 
12302     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12303 
12304       wrong = check( &
12305                       
12306         &    pos(1)  )
12307 
12308       right = answer( &
12309                       
12310         &    pos(1)  )
12311 
12312                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
12313                       
12314 
12315       pos\_str = \textcolor{stringliteral}{'('} // &
12316                       
12317         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
12318 
12319       \textcolor{keywordflow}{if} ( both\_negative( &
12320                       
12321         &    pos(1)  )  ) \textcolor{keywordflow}{then}
12322 
12323         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
12324       \textcolor{keywordflow}{else}
12325         abs\_mes = \textcolor{stringliteral}{''}
12326 
12327 \textcolor{keywordflow}{      end if}
12328 
12329 \textcolor{keywordflow}{    end if}
12330     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
12331     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
12332 
12333                     
12334 
12335 
12336     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12337       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12338       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12339       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12340         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
12341       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
12342       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12343         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
12344 
12345       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12346     \textcolor{keywordflow}{else}
12347       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
12348 \textcolor{keywordflow}{    end if}
12349 
12350 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a8bbe521ac866b02e5e7450eba4b50fa8}\label{namespacedc__test_a8bbe521ac866b02e5e7450eba4b50fa8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble2@{dctestassertgreaterthandouble2}}
\index{dctestassertgreaterthandouble2@{dctestassertgreaterthandouble2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble2()}{dctestassertgreaterthandouble2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 12356 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
12356     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
12357     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
12358     \textcolor{keywordtype}{implicit none}
12359     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
12360     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
12361     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
12362     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
12363     \textcolor{keywordtype}{logical}:: err\_flag
12364     \textcolor{keywordtype}{logical}:: negative\_support\_on
12365     \textcolor{keywordtype}{character(STRING)}:: pos\_str
12366     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
12367     \textcolor{keywordtype}{real(DP)}:: wrong, right
12368 
12369                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
12370     \textcolor{keywordtype}{logical}:: consist\_shape(2)
12371     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
12372     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
12373     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
12374     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
12375     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
12376     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
12377     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
12378                     
12379 
12380   \textcolor{keywordflow}{continue}
12381     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
12382       negative\_support\_on = negative\_support
12383     \textcolor{keywordflow}{else}
12384       negative\_support\_on = .true.
12385 \textcolor{keywordflow}{    end if}
12386 
12387     err\_flag = .false.
12388 
12389                     
12390     answer\_shape = shape(answer)
12391     check\_shape = shape(check)
12392 
12393     consist\_shape = answer\_shape == check\_shape
12394 
12395     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
12396       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12397       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12398       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
12399       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
12400       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
12401 
12402       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12403 \textcolor{keywordflow}{    end if}
12404 
12405 
12406     \textcolor{keyword}{allocate}( mask\_array( &
12407                             &    answer\_shape(1), &
12408                       
12409       &    answer\_shape(2)  )  &
12410       &  )
12411 
12412     \textcolor{keyword}{allocate}( judge( &
12413                             &    answer\_shape(1), &
12414                       
12415       &    answer\_shape(2)  )  &
12416       &  )
12417 
12418     \textcolor{keyword}{allocate}( judge\_rev( &
12419                             &    answer\_shape(1), &
12420                       
12421       &    answer\_shape(2)  )  &
12422       &  )
12423 
12424     \textcolor{keyword}{allocate}( answer\_negative( &
12425                             &    answer\_shape(1), &
12426                       
12427       &    answer\_shape(2)  )  &
12428       &  )
12429 
12430     \textcolor{keyword}{allocate}( check\_negative( &
12431                             &    answer\_shape(1), &
12432                       
12433       &    answer\_shape(2)  )  &
12434       &  )
12435 
12436     \textcolor{keyword}{allocate}( both\_negative( &
12437                             &    answer\_shape(1), &
12438                       
12439       &    answer\_shape(2)  )  &
12440       &  )
12441 
12442     answer\_negative = answer < 0.0\_dp
12443     check\_negative = check < 0.0\_dp
12444     both\_negative = answer\_negative .and. check\_negative
12445     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
12446 
12447     judge = answer < check
12448     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
12449 
12450     judge\_rev = .not. judge
12451     err\_flag = any(judge\_rev)
12452     mask\_array = 1
12453     pos = maxloc(mask\_array, judge\_rev)
12454 
12455     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12456 
12457       wrong = check( &
12458                               &    pos(1), &
12459                       
12460         &    pos(2)  )
12461 
12462       right = answer( &
12463                               &    pos(1), &
12464                       
12465         &    pos(2)  )
12466 
12467                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
12468                       
12469       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
12470                       
12471 
12472       pos\_str = \textcolor{stringliteral}{'('} // &
12473                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
12474                       
12475         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
12476 
12477       \textcolor{keywordflow}{if} ( both\_negative( &
12478                               &    pos(1), &
12479                       
12480         &    pos(2)  )  ) \textcolor{keywordflow}{then}
12481 
12482         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
12483       \textcolor{keywordflow}{else}
12484         abs\_mes = \textcolor{stringliteral}{''}
12485 
12486 \textcolor{keywordflow}{      end if}
12487 
12488 \textcolor{keywordflow}{    end if}
12489     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
12490     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
12491 
12492                     
12493 
12494 
12495     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12496       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12497       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12498       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12499         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
12500       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
12501       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12502         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
12503 
12504       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12505     \textcolor{keywordflow}{else}
12506       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
12507 \textcolor{keywordflow}{    end if}
12508 
12509 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a772764e22792b496edb060856aadf5b6}\label{namespacedc__test_a772764e22792b496edb060856aadf5b6}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble3@{dctestassertgreaterthandouble3}}
\index{dctestassertgreaterthandouble3@{dctestassertgreaterthandouble3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble3()}{dctestassertgreaterthandouble3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 12515 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
12515     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
12516     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
12517     \textcolor{keywordtype}{implicit none}
12518     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
12519     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
12520     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
12521     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
12522     \textcolor{keywordtype}{logical}:: err\_flag
12523     \textcolor{keywordtype}{logical}:: negative\_support\_on
12524     \textcolor{keywordtype}{character(STRING)}:: pos\_str
12525     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
12526     \textcolor{keywordtype}{real(DP)}:: wrong, right
12527 
12528                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
12529     \textcolor{keywordtype}{logical}:: consist\_shape(3)
12530     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
12531     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
12532     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
12533     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
12534     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
12535     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
12536     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
12537                     
12538 
12539   \textcolor{keywordflow}{continue}
12540     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
12541       negative\_support\_on = negative\_support
12542     \textcolor{keywordflow}{else}
12543       negative\_support\_on = .true.
12544 \textcolor{keywordflow}{    end if}
12545 
12546     err\_flag = .false.
12547 
12548                     
12549     answer\_shape = shape(answer)
12550     check\_shape = shape(check)
12551 
12552     consist\_shape = answer\_shape == check\_shape
12553 
12554     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
12555       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12556       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12557       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
12558       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
12559       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
12560 
12561       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12562 \textcolor{keywordflow}{    end if}
12563 
12564 
12565     \textcolor{keyword}{allocate}( mask\_array( &
12566                             &    answer\_shape(1), &
12567                       
12568       &    answer\_shape(2), &
12569                       
12570       &    answer\_shape(3)  )  &
12571       &  )
12572 
12573     \textcolor{keyword}{allocate}( judge( &
12574                             &    answer\_shape(1), &
12575                       
12576       &    answer\_shape(2), &
12577                       
12578       &    answer\_shape(3)  )  &
12579       &  )
12580 
12581     \textcolor{keyword}{allocate}( judge\_rev( &
12582                             &    answer\_shape(1), &
12583                       
12584       &    answer\_shape(2), &
12585                       
12586       &    answer\_shape(3)  )  &
12587       &  )
12588 
12589     \textcolor{keyword}{allocate}( answer\_negative( &
12590                             &    answer\_shape(1), &
12591                       
12592       &    answer\_shape(2), &
12593                       
12594       &    answer\_shape(3)  )  &
12595       &  )
12596 
12597     \textcolor{keyword}{allocate}( check\_negative( &
12598                             &    answer\_shape(1), &
12599                       
12600       &    answer\_shape(2), &
12601                       
12602       &    answer\_shape(3)  )  &
12603       &  )
12604 
12605     \textcolor{keyword}{allocate}( both\_negative( &
12606                             &    answer\_shape(1), &
12607                       
12608       &    answer\_shape(2), &
12609                       
12610       &    answer\_shape(3)  )  &
12611       &  )
12612 
12613     answer\_negative = answer < 0.0\_dp
12614     check\_negative = check < 0.0\_dp
12615     both\_negative = answer\_negative .and. check\_negative
12616     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
12617 
12618     judge = answer < check
12619     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
12620 
12621     judge\_rev = .not. judge
12622     err\_flag = any(judge\_rev)
12623     mask\_array = 1
12624     pos = maxloc(mask\_array, judge\_rev)
12625 
12626     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12627 
12628       wrong = check( &
12629                               &    pos(1), &
12630                       
12631         &    pos(2), &
12632                       
12633         &    pos(3)  )
12634 
12635       right = answer( &
12636                               &    pos(1), &
12637                       
12638         &    pos(2), &
12639                       
12640         &    pos(3)  )
12641 
12642                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
12643                       
12644       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
12645                       
12646       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
12647                       
12648 
12649       pos\_str = \textcolor{stringliteral}{'('} // &
12650                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
12651                       
12652         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
12653                       
12654         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
12655 
12656       \textcolor{keywordflow}{if} ( both\_negative( &
12657                               &    pos(1), &
12658                       
12659         &    pos(2), &
12660                       
12661         &    pos(3)  )  ) \textcolor{keywordflow}{then}
12662 
12663         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
12664       \textcolor{keywordflow}{else}
12665         abs\_mes = \textcolor{stringliteral}{''}
12666 
12667 \textcolor{keywordflow}{      end if}
12668 
12669 \textcolor{keywordflow}{    end if}
12670     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
12671     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
12672 
12673                     
12674 
12675 
12676     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12677       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12678       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12679       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12680         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
12681       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
12682       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12683         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
12684 
12685       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12686     \textcolor{keywordflow}{else}
12687       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
12688 \textcolor{keywordflow}{    end if}
12689 
12690 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a1a7b6b2c75945260429150e0acda4936}\label{namespacedc__test_a1a7b6b2c75945260429150e0acda4936}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble4@{dctestassertgreaterthandouble4}}
\index{dctestassertgreaterthandouble4@{dctestassertgreaterthandouble4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble4()}{dctestassertgreaterthandouble4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 12696 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
12696     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
12697     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
12698     \textcolor{keywordtype}{implicit none}
12699     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
12700     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
12701     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
12702     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
12703     \textcolor{keywordtype}{logical}:: err\_flag
12704     \textcolor{keywordtype}{logical}:: negative\_support\_on
12705     \textcolor{keywordtype}{character(STRING)}:: pos\_str
12706     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
12707     \textcolor{keywordtype}{real(DP)}:: wrong, right
12708 
12709                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
12710     \textcolor{keywordtype}{logical}:: consist\_shape(4)
12711     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
12712     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
12713     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
12714     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
12715     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
12716     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
12717     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
12718                     
12719 
12720   \textcolor{keywordflow}{continue}
12721     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
12722       negative\_support\_on = negative\_support
12723     \textcolor{keywordflow}{else}
12724       negative\_support\_on = .true.
12725 \textcolor{keywordflow}{    end if}
12726 
12727     err\_flag = .false.
12728 
12729                     
12730     answer\_shape = shape(answer)
12731     check\_shape = shape(check)
12732 
12733     consist\_shape = answer\_shape == check\_shape
12734 
12735     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
12736       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12737       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12738       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
12739       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
12740       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
12741 
12742       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12743 \textcolor{keywordflow}{    end if}
12744 
12745 
12746     \textcolor{keyword}{allocate}( mask\_array( &
12747                             &    answer\_shape(1), &
12748                       
12749       &    answer\_shape(2), &
12750                       
12751       &    answer\_shape(3), &
12752                       
12753       &    answer\_shape(4)  )  &
12754       &  )
12755 
12756     \textcolor{keyword}{allocate}( judge( &
12757                             &    answer\_shape(1), &
12758                       
12759       &    answer\_shape(2), &
12760                       
12761       &    answer\_shape(3), &
12762                       
12763       &    answer\_shape(4)  )  &
12764       &  )
12765 
12766     \textcolor{keyword}{allocate}( judge\_rev( &
12767                             &    answer\_shape(1), &
12768                       
12769       &    answer\_shape(2), &
12770                       
12771       &    answer\_shape(3), &
12772                       
12773       &    answer\_shape(4)  )  &
12774       &  )
12775 
12776     \textcolor{keyword}{allocate}( answer\_negative( &
12777                             &    answer\_shape(1), &
12778                       
12779       &    answer\_shape(2), &
12780                       
12781       &    answer\_shape(3), &
12782                       
12783       &    answer\_shape(4)  )  &
12784       &  )
12785 
12786     \textcolor{keyword}{allocate}( check\_negative( &
12787                             &    answer\_shape(1), &
12788                       
12789       &    answer\_shape(2), &
12790                       
12791       &    answer\_shape(3), &
12792                       
12793       &    answer\_shape(4)  )  &
12794       &  )
12795 
12796     \textcolor{keyword}{allocate}( both\_negative( &
12797                             &    answer\_shape(1), &
12798                       
12799       &    answer\_shape(2), &
12800                       
12801       &    answer\_shape(3), &
12802                       
12803       &    answer\_shape(4)  )  &
12804       &  )
12805 
12806     answer\_negative = answer < 0.0\_dp
12807     check\_negative = check < 0.0\_dp
12808     both\_negative = answer\_negative .and. check\_negative
12809     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
12810 
12811     judge = answer < check
12812     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
12813 
12814     judge\_rev = .not. judge
12815     err\_flag = any(judge\_rev)
12816     mask\_array = 1
12817     pos = maxloc(mask\_array, judge\_rev)
12818 
12819     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12820 
12821       wrong = check( &
12822                               &    pos(1), &
12823                       
12824         &    pos(2), &
12825                       
12826         &    pos(3), &
12827                       
12828         &    pos(4)  )
12829 
12830       right = answer( &
12831                               &    pos(1), &
12832                       
12833         &    pos(2), &
12834                       
12835         &    pos(3), &
12836                       
12837         &    pos(4)  )
12838 
12839                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
12840                       
12841       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
12842                       
12843       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
12844                       
12845       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
12846                       
12847 
12848       pos\_str = \textcolor{stringliteral}{'('} // &
12849                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
12850                       
12851         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
12852                       
12853         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
12854                       
12855         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
12856 
12857       \textcolor{keywordflow}{if} ( both\_negative( &
12858                               &    pos(1), &
12859                       
12860         &    pos(2), &
12861                       
12862         &    pos(3), &
12863                       
12864         &    pos(4)  )  ) \textcolor{keywordflow}{then}
12865 
12866         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
12867       \textcolor{keywordflow}{else}
12868         abs\_mes = \textcolor{stringliteral}{''}
12869 
12870 \textcolor{keywordflow}{      end if}
12871 
12872 \textcolor{keywordflow}{    end if}
12873     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
12874     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
12875 
12876                     
12877 
12878 
12879     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12880       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12881       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12882       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12883         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
12884       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
12885       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12886         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
12887 
12888       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12889     \textcolor{keywordflow}{else}
12890       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
12891 \textcolor{keywordflow}{    end if}
12892 
12893 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae6a46501e39453c57cadd549a472a89a}\label{namespacedc__test_ae6a46501e39453c57cadd549a472a89a}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble5@{dctestassertgreaterthandouble5}}
\index{dctestassertgreaterthandouble5@{dctestassertgreaterthandouble5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble5()}{dctestassertgreaterthandouble5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 12899 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
12899     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
12900     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
12901     \textcolor{keywordtype}{implicit none}
12902     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
12903     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
12904     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
12905     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
12906     \textcolor{keywordtype}{logical}:: err\_flag
12907     \textcolor{keywordtype}{logical}:: negative\_support\_on
12908     \textcolor{keywordtype}{character(STRING)}:: pos\_str
12909     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
12910     \textcolor{keywordtype}{real(DP)}:: wrong, right
12911 
12912                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
12913     \textcolor{keywordtype}{logical}:: consist\_shape(5)
12914     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
12915     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
12916     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
12917     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
12918     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
12919     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
12920     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
12921                     
12922 
12923   \textcolor{keywordflow}{continue}
12924     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
12925       negative\_support\_on = negative\_support
12926     \textcolor{keywordflow}{else}
12927       negative\_support\_on = .true.
12928 \textcolor{keywordflow}{    end if}
12929 
12930     err\_flag = .false.
12931 
12932                     
12933     answer\_shape = shape(answer)
12934     check\_shape = shape(check)
12935 
12936     consist\_shape = answer\_shape == check\_shape
12937 
12938     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
12939       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12940       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12941       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
12942       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
12943       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
12944 
12945       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12946 \textcolor{keywordflow}{    end if}
12947 
12948 
12949     \textcolor{keyword}{allocate}( mask\_array( &
12950                             &    answer\_shape(1), &
12951                       
12952       &    answer\_shape(2), &
12953                       
12954       &    answer\_shape(3), &
12955                       
12956       &    answer\_shape(4), &
12957                       
12958       &    answer\_shape(5)  )  &
12959       &  )
12960 
12961     \textcolor{keyword}{allocate}( judge( &
12962                             &    answer\_shape(1), &
12963                       
12964       &    answer\_shape(2), &
12965                       
12966       &    answer\_shape(3), &
12967                       
12968       &    answer\_shape(4), &
12969                       
12970       &    answer\_shape(5)  )  &
12971       &  )
12972 
12973     \textcolor{keyword}{allocate}( judge\_rev( &
12974                             &    answer\_shape(1), &
12975                       
12976       &    answer\_shape(2), &
12977                       
12978       &    answer\_shape(3), &
12979                       
12980       &    answer\_shape(4), &
12981                       
12982       &    answer\_shape(5)  )  &
12983       &  )
12984 
12985     \textcolor{keyword}{allocate}( answer\_negative( &
12986                             &    answer\_shape(1), &
12987                       
12988       &    answer\_shape(2), &
12989                       
12990       &    answer\_shape(3), &
12991                       
12992       &    answer\_shape(4), &
12993                       
12994       &    answer\_shape(5)  )  &
12995       &  )
12996 
12997     \textcolor{keyword}{allocate}( check\_negative( &
12998                             &    answer\_shape(1), &
12999                       
13000       &    answer\_shape(2), &
13001                       
13002       &    answer\_shape(3), &
13003                       
13004       &    answer\_shape(4), &
13005                       
13006       &    answer\_shape(5)  )  &
13007       &  )
13008 
13009     \textcolor{keyword}{allocate}( both\_negative( &
13010                             &    answer\_shape(1), &
13011                       
13012       &    answer\_shape(2), &
13013                       
13014       &    answer\_shape(3), &
13015                       
13016       &    answer\_shape(4), &
13017                       
13018       &    answer\_shape(5)  )  &
13019       &  )
13020 
13021     answer\_negative = answer < 0.0\_dp
13022     check\_negative = check < 0.0\_dp
13023     both\_negative = answer\_negative .and. check\_negative
13024     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
13025 
13026     judge = answer < check
13027     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
13028 
13029     judge\_rev = .not. judge
13030     err\_flag = any(judge\_rev)
13031     mask\_array = 1
13032     pos = maxloc(mask\_array, judge\_rev)
13033 
13034     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13035 
13036       wrong = check( &
13037                               &    pos(1), &
13038                       
13039         &    pos(2), &
13040                       
13041         &    pos(3), &
13042                       
13043         &    pos(4), &
13044                       
13045         &    pos(5)  )
13046 
13047       right = answer( &
13048                               &    pos(1), &
13049                       
13050         &    pos(2), &
13051                       
13052         &    pos(3), &
13053                       
13054         &    pos(4), &
13055                       
13056         &    pos(5)  )
13057 
13058                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
13059                       
13060       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
13061                       
13062       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
13063                       
13064       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
13065                       
13066       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
13067                       
13068 
13069       pos\_str = \textcolor{stringliteral}{'('} // &
13070                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
13071                       
13072         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
13073                       
13074         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
13075                       
13076         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
13077                       
13078         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
13079 
13080       \textcolor{keywordflow}{if} ( both\_negative( &
13081                               &    pos(1), &
13082                       
13083         &    pos(2), &
13084                       
13085         &    pos(3), &
13086                       
13087         &    pos(4), &
13088                       
13089         &    pos(5)  )  ) \textcolor{keywordflow}{then}
13090 
13091         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
13092       \textcolor{keywordflow}{else}
13093         abs\_mes = \textcolor{stringliteral}{''}
13094 
13095 \textcolor{keywordflow}{      end if}
13096 
13097 \textcolor{keywordflow}{    end if}
13098     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
13099     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
13100 
13101                     
13102 
13103 
13104     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13105       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13106       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13107       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13108         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
13109       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
13110       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13111         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
13112 
13113       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13114     \textcolor{keywordflow}{else}
13115       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
13116 \textcolor{keywordflow}{    end if}
13117 
13118 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_adf29e7cd2c6de9a1ca7dc2705854bcc8}\label{namespacedc__test_adf29e7cd2c6de9a1ca7dc2705854bcc8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble6@{dctestassertgreaterthandouble6}}
\index{dctestassertgreaterthandouble6@{dctestassertgreaterthandouble6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble6()}{dctestassertgreaterthandouble6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 13124 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
13124     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
13125     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
13126     \textcolor{keywordtype}{implicit none}
13127     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
13128     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
13129     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
13130     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
13131     \textcolor{keywordtype}{logical}:: err\_flag
13132     \textcolor{keywordtype}{logical}:: negative\_support\_on
13133     \textcolor{keywordtype}{character(STRING)}:: pos\_str
13134     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
13135     \textcolor{keywordtype}{real(DP)}:: wrong, right
13136 
13137                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
13138     \textcolor{keywordtype}{logical}:: consist\_shape(6)
13139     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
13140     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
13141     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
13142     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
13143     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
13144     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
13145     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
13146                     
13147 
13148   \textcolor{keywordflow}{continue}
13149     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
13150       negative\_support\_on = negative\_support
13151     \textcolor{keywordflow}{else}
13152       negative\_support\_on = .true.
13153 \textcolor{keywordflow}{    end if}
13154 
13155     err\_flag = .false.
13156 
13157                     
13158     answer\_shape = shape(answer)
13159     check\_shape = shape(check)
13160 
13161     consist\_shape = answer\_shape == check\_shape
13162 
13163     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
13164       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13165       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13166       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
13167       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
13168       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
13169 
13170       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13171 \textcolor{keywordflow}{    end if}
13172 
13173 
13174     \textcolor{keyword}{allocate}( mask\_array( &
13175                             &    answer\_shape(1), &
13176                       
13177       &    answer\_shape(2), &
13178                       
13179       &    answer\_shape(3), &
13180                       
13181       &    answer\_shape(4), &
13182                       
13183       &    answer\_shape(5), &
13184                       
13185       &    answer\_shape(6)  )  &
13186       &  )
13187 
13188     \textcolor{keyword}{allocate}( judge( &
13189                             &    answer\_shape(1), &
13190                       
13191       &    answer\_shape(2), &
13192                       
13193       &    answer\_shape(3), &
13194                       
13195       &    answer\_shape(4), &
13196                       
13197       &    answer\_shape(5), &
13198                       
13199       &    answer\_shape(6)  )  &
13200       &  )
13201 
13202     \textcolor{keyword}{allocate}( judge\_rev( &
13203                             &    answer\_shape(1), &
13204                       
13205       &    answer\_shape(2), &
13206                       
13207       &    answer\_shape(3), &
13208                       
13209       &    answer\_shape(4), &
13210                       
13211       &    answer\_shape(5), &
13212                       
13213       &    answer\_shape(6)  )  &
13214       &  )
13215 
13216     \textcolor{keyword}{allocate}( answer\_negative( &
13217                             &    answer\_shape(1), &
13218                       
13219       &    answer\_shape(2), &
13220                       
13221       &    answer\_shape(3), &
13222                       
13223       &    answer\_shape(4), &
13224                       
13225       &    answer\_shape(5), &
13226                       
13227       &    answer\_shape(6)  )  &
13228       &  )
13229 
13230     \textcolor{keyword}{allocate}( check\_negative( &
13231                             &    answer\_shape(1), &
13232                       
13233       &    answer\_shape(2), &
13234                       
13235       &    answer\_shape(3), &
13236                       
13237       &    answer\_shape(4), &
13238                       
13239       &    answer\_shape(5), &
13240                       
13241       &    answer\_shape(6)  )  &
13242       &  )
13243 
13244     \textcolor{keyword}{allocate}( both\_negative( &
13245                             &    answer\_shape(1), &
13246                       
13247       &    answer\_shape(2), &
13248                       
13249       &    answer\_shape(3), &
13250                       
13251       &    answer\_shape(4), &
13252                       
13253       &    answer\_shape(5), &
13254                       
13255       &    answer\_shape(6)  )  &
13256       &  )
13257 
13258     answer\_negative = answer < 0.0\_dp
13259     check\_negative = check < 0.0\_dp
13260     both\_negative = answer\_negative .and. check\_negative
13261     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
13262 
13263     judge = answer < check
13264     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
13265 
13266     judge\_rev = .not. judge
13267     err\_flag = any(judge\_rev)
13268     mask\_array = 1
13269     pos = maxloc(mask\_array, judge\_rev)
13270 
13271     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13272 
13273       wrong = check( &
13274                               &    pos(1), &
13275                       
13276         &    pos(2), &
13277                       
13278         &    pos(3), &
13279                       
13280         &    pos(4), &
13281                       
13282         &    pos(5), &
13283                       
13284         &    pos(6)  )
13285 
13286       right = answer( &
13287                               &    pos(1), &
13288                       
13289         &    pos(2), &
13290                       
13291         &    pos(3), &
13292                       
13293         &    pos(4), &
13294                       
13295         &    pos(5), &
13296                       
13297         &    pos(6)  )
13298 
13299                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
13300                       
13301       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
13302                       
13303       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
13304                       
13305       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
13306                       
13307       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
13308                       
13309       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
13310                       
13311 
13312       pos\_str = \textcolor{stringliteral}{'('} // &
13313                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
13314                       
13315         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
13316                       
13317         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
13318                       
13319         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
13320                       
13321         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
13322                       
13323         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
13324 
13325       \textcolor{keywordflow}{if} ( both\_negative( &
13326                               &    pos(1), &
13327                       
13328         &    pos(2), &
13329                       
13330         &    pos(3), &
13331                       
13332         &    pos(4), &
13333                       
13334         &    pos(5), &
13335                       
13336         &    pos(6)  )  ) \textcolor{keywordflow}{then}
13337 
13338         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
13339       \textcolor{keywordflow}{else}
13340         abs\_mes = \textcolor{stringliteral}{''}
13341 
13342 \textcolor{keywordflow}{      end if}
13343 
13344 \textcolor{keywordflow}{    end if}
13345     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
13346     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
13347 
13348                     
13349 
13350 
13351     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13352       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13353       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13354       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13355         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
13356       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
13357       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13358         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
13359 
13360       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13361     \textcolor{keywordflow}{else}
13362       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
13363 \textcolor{keywordflow}{    end if}
13364 
13365 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae248ac55b06eb89820f98334c01ade90}\label{namespacedc__test_ae248ac55b06eb89820f98334c01ade90}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthandouble7@{dctestassertgreaterthandouble7}}
\index{dctestassertgreaterthandouble7@{dctestassertgreaterthandouble7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthandouble7()}{dctestassertgreaterthandouble7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthandouble7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 13371 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
13371     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
13372     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
13373     \textcolor{keywordtype}{implicit none}
13374     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
13375     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
13376     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
13377     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
13378     \textcolor{keywordtype}{logical}:: err\_flag
13379     \textcolor{keywordtype}{logical}:: negative\_support\_on
13380     \textcolor{keywordtype}{character(STRING)}:: pos\_str
13381     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
13382     \textcolor{keywordtype}{real(DP)}:: wrong, right
13383 
13384                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
13385     \textcolor{keywordtype}{logical}:: consist\_shape(7)
13386     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
13387     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
13388     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
13389     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
13390     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
13391     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
13392     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
13393                     
13394 
13395   \textcolor{keywordflow}{continue}
13396     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
13397       negative\_support\_on = negative\_support
13398     \textcolor{keywordflow}{else}
13399       negative\_support\_on = .true.
13400 \textcolor{keywordflow}{    end if}
13401 
13402     err\_flag = .false.
13403 
13404                     
13405     answer\_shape = shape(answer)
13406     check\_shape = shape(check)
13407 
13408     consist\_shape = answer\_shape == check\_shape
13409 
13410     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
13411       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13412       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13413       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
13414       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
13415       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
13416 
13417       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13418 \textcolor{keywordflow}{    end if}
13419 
13420 
13421     \textcolor{keyword}{allocate}( mask\_array( &
13422                             &    answer\_shape(1), &
13423                       
13424       &    answer\_shape(2), &
13425                       
13426       &    answer\_shape(3), &
13427                       
13428       &    answer\_shape(4), &
13429                       
13430       &    answer\_shape(5), &
13431                       
13432       &    answer\_shape(6), &
13433                       
13434       &    answer\_shape(7)  )  &
13435       &  )
13436 
13437     \textcolor{keyword}{allocate}( judge( &
13438                             &    answer\_shape(1), &
13439                       
13440       &    answer\_shape(2), &
13441                       
13442       &    answer\_shape(3), &
13443                       
13444       &    answer\_shape(4), &
13445                       
13446       &    answer\_shape(5), &
13447                       
13448       &    answer\_shape(6), &
13449                       
13450       &    answer\_shape(7)  )  &
13451       &  )
13452 
13453     \textcolor{keyword}{allocate}( judge\_rev( &
13454                             &    answer\_shape(1), &
13455                       
13456       &    answer\_shape(2), &
13457                       
13458       &    answer\_shape(3), &
13459                       
13460       &    answer\_shape(4), &
13461                       
13462       &    answer\_shape(5), &
13463                       
13464       &    answer\_shape(6), &
13465                       
13466       &    answer\_shape(7)  )  &
13467       &  )
13468 
13469     \textcolor{keyword}{allocate}( answer\_negative( &
13470                             &    answer\_shape(1), &
13471                       
13472       &    answer\_shape(2), &
13473                       
13474       &    answer\_shape(3), &
13475                       
13476       &    answer\_shape(4), &
13477                       
13478       &    answer\_shape(5), &
13479                       
13480       &    answer\_shape(6), &
13481                       
13482       &    answer\_shape(7)  )  &
13483       &  )
13484 
13485     \textcolor{keyword}{allocate}( check\_negative( &
13486                             &    answer\_shape(1), &
13487                       
13488       &    answer\_shape(2), &
13489                       
13490       &    answer\_shape(3), &
13491                       
13492       &    answer\_shape(4), &
13493                       
13494       &    answer\_shape(5), &
13495                       
13496       &    answer\_shape(6), &
13497                       
13498       &    answer\_shape(7)  )  &
13499       &  )
13500 
13501     \textcolor{keyword}{allocate}( both\_negative( &
13502                             &    answer\_shape(1), &
13503                       
13504       &    answer\_shape(2), &
13505                       
13506       &    answer\_shape(3), &
13507                       
13508       &    answer\_shape(4), &
13509                       
13510       &    answer\_shape(5), &
13511                       
13512       &    answer\_shape(6), &
13513                       
13514       &    answer\_shape(7)  )  &
13515       &  )
13516 
13517     answer\_negative = answer < 0.0\_dp
13518     check\_negative = check < 0.0\_dp
13519     both\_negative = answer\_negative .and. check\_negative
13520     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
13521 
13522     judge = answer < check
13523     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
13524 
13525     judge\_rev = .not. judge
13526     err\_flag = any(judge\_rev)
13527     mask\_array = 1
13528     pos = maxloc(mask\_array, judge\_rev)
13529 
13530     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13531 
13532       wrong = check( &
13533                               &    pos(1), &
13534                       
13535         &    pos(2), &
13536                       
13537         &    pos(3), &
13538                       
13539         &    pos(4), &
13540                       
13541         &    pos(5), &
13542                       
13543         &    pos(6), &
13544                       
13545         &    pos(7)  )
13546 
13547       right = answer( &
13548                               &    pos(1), &
13549                       
13550         &    pos(2), &
13551                       
13552         &    pos(3), &
13553                       
13554         &    pos(4), &
13555                       
13556         &    pos(5), &
13557                       
13558         &    pos(6), &
13559                       
13560         &    pos(7)  )
13561 
13562                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
13563                       
13564       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
13565                       
13566       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
13567                       
13568       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
13569                       
13570       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
13571                       
13572       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
13573                       
13574       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
13575                       
13576 
13577       pos\_str = \textcolor{stringliteral}{'('} // &
13578                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
13579                       
13580         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
13581                       
13582         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
13583                       
13584         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
13585                       
13586         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
13587                       
13588         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
13589                       
13590         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
13591 
13592       \textcolor{keywordflow}{if} ( both\_negative( &
13593                               &    pos(1), &
13594                       
13595         &    pos(2), &
13596                       
13597         &    pos(3), &
13598                       
13599         &    pos(4), &
13600                       
13601         &    pos(5), &
13602                       
13603         &    pos(6), &
13604                       
13605         &    pos(7)  )  ) \textcolor{keywordflow}{then}
13606 
13607         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
13608       \textcolor{keywordflow}{else}
13609         abs\_mes = \textcolor{stringliteral}{''}
13610 
13611 \textcolor{keywordflow}{      end if}
13612 
13613 \textcolor{keywordflow}{    end if}
13614     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
13615     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
13616 
13617                     
13618 
13619 
13620     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13621       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13622       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13623       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13624         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
13625       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
13626       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13627         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
13628 
13629       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13630     \textcolor{keywordflow}{else}
13631       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
13632 \textcolor{keywordflow}{    end if}
13633 
13634 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a88818294f62ea17f69f0a3d14250aa8d}\label{namespacedc__test_a88818294f62ea17f69f0a3d14250aa8d}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint0@{dctestassertgreaterthanint0}}
\index{dctestassertgreaterthanint0@{dctestassertgreaterthanint0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint0()}{dctestassertgreaterthanint0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, intent(in)}]{answer,  }\item[{integer, intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 9158 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
9158     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
9159     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
9160     \textcolor{keywordtype}{implicit none}
9161     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
9162     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer
9163     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check
9164     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
9165     \textcolor{keywordtype}{logical}:: err\_flag
9166     \textcolor{keywordtype}{logical}:: negative\_support\_on
9167     \textcolor{keywordtype}{character(STRING)}:: pos\_str
9168     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
9169     \textcolor{keywordtype}{integer}:: wrong, right
9170 
9171                                         
9172 
9173   \textcolor{keywordflow}{continue}
9174     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
9175       negative\_support\_on = negative\_support
9176     \textcolor{keywordflow}{else}
9177       negative\_support\_on = .true.
9178 \textcolor{keywordflow}{    end if}
9179 
9180     err\_flag = .false.
9181 
9182                     
9183     err\_flag = .not. answer < check
9184     abs\_mes = \textcolor{stringliteral}{''}
9185 
9186     \textcolor{keywordflow}{if} ( answer < 0 &
9187       &  .and. check < 0 &
9188       &  .and. negative\_support\_on ) \textcolor{keywordflow}{then}
9189 
9190       err\_flag = .not. err\_flag
9191       abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
9192 \textcolor{keywordflow}{    end if}
9193 
9194     wrong = check
9195     right = answer
9196     pos\_str = \textcolor{stringliteral}{''}
9197 
9198                     
9199 
9200 
9201     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9202       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9203       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9204       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9205         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
9206       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
9207       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9208         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
9209 
9210       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9211     \textcolor{keywordflow}{else}
9212       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
9213 \textcolor{keywordflow}{    end if}
9214 
9215 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a0a668866ed4f10c2ecdcfe3d3004e5a1}\label{namespacedc__test_a0a668866ed4f10c2ecdcfe3d3004e5a1}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint1@{dctestassertgreaterthanint1}}
\index{dctestassertgreaterthanint1@{dctestassertgreaterthanint1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint1()}{dctestassertgreaterthanint1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 9221 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
9221     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
9222     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
9223     \textcolor{keywordtype}{implicit none}
9224     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
9225     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:)
9226     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:)
9227     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
9228     \textcolor{keywordtype}{logical}:: err\_flag
9229     \textcolor{keywordtype}{logical}:: negative\_support\_on
9230     \textcolor{keywordtype}{character(STRING)}:: pos\_str
9231     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
9232     \textcolor{keywordtype}{integer}:: wrong, right
9233 
9234                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
9235     \textcolor{keywordtype}{logical}:: consist\_shape(1)
9236     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
9237     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
9238     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
9239     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
9240     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
9241     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
9242     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
9243                     
9244 
9245   \textcolor{keywordflow}{continue}
9246     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
9247       negative\_support\_on = negative\_support
9248     \textcolor{keywordflow}{else}
9249       negative\_support\_on = .true.
9250 \textcolor{keywordflow}{    end if}
9251 
9252     err\_flag = .false.
9253 
9254                     
9255     answer\_shape = shape(answer)
9256     check\_shape = shape(check)
9257 
9258     consist\_shape = answer\_shape == check\_shape
9259 
9260     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
9261       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9262       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9263       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
9264       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
9265       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
9266 
9267       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9268 \textcolor{keywordflow}{    end if}
9269 
9270 
9271     \textcolor{keyword}{allocate}( mask\_array( &
9272                       
9273       &    answer\_shape(1)  )  &
9274       &  )
9275 
9276     \textcolor{keyword}{allocate}( judge( &
9277                       
9278       &    answer\_shape(1)  )  &
9279       &  )
9280 
9281     \textcolor{keyword}{allocate}( judge\_rev( &
9282                       
9283       &    answer\_shape(1)  )  &
9284       &  )
9285 
9286     \textcolor{keyword}{allocate}( answer\_negative( &
9287                       
9288       &    answer\_shape(1)  )  &
9289       &  )
9290 
9291     \textcolor{keyword}{allocate}( check\_negative( &
9292                       
9293       &    answer\_shape(1)  )  &
9294       &  )
9295 
9296     \textcolor{keyword}{allocate}( both\_negative( &
9297                       
9298       &    answer\_shape(1)  )  &
9299       &  )
9300 
9301     answer\_negative = answer < 0
9302     check\_negative = check < 0
9303     both\_negative = answer\_negative .and. check\_negative
9304     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
9305 
9306     judge = answer < check
9307     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
9308 
9309     judge\_rev = .not. judge
9310     err\_flag = any(judge\_rev)
9311     mask\_array = 1
9312     pos = maxloc(mask\_array, judge\_rev)
9313 
9314     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9315 
9316       wrong = check( &
9317                       
9318         &    pos(1)  )
9319 
9320       right = answer( &
9321                       
9322         &    pos(1)  )
9323 
9324                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
9325                       
9326 
9327       pos\_str = \textcolor{stringliteral}{'('} // &
9328                       
9329         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
9330 
9331       \textcolor{keywordflow}{if} ( both\_negative( &
9332                       
9333         &    pos(1)  )  ) \textcolor{keywordflow}{then}
9334 
9335         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
9336       \textcolor{keywordflow}{else}
9337         abs\_mes = \textcolor{stringliteral}{''}
9338 
9339 \textcolor{keywordflow}{      end if}
9340 
9341 \textcolor{keywordflow}{    end if}
9342     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
9343     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
9344 
9345                     
9346 
9347 
9348     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9349       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9350       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9351       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9352         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
9353       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
9354       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9355         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
9356 
9357       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9358     \textcolor{keywordflow}{else}
9359       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
9360 \textcolor{keywordflow}{    end if}
9361 
9362 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aaa2891a27e19d8ef79e00fdca3465533}\label{namespacedc__test_aaa2891a27e19d8ef79e00fdca3465533}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint2@{dctestassertgreaterthanint2}}
\index{dctestassertgreaterthanint2@{dctestassertgreaterthanint2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint2()}{dctestassertgreaterthanint2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 9368 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
9368     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
9369     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
9370     \textcolor{keywordtype}{implicit none}
9371     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
9372     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
9373     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
9374     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
9375     \textcolor{keywordtype}{logical}:: err\_flag
9376     \textcolor{keywordtype}{logical}:: negative\_support\_on
9377     \textcolor{keywordtype}{character(STRING)}:: pos\_str
9378     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
9379     \textcolor{keywordtype}{integer}:: wrong, right
9380 
9381                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
9382     \textcolor{keywordtype}{logical}:: consist\_shape(2)
9383     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
9384     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
9385     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
9386     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
9387     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
9388     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
9389     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
9390                     
9391 
9392   \textcolor{keywordflow}{continue}
9393     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
9394       negative\_support\_on = negative\_support
9395     \textcolor{keywordflow}{else}
9396       negative\_support\_on = .true.
9397 \textcolor{keywordflow}{    end if}
9398 
9399     err\_flag = .false.
9400 
9401                     
9402     answer\_shape = shape(answer)
9403     check\_shape = shape(check)
9404 
9405     consist\_shape = answer\_shape == check\_shape
9406 
9407     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
9408       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9409       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9410       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
9411       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
9412       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
9413 
9414       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9415 \textcolor{keywordflow}{    end if}
9416 
9417 
9418     \textcolor{keyword}{allocate}( mask\_array( &
9419                             &    answer\_shape(1), &
9420                       
9421       &    answer\_shape(2)  )  &
9422       &  )
9423 
9424     \textcolor{keyword}{allocate}( judge( &
9425                             &    answer\_shape(1), &
9426                       
9427       &    answer\_shape(2)  )  &
9428       &  )
9429 
9430     \textcolor{keyword}{allocate}( judge\_rev( &
9431                             &    answer\_shape(1), &
9432                       
9433       &    answer\_shape(2)  )  &
9434       &  )
9435 
9436     \textcolor{keyword}{allocate}( answer\_negative( &
9437                             &    answer\_shape(1), &
9438                       
9439       &    answer\_shape(2)  )  &
9440       &  )
9441 
9442     \textcolor{keyword}{allocate}( check\_negative( &
9443                             &    answer\_shape(1), &
9444                       
9445       &    answer\_shape(2)  )  &
9446       &  )
9447 
9448     \textcolor{keyword}{allocate}( both\_negative( &
9449                             &    answer\_shape(1), &
9450                       
9451       &    answer\_shape(2)  )  &
9452       &  )
9453 
9454     answer\_negative = answer < 0
9455     check\_negative = check < 0
9456     both\_negative = answer\_negative .and. check\_negative
9457     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
9458 
9459     judge = answer < check
9460     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
9461 
9462     judge\_rev = .not. judge
9463     err\_flag = any(judge\_rev)
9464     mask\_array = 1
9465     pos = maxloc(mask\_array, judge\_rev)
9466 
9467     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9468 
9469       wrong = check( &
9470                               &    pos(1), &
9471                       
9472         &    pos(2)  )
9473 
9474       right = answer( &
9475                               &    pos(1), &
9476                       
9477         &    pos(2)  )
9478 
9479                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
9480                       
9481       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
9482                       
9483 
9484       pos\_str = \textcolor{stringliteral}{'('} // &
9485                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
9486                       
9487         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
9488 
9489       \textcolor{keywordflow}{if} ( both\_negative( &
9490                               &    pos(1), &
9491                       
9492         &    pos(2)  )  ) \textcolor{keywordflow}{then}
9493 
9494         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
9495       \textcolor{keywordflow}{else}
9496         abs\_mes = \textcolor{stringliteral}{''}
9497 
9498 \textcolor{keywordflow}{      end if}
9499 
9500 \textcolor{keywordflow}{    end if}
9501     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
9502     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
9503 
9504                     
9505 
9506 
9507     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9508       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9509       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9510       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9511         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
9512       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
9513       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9514         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
9515 
9516       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9517     \textcolor{keywordflow}{else}
9518       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
9519 \textcolor{keywordflow}{    end if}
9520 
9521 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a3b00d56770ad165fb4b506f3e49403dc}\label{namespacedc__test_a3b00d56770ad165fb4b506f3e49403dc}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint3@{dctestassertgreaterthanint3}}
\index{dctestassertgreaterthanint3@{dctestassertgreaterthanint3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint3()}{dctestassertgreaterthanint3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 9527 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
9527     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
9528     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
9529     \textcolor{keywordtype}{implicit none}
9530     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
9531     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
9532     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
9533     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
9534     \textcolor{keywordtype}{logical}:: err\_flag
9535     \textcolor{keywordtype}{logical}:: negative\_support\_on
9536     \textcolor{keywordtype}{character(STRING)}:: pos\_str
9537     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
9538     \textcolor{keywordtype}{integer}:: wrong, right
9539 
9540                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
9541     \textcolor{keywordtype}{logical}:: consist\_shape(3)
9542     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
9543     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
9544     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
9545     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
9546     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
9547     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
9548     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
9549                     
9550 
9551   \textcolor{keywordflow}{continue}
9552     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
9553       negative\_support\_on = negative\_support
9554     \textcolor{keywordflow}{else}
9555       negative\_support\_on = .true.
9556 \textcolor{keywordflow}{    end if}
9557 
9558     err\_flag = .false.
9559 
9560                     
9561     answer\_shape = shape(answer)
9562     check\_shape = shape(check)
9563 
9564     consist\_shape = answer\_shape == check\_shape
9565 
9566     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
9567       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9568       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9569       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
9570       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
9571       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
9572 
9573       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9574 \textcolor{keywordflow}{    end if}
9575 
9576 
9577     \textcolor{keyword}{allocate}( mask\_array( &
9578                             &    answer\_shape(1), &
9579                       
9580       &    answer\_shape(2), &
9581                       
9582       &    answer\_shape(3)  )  &
9583       &  )
9584 
9585     \textcolor{keyword}{allocate}( judge( &
9586                             &    answer\_shape(1), &
9587                       
9588       &    answer\_shape(2), &
9589                       
9590       &    answer\_shape(3)  )  &
9591       &  )
9592 
9593     \textcolor{keyword}{allocate}( judge\_rev( &
9594                             &    answer\_shape(1), &
9595                       
9596       &    answer\_shape(2), &
9597                       
9598       &    answer\_shape(3)  )  &
9599       &  )
9600 
9601     \textcolor{keyword}{allocate}( answer\_negative( &
9602                             &    answer\_shape(1), &
9603                       
9604       &    answer\_shape(2), &
9605                       
9606       &    answer\_shape(3)  )  &
9607       &  )
9608 
9609     \textcolor{keyword}{allocate}( check\_negative( &
9610                             &    answer\_shape(1), &
9611                       
9612       &    answer\_shape(2), &
9613                       
9614       &    answer\_shape(3)  )  &
9615       &  )
9616 
9617     \textcolor{keyword}{allocate}( both\_negative( &
9618                             &    answer\_shape(1), &
9619                       
9620       &    answer\_shape(2), &
9621                       
9622       &    answer\_shape(3)  )  &
9623       &  )
9624 
9625     answer\_negative = answer < 0
9626     check\_negative = check < 0
9627     both\_negative = answer\_negative .and. check\_negative
9628     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
9629 
9630     judge = answer < check
9631     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
9632 
9633     judge\_rev = .not. judge
9634     err\_flag = any(judge\_rev)
9635     mask\_array = 1
9636     pos = maxloc(mask\_array, judge\_rev)
9637 
9638     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9639 
9640       wrong = check( &
9641                               &    pos(1), &
9642                       
9643         &    pos(2), &
9644                       
9645         &    pos(3)  )
9646 
9647       right = answer( &
9648                               &    pos(1), &
9649                       
9650         &    pos(2), &
9651                       
9652         &    pos(3)  )
9653 
9654                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
9655                       
9656       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
9657                       
9658       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
9659                       
9660 
9661       pos\_str = \textcolor{stringliteral}{'('} // &
9662                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
9663                       
9664         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
9665                       
9666         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
9667 
9668       \textcolor{keywordflow}{if} ( both\_negative( &
9669                               &    pos(1), &
9670                       
9671         &    pos(2), &
9672                       
9673         &    pos(3)  )  ) \textcolor{keywordflow}{then}
9674 
9675         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
9676       \textcolor{keywordflow}{else}
9677         abs\_mes = \textcolor{stringliteral}{''}
9678 
9679 \textcolor{keywordflow}{      end if}
9680 
9681 \textcolor{keywordflow}{    end if}
9682     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
9683     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
9684 
9685                     
9686 
9687 
9688     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9689       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9690       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9691       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9692         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
9693       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
9694       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9695         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
9696 
9697       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9698     \textcolor{keywordflow}{else}
9699       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
9700 \textcolor{keywordflow}{    end if}
9701 
9702 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a9d4fb6ab336e83881d79483eabbf94c7}\label{namespacedc__test_a9d4fb6ab336e83881d79483eabbf94c7}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint4@{dctestassertgreaterthanint4}}
\index{dctestassertgreaterthanint4@{dctestassertgreaterthanint4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint4()}{dctestassertgreaterthanint4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 9708 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
9708     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
9709     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
9710     \textcolor{keywordtype}{implicit none}
9711     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
9712     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
9713     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
9714     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
9715     \textcolor{keywordtype}{logical}:: err\_flag
9716     \textcolor{keywordtype}{logical}:: negative\_support\_on
9717     \textcolor{keywordtype}{character(STRING)}:: pos\_str
9718     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
9719     \textcolor{keywordtype}{integer}:: wrong, right
9720 
9721                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
9722     \textcolor{keywordtype}{logical}:: consist\_shape(4)
9723     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
9724     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
9725     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
9726     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
9727     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
9728     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
9729     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
9730                     
9731 
9732   \textcolor{keywordflow}{continue}
9733     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
9734       negative\_support\_on = negative\_support
9735     \textcolor{keywordflow}{else}
9736       negative\_support\_on = .true.
9737 \textcolor{keywordflow}{    end if}
9738 
9739     err\_flag = .false.
9740 
9741                     
9742     answer\_shape = shape(answer)
9743     check\_shape = shape(check)
9744 
9745     consist\_shape = answer\_shape == check\_shape
9746 
9747     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
9748       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9749       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9750       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
9751       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
9752       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
9753 
9754       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9755 \textcolor{keywordflow}{    end if}
9756 
9757 
9758     \textcolor{keyword}{allocate}( mask\_array( &
9759                             &    answer\_shape(1), &
9760                       
9761       &    answer\_shape(2), &
9762                       
9763       &    answer\_shape(3), &
9764                       
9765       &    answer\_shape(4)  )  &
9766       &  )
9767 
9768     \textcolor{keyword}{allocate}( judge( &
9769                             &    answer\_shape(1), &
9770                       
9771       &    answer\_shape(2), &
9772                       
9773       &    answer\_shape(3), &
9774                       
9775       &    answer\_shape(4)  )  &
9776       &  )
9777 
9778     \textcolor{keyword}{allocate}( judge\_rev( &
9779                             &    answer\_shape(1), &
9780                       
9781       &    answer\_shape(2), &
9782                       
9783       &    answer\_shape(3), &
9784                       
9785       &    answer\_shape(4)  )  &
9786       &  )
9787 
9788     \textcolor{keyword}{allocate}( answer\_negative( &
9789                             &    answer\_shape(1), &
9790                       
9791       &    answer\_shape(2), &
9792                       
9793       &    answer\_shape(3), &
9794                       
9795       &    answer\_shape(4)  )  &
9796       &  )
9797 
9798     \textcolor{keyword}{allocate}( check\_negative( &
9799                             &    answer\_shape(1), &
9800                       
9801       &    answer\_shape(2), &
9802                       
9803       &    answer\_shape(3), &
9804                       
9805       &    answer\_shape(4)  )  &
9806       &  )
9807 
9808     \textcolor{keyword}{allocate}( both\_negative( &
9809                             &    answer\_shape(1), &
9810                       
9811       &    answer\_shape(2), &
9812                       
9813       &    answer\_shape(3), &
9814                       
9815       &    answer\_shape(4)  )  &
9816       &  )
9817 
9818     answer\_negative = answer < 0
9819     check\_negative = check < 0
9820     both\_negative = answer\_negative .and. check\_negative
9821     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
9822 
9823     judge = answer < check
9824     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
9825 
9826     judge\_rev = .not. judge
9827     err\_flag = any(judge\_rev)
9828     mask\_array = 1
9829     pos = maxloc(mask\_array, judge\_rev)
9830 
9831     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9832 
9833       wrong = check( &
9834                               &    pos(1), &
9835                       
9836         &    pos(2), &
9837                       
9838         &    pos(3), &
9839                       
9840         &    pos(4)  )
9841 
9842       right = answer( &
9843                               &    pos(1), &
9844                       
9845         &    pos(2), &
9846                       
9847         &    pos(3), &
9848                       
9849         &    pos(4)  )
9850 
9851                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
9852                       
9853       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
9854                       
9855       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
9856                       
9857       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
9858                       
9859 
9860       pos\_str = \textcolor{stringliteral}{'('} // &
9861                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
9862                       
9863         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
9864                       
9865         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
9866                       
9867         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
9868 
9869       \textcolor{keywordflow}{if} ( both\_negative( &
9870                               &    pos(1), &
9871                       
9872         &    pos(2), &
9873                       
9874         &    pos(3), &
9875                       
9876         &    pos(4)  )  ) \textcolor{keywordflow}{then}
9877 
9878         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
9879       \textcolor{keywordflow}{else}
9880         abs\_mes = \textcolor{stringliteral}{''}
9881 
9882 \textcolor{keywordflow}{      end if}
9883 
9884 \textcolor{keywordflow}{    end if}
9885     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
9886     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
9887 
9888                     
9889 
9890 
9891     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
9892       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9893       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9894       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9895         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
9896       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
9897       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
9898         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
9899 
9900       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9901     \textcolor{keywordflow}{else}
9902       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
9903 \textcolor{keywordflow}{    end if}
9904 
9905 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_afd60aad32b7749e0c82223bd790a2bfe}\label{namespacedc__test_afd60aad32b7749e0c82223bd790a2bfe}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint5@{dctestassertgreaterthanint5}}
\index{dctestassertgreaterthanint5@{dctestassertgreaterthanint5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint5()}{dctestassertgreaterthanint5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 9911 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
9911     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
9912     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
9913     \textcolor{keywordtype}{implicit none}
9914     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
9915     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
9916     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
9917     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
9918     \textcolor{keywordtype}{logical}:: err\_flag
9919     \textcolor{keywordtype}{logical}:: negative\_support\_on
9920     \textcolor{keywordtype}{character(STRING)}:: pos\_str
9921     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
9922     \textcolor{keywordtype}{integer}:: wrong, right
9923 
9924                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
9925     \textcolor{keywordtype}{logical}:: consist\_shape(5)
9926     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
9927     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
9928     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
9929     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
9930     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
9931     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
9932     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
9933                     
9934 
9935   \textcolor{keywordflow}{continue}
9936     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
9937       negative\_support\_on = negative\_support
9938     \textcolor{keywordflow}{else}
9939       negative\_support\_on = .true.
9940 \textcolor{keywordflow}{    end if}
9941 
9942     err\_flag = .false.
9943 
9944                     
9945     answer\_shape = shape(answer)
9946     check\_shape = shape(check)
9947 
9948     consist\_shape = answer\_shape == check\_shape
9949 
9950     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
9951       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
9952       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
9953       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
9954       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
9955       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
9956 
9957       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
9958 \textcolor{keywordflow}{    end if}
9959 
9960 
9961     \textcolor{keyword}{allocate}( mask\_array( &
9962                             &    answer\_shape(1), &
9963                       
9964       &    answer\_shape(2), &
9965                       
9966       &    answer\_shape(3), &
9967                       
9968       &    answer\_shape(4), &
9969                       
9970       &    answer\_shape(5)  )  &
9971       &  )
9972 
9973     \textcolor{keyword}{allocate}( judge( &
9974                             &    answer\_shape(1), &
9975                       
9976       &    answer\_shape(2), &
9977                       
9978       &    answer\_shape(3), &
9979                       
9980       &    answer\_shape(4), &
9981                       
9982       &    answer\_shape(5)  )  &
9983       &  )
9984 
9985     \textcolor{keyword}{allocate}( judge\_rev( &
9986                             &    answer\_shape(1), &
9987                       
9988       &    answer\_shape(2), &
9989                       
9990       &    answer\_shape(3), &
9991                       
9992       &    answer\_shape(4), &
9993                       
9994       &    answer\_shape(5)  )  &
9995       &  )
9996 
9997     \textcolor{keyword}{allocate}( answer\_negative( &
9998                             &    answer\_shape(1), &
9999                       
10000       &    answer\_shape(2), &
10001                       
10002       &    answer\_shape(3), &
10003                       
10004       &    answer\_shape(4), &
10005                       
10006       &    answer\_shape(5)  )  &
10007       &  )
10008 
10009     \textcolor{keyword}{allocate}( check\_negative( &
10010                             &    answer\_shape(1), &
10011                       
10012       &    answer\_shape(2), &
10013                       
10014       &    answer\_shape(3), &
10015                       
10016       &    answer\_shape(4), &
10017                       
10018       &    answer\_shape(5)  )  &
10019       &  )
10020 
10021     \textcolor{keyword}{allocate}( both\_negative( &
10022                             &    answer\_shape(1), &
10023                       
10024       &    answer\_shape(2), &
10025                       
10026       &    answer\_shape(3), &
10027                       
10028       &    answer\_shape(4), &
10029                       
10030       &    answer\_shape(5)  )  &
10031       &  )
10032 
10033     answer\_negative = answer < 0
10034     check\_negative = check < 0
10035     both\_negative = answer\_negative .and. check\_negative
10036     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
10037 
10038     judge = answer < check
10039     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
10040 
10041     judge\_rev = .not. judge
10042     err\_flag = any(judge\_rev)
10043     mask\_array = 1
10044     pos = maxloc(mask\_array, judge\_rev)
10045 
10046     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10047 
10048       wrong = check( &
10049                               &    pos(1), &
10050                       
10051         &    pos(2), &
10052                       
10053         &    pos(3), &
10054                       
10055         &    pos(4), &
10056                       
10057         &    pos(5)  )
10058 
10059       right = answer( &
10060                               &    pos(1), &
10061                       
10062         &    pos(2), &
10063                       
10064         &    pos(3), &
10065                       
10066         &    pos(4), &
10067                       
10068         &    pos(5)  )
10069 
10070                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
10071                       
10072       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
10073                       
10074       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
10075                       
10076       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
10077                       
10078       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
10079                       
10080 
10081       pos\_str = \textcolor{stringliteral}{'('} // &
10082                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
10083                       
10084         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
10085                       
10086         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
10087                       
10088         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
10089                       
10090         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
10091 
10092       \textcolor{keywordflow}{if} ( both\_negative( &
10093                               &    pos(1), &
10094                       
10095         &    pos(2), &
10096                       
10097         &    pos(3), &
10098                       
10099         &    pos(4), &
10100                       
10101         &    pos(5)  )  ) \textcolor{keywordflow}{then}
10102 
10103         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
10104       \textcolor{keywordflow}{else}
10105         abs\_mes = \textcolor{stringliteral}{''}
10106 
10107 \textcolor{keywordflow}{      end if}
10108 
10109 \textcolor{keywordflow}{    end if}
10110     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
10111     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
10112 
10113                     
10114 
10115 
10116     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10117       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10118       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10119       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10120         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
10121       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
10122       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10123         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
10124 
10125       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10126     \textcolor{keywordflow}{else}
10127       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
10128 \textcolor{keywordflow}{    end if}
10129 
10130 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ad1ec5284a9b8fea219af29b2fbc9e271}\label{namespacedc__test_ad1ec5284a9b8fea219af29b2fbc9e271}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint6@{dctestassertgreaterthanint6}}
\index{dctestassertgreaterthanint6@{dctestassertgreaterthanint6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint6()}{dctestassertgreaterthanint6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 10136 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
10136     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
10137     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
10138     \textcolor{keywordtype}{implicit none}
10139     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
10140     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
10141     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
10142     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
10143     \textcolor{keywordtype}{logical}:: err\_flag
10144     \textcolor{keywordtype}{logical}:: negative\_support\_on
10145     \textcolor{keywordtype}{character(STRING)}:: pos\_str
10146     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
10147     \textcolor{keywordtype}{integer}:: wrong, right
10148 
10149                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
10150     \textcolor{keywordtype}{logical}:: consist\_shape(6)
10151     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
10152     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
10153     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
10154     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
10155     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
10156     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
10157     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
10158                     
10159 
10160   \textcolor{keywordflow}{continue}
10161     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
10162       negative\_support\_on = negative\_support
10163     \textcolor{keywordflow}{else}
10164       negative\_support\_on = .true.
10165 \textcolor{keywordflow}{    end if}
10166 
10167     err\_flag = .false.
10168 
10169                     
10170     answer\_shape = shape(answer)
10171     check\_shape = shape(check)
10172 
10173     consist\_shape = answer\_shape == check\_shape
10174 
10175     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
10176       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10177       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10178       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
10179       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
10180       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
10181 
10182       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10183 \textcolor{keywordflow}{    end if}
10184 
10185 
10186     \textcolor{keyword}{allocate}( mask\_array( &
10187                             &    answer\_shape(1), &
10188                       
10189       &    answer\_shape(2), &
10190                       
10191       &    answer\_shape(3), &
10192                       
10193       &    answer\_shape(4), &
10194                       
10195       &    answer\_shape(5), &
10196                       
10197       &    answer\_shape(6)  )  &
10198       &  )
10199 
10200     \textcolor{keyword}{allocate}( judge( &
10201                             &    answer\_shape(1), &
10202                       
10203       &    answer\_shape(2), &
10204                       
10205       &    answer\_shape(3), &
10206                       
10207       &    answer\_shape(4), &
10208                       
10209       &    answer\_shape(5), &
10210                       
10211       &    answer\_shape(6)  )  &
10212       &  )
10213 
10214     \textcolor{keyword}{allocate}( judge\_rev( &
10215                             &    answer\_shape(1), &
10216                       
10217       &    answer\_shape(2), &
10218                       
10219       &    answer\_shape(3), &
10220                       
10221       &    answer\_shape(4), &
10222                       
10223       &    answer\_shape(5), &
10224                       
10225       &    answer\_shape(6)  )  &
10226       &  )
10227 
10228     \textcolor{keyword}{allocate}( answer\_negative( &
10229                             &    answer\_shape(1), &
10230                       
10231       &    answer\_shape(2), &
10232                       
10233       &    answer\_shape(3), &
10234                       
10235       &    answer\_shape(4), &
10236                       
10237       &    answer\_shape(5), &
10238                       
10239       &    answer\_shape(6)  )  &
10240       &  )
10241 
10242     \textcolor{keyword}{allocate}( check\_negative( &
10243                             &    answer\_shape(1), &
10244                       
10245       &    answer\_shape(2), &
10246                       
10247       &    answer\_shape(3), &
10248                       
10249       &    answer\_shape(4), &
10250                       
10251       &    answer\_shape(5), &
10252                       
10253       &    answer\_shape(6)  )  &
10254       &  )
10255 
10256     \textcolor{keyword}{allocate}( both\_negative( &
10257                             &    answer\_shape(1), &
10258                       
10259       &    answer\_shape(2), &
10260                       
10261       &    answer\_shape(3), &
10262                       
10263       &    answer\_shape(4), &
10264                       
10265       &    answer\_shape(5), &
10266                       
10267       &    answer\_shape(6)  )  &
10268       &  )
10269 
10270     answer\_negative = answer < 0
10271     check\_negative = check < 0
10272     both\_negative = answer\_negative .and. check\_negative
10273     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
10274 
10275     judge = answer < check
10276     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
10277 
10278     judge\_rev = .not. judge
10279     err\_flag = any(judge\_rev)
10280     mask\_array = 1
10281     pos = maxloc(mask\_array, judge\_rev)
10282 
10283     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10284 
10285       wrong = check( &
10286                               &    pos(1), &
10287                       
10288         &    pos(2), &
10289                       
10290         &    pos(3), &
10291                       
10292         &    pos(4), &
10293                       
10294         &    pos(5), &
10295                       
10296         &    pos(6)  )
10297 
10298       right = answer( &
10299                               &    pos(1), &
10300                       
10301         &    pos(2), &
10302                       
10303         &    pos(3), &
10304                       
10305         &    pos(4), &
10306                       
10307         &    pos(5), &
10308                       
10309         &    pos(6)  )
10310 
10311                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
10312                       
10313       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
10314                       
10315       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
10316                       
10317       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
10318                       
10319       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
10320                       
10321       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
10322                       
10323 
10324       pos\_str = \textcolor{stringliteral}{'('} // &
10325                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
10326                       
10327         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
10328                       
10329         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
10330                       
10331         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
10332                       
10333         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
10334                       
10335         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
10336 
10337       \textcolor{keywordflow}{if} ( both\_negative( &
10338                               &    pos(1), &
10339                       
10340         &    pos(2), &
10341                       
10342         &    pos(3), &
10343                       
10344         &    pos(4), &
10345                       
10346         &    pos(5), &
10347                       
10348         &    pos(6)  )  ) \textcolor{keywordflow}{then}
10349 
10350         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
10351       \textcolor{keywordflow}{else}
10352         abs\_mes = \textcolor{stringliteral}{''}
10353 
10354 \textcolor{keywordflow}{      end if}
10355 
10356 \textcolor{keywordflow}{    end if}
10357     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
10358     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
10359 
10360                     
10361 
10362 
10363     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10364       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10365       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10366       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10367         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
10368       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
10369       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10370         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
10371 
10372       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10373     \textcolor{keywordflow}{else}
10374       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
10375 \textcolor{keywordflow}{    end if}
10376 
10377 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a1eb5de773252413489e4a8856e498832}\label{namespacedc__test_a1eb5de773252413489e4a8856e498832}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanint7@{dctestassertgreaterthanint7}}
\index{dctestassertgreaterthanint7@{dctestassertgreaterthanint7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanint7()}{dctestassertgreaterthanint7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanint7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 10383 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
10383     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
10384     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
10385     \textcolor{keywordtype}{implicit none}
10386     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
10387     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
10388     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
10389     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
10390     \textcolor{keywordtype}{logical}:: err\_flag
10391     \textcolor{keywordtype}{logical}:: negative\_support\_on
10392     \textcolor{keywordtype}{character(STRING)}:: pos\_str
10393     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
10394     \textcolor{keywordtype}{integer}:: wrong, right
10395 
10396                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
10397     \textcolor{keywordtype}{logical}:: consist\_shape(7)
10398     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
10399     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
10400     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
10401     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
10402     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
10403     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
10404     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
10405                     
10406 
10407   \textcolor{keywordflow}{continue}
10408     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
10409       negative\_support\_on = negative\_support
10410     \textcolor{keywordflow}{else}
10411       negative\_support\_on = .true.
10412 \textcolor{keywordflow}{    end if}
10413 
10414     err\_flag = .false.
10415 
10416                     
10417     answer\_shape = shape(answer)
10418     check\_shape = shape(check)
10419 
10420     consist\_shape = answer\_shape == check\_shape
10421 
10422     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
10423       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10424       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10425       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
10426       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
10427       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
10428 
10429       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10430 \textcolor{keywordflow}{    end if}
10431 
10432 
10433     \textcolor{keyword}{allocate}( mask\_array( &
10434                             &    answer\_shape(1), &
10435                       
10436       &    answer\_shape(2), &
10437                       
10438       &    answer\_shape(3), &
10439                       
10440       &    answer\_shape(4), &
10441                       
10442       &    answer\_shape(5), &
10443                       
10444       &    answer\_shape(6), &
10445                       
10446       &    answer\_shape(7)  )  &
10447       &  )
10448 
10449     \textcolor{keyword}{allocate}( judge( &
10450                             &    answer\_shape(1), &
10451                       
10452       &    answer\_shape(2), &
10453                       
10454       &    answer\_shape(3), &
10455                       
10456       &    answer\_shape(4), &
10457                       
10458       &    answer\_shape(5), &
10459                       
10460       &    answer\_shape(6), &
10461                       
10462       &    answer\_shape(7)  )  &
10463       &  )
10464 
10465     \textcolor{keyword}{allocate}( judge\_rev( &
10466                             &    answer\_shape(1), &
10467                       
10468       &    answer\_shape(2), &
10469                       
10470       &    answer\_shape(3), &
10471                       
10472       &    answer\_shape(4), &
10473                       
10474       &    answer\_shape(5), &
10475                       
10476       &    answer\_shape(6), &
10477                       
10478       &    answer\_shape(7)  )  &
10479       &  )
10480 
10481     \textcolor{keyword}{allocate}( answer\_negative( &
10482                             &    answer\_shape(1), &
10483                       
10484       &    answer\_shape(2), &
10485                       
10486       &    answer\_shape(3), &
10487                       
10488       &    answer\_shape(4), &
10489                       
10490       &    answer\_shape(5), &
10491                       
10492       &    answer\_shape(6), &
10493                       
10494       &    answer\_shape(7)  )  &
10495       &  )
10496 
10497     \textcolor{keyword}{allocate}( check\_negative( &
10498                             &    answer\_shape(1), &
10499                       
10500       &    answer\_shape(2), &
10501                       
10502       &    answer\_shape(3), &
10503                       
10504       &    answer\_shape(4), &
10505                       
10506       &    answer\_shape(5), &
10507                       
10508       &    answer\_shape(6), &
10509                       
10510       &    answer\_shape(7)  )  &
10511       &  )
10512 
10513     \textcolor{keyword}{allocate}( both\_negative( &
10514                             &    answer\_shape(1), &
10515                       
10516       &    answer\_shape(2), &
10517                       
10518       &    answer\_shape(3), &
10519                       
10520       &    answer\_shape(4), &
10521                       
10522       &    answer\_shape(5), &
10523                       
10524       &    answer\_shape(6), &
10525                       
10526       &    answer\_shape(7)  )  &
10527       &  )
10528 
10529     answer\_negative = answer < 0
10530     check\_negative = check < 0
10531     both\_negative = answer\_negative .and. check\_negative
10532     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
10533 
10534     judge = answer < check
10535     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
10536 
10537     judge\_rev = .not. judge
10538     err\_flag = any(judge\_rev)
10539     mask\_array = 1
10540     pos = maxloc(mask\_array, judge\_rev)
10541 
10542     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10543 
10544       wrong = check( &
10545                               &    pos(1), &
10546                       
10547         &    pos(2), &
10548                       
10549         &    pos(3), &
10550                       
10551         &    pos(4), &
10552                       
10553         &    pos(5), &
10554                       
10555         &    pos(6), &
10556                       
10557         &    pos(7)  )
10558 
10559       right = answer( &
10560                               &    pos(1), &
10561                       
10562         &    pos(2), &
10563                       
10564         &    pos(3), &
10565                       
10566         &    pos(4), &
10567                       
10568         &    pos(5), &
10569                       
10570         &    pos(6), &
10571                       
10572         &    pos(7)  )
10573 
10574                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
10575                       
10576       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
10577                       
10578       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
10579                       
10580       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
10581                       
10582       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
10583                       
10584       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
10585                       
10586       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
10587                       
10588 
10589       pos\_str = \textcolor{stringliteral}{'('} // &
10590                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
10591                       
10592         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
10593                       
10594         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
10595                       
10596         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
10597                       
10598         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
10599                       
10600         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
10601                       
10602         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
10603 
10604       \textcolor{keywordflow}{if} ( both\_negative( &
10605                               &    pos(1), &
10606                       
10607         &    pos(2), &
10608                       
10609         &    pos(3), &
10610                       
10611         &    pos(4), &
10612                       
10613         &    pos(5), &
10614                       
10615         &    pos(6), &
10616                       
10617         &    pos(7)  )  ) \textcolor{keywordflow}{then}
10618 
10619         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
10620       \textcolor{keywordflow}{else}
10621         abs\_mes = \textcolor{stringliteral}{''}
10622 
10623 \textcolor{keywordflow}{      end if}
10624 
10625 \textcolor{keywordflow}{    end if}
10626     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
10627     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
10628 
10629                     
10630 
10631 
10632     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10633       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10634       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10635       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10636         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
10637       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
10638       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10639         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
10640 
10641       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10642     \textcolor{keywordflow}{else}
10643       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
10644 \textcolor{keywordflow}{    end if}
10645 
10646 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a8e7d337e2382b209a6bd00c8ca7ed4b1}\label{namespacedc__test_a8e7d337e2382b209a6bd00c8ca7ed4b1}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal0@{dctestassertgreaterthanreal0}}
\index{dctestassertgreaterthanreal0@{dctestassertgreaterthanreal0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal0()}{dctestassertgreaterthanreal0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, intent(in)}]{answer,  }\item[{real, intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 10652 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
10652     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
10653     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
10654     \textcolor{keywordtype}{implicit none}
10655     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
10656     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer
10657     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check
10658     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
10659     \textcolor{keywordtype}{logical}:: err\_flag
10660     \textcolor{keywordtype}{logical}:: negative\_support\_on
10661     \textcolor{keywordtype}{character(STRING)}:: pos\_str
10662     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
10663     \textcolor{keywordtype}{real}:: wrong, right
10664 
10665                                         
10666 
10667   \textcolor{keywordflow}{continue}
10668     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
10669       negative\_support\_on = negative\_support
10670     \textcolor{keywordflow}{else}
10671       negative\_support\_on = .true.
10672 \textcolor{keywordflow}{    end if}
10673 
10674     err\_flag = .false.
10675 
10676                     
10677     err\_flag = .not. answer < check
10678     abs\_mes = \textcolor{stringliteral}{''}
10679 
10680     \textcolor{keywordflow}{if} ( answer < 0.0 &
10681       &  .and. check < 0.0 &
10682       &  .and. negative\_support\_on ) \textcolor{keywordflow}{then}
10683 
10684       err\_flag = .not. err\_flag
10685       abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
10686 \textcolor{keywordflow}{    end if}
10687 
10688     wrong = check
10689     right = answer
10690     pos\_str = \textcolor{stringliteral}{''}
10691 
10692                     
10693 
10694 
10695     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10696       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10697       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10698       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10699         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
10700       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
10701       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10702         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
10703 
10704       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10705     \textcolor{keywordflow}{else}
10706       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
10707 \textcolor{keywordflow}{    end if}
10708 
10709 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae341bd97dabcef347be0870c1d9223f8}\label{namespacedc__test_ae341bd97dabcef347be0870c1d9223f8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal1@{dctestassertgreaterthanreal1}}
\index{dctestassertgreaterthanreal1@{dctestassertgreaterthanreal1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal1()}{dctestassertgreaterthanreal1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 10715 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
10715     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
10716     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
10717     \textcolor{keywordtype}{implicit none}
10718     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
10719     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:)
10720     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:)
10721     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
10722     \textcolor{keywordtype}{logical}:: err\_flag
10723     \textcolor{keywordtype}{logical}:: negative\_support\_on
10724     \textcolor{keywordtype}{character(STRING)}:: pos\_str
10725     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
10726     \textcolor{keywordtype}{real}:: wrong, right
10727 
10728                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
10729     \textcolor{keywordtype}{logical}:: consist\_shape(1)
10730     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
10731     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
10732     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
10733     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
10734     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
10735     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
10736     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
10737                     
10738 
10739   \textcolor{keywordflow}{continue}
10740     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
10741       negative\_support\_on = negative\_support
10742     \textcolor{keywordflow}{else}
10743       negative\_support\_on = .true.
10744 \textcolor{keywordflow}{    end if}
10745 
10746     err\_flag = .false.
10747 
10748                     
10749     answer\_shape = shape(answer)
10750     check\_shape = shape(check)
10751 
10752     consist\_shape = answer\_shape == check\_shape
10753 
10754     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
10755       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10756       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10757       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
10758       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
10759       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
10760 
10761       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10762 \textcolor{keywordflow}{    end if}
10763 
10764 
10765     \textcolor{keyword}{allocate}( mask\_array( &
10766                       
10767       &    answer\_shape(1)  )  &
10768       &  )
10769 
10770     \textcolor{keyword}{allocate}( judge( &
10771                       
10772       &    answer\_shape(1)  )  &
10773       &  )
10774 
10775     \textcolor{keyword}{allocate}( judge\_rev( &
10776                       
10777       &    answer\_shape(1)  )  &
10778       &  )
10779 
10780     \textcolor{keyword}{allocate}( answer\_negative( &
10781                       
10782       &    answer\_shape(1)  )  &
10783       &  )
10784 
10785     \textcolor{keyword}{allocate}( check\_negative( &
10786                       
10787       &    answer\_shape(1)  )  &
10788       &  )
10789 
10790     \textcolor{keyword}{allocate}( both\_negative( &
10791                       
10792       &    answer\_shape(1)  )  &
10793       &  )
10794 
10795     answer\_negative = answer < 0.0
10796     check\_negative = check < 0.0
10797     both\_negative = answer\_negative .and. check\_negative
10798     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
10799 
10800     judge = answer < check
10801     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
10802 
10803     judge\_rev = .not. judge
10804     err\_flag = any(judge\_rev)
10805     mask\_array = 1
10806     pos = maxloc(mask\_array, judge\_rev)
10807 
10808     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10809 
10810       wrong = check( &
10811                       
10812         &    pos(1)  )
10813 
10814       right = answer( &
10815                       
10816         &    pos(1)  )
10817 
10818                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
10819                       
10820 
10821       pos\_str = \textcolor{stringliteral}{'('} // &
10822                       
10823         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
10824 
10825       \textcolor{keywordflow}{if} ( both\_negative( &
10826                       
10827         &    pos(1)  )  ) \textcolor{keywordflow}{then}
10828 
10829         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
10830       \textcolor{keywordflow}{else}
10831         abs\_mes = \textcolor{stringliteral}{''}
10832 
10833 \textcolor{keywordflow}{      end if}
10834 
10835 \textcolor{keywordflow}{    end if}
10836     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
10837     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
10838 
10839                     
10840 
10841 
10842     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10843       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10844       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10845       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10846         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
10847       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
10848       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
10849         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
10850 
10851       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10852     \textcolor{keywordflow}{else}
10853       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
10854 \textcolor{keywordflow}{    end if}
10855 
10856 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a5b1106889d38e37ebb80632412b438ee}\label{namespacedc__test_a5b1106889d38e37ebb80632412b438ee}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal2@{dctestassertgreaterthanreal2}}
\index{dctestassertgreaterthanreal2@{dctestassertgreaterthanreal2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal2()}{dctestassertgreaterthanreal2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 10862 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
10862     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
10863     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
10864     \textcolor{keywordtype}{implicit none}
10865     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
10866     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
10867     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
10868     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
10869     \textcolor{keywordtype}{logical}:: err\_flag
10870     \textcolor{keywordtype}{logical}:: negative\_support\_on
10871     \textcolor{keywordtype}{character(STRING)}:: pos\_str
10872     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
10873     \textcolor{keywordtype}{real}:: wrong, right
10874 
10875                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
10876     \textcolor{keywordtype}{logical}:: consist\_shape(2)
10877     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
10878     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
10879     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
10880     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
10881     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
10882     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
10883     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
10884                     
10885 
10886   \textcolor{keywordflow}{continue}
10887     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
10888       negative\_support\_on = negative\_support
10889     \textcolor{keywordflow}{else}
10890       negative\_support\_on = .true.
10891 \textcolor{keywordflow}{    end if}
10892 
10893     err\_flag = .false.
10894 
10895                     
10896     answer\_shape = shape(answer)
10897     check\_shape = shape(check)
10898 
10899     consist\_shape = answer\_shape == check\_shape
10900 
10901     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
10902       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
10903       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
10904       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
10905       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
10906       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
10907 
10908       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
10909 \textcolor{keywordflow}{    end if}
10910 
10911 
10912     \textcolor{keyword}{allocate}( mask\_array( &
10913                             &    answer\_shape(1), &
10914                       
10915       &    answer\_shape(2)  )  &
10916       &  )
10917 
10918     \textcolor{keyword}{allocate}( judge( &
10919                             &    answer\_shape(1), &
10920                       
10921       &    answer\_shape(2)  )  &
10922       &  )
10923 
10924     \textcolor{keyword}{allocate}( judge\_rev( &
10925                             &    answer\_shape(1), &
10926                       
10927       &    answer\_shape(2)  )  &
10928       &  )
10929 
10930     \textcolor{keyword}{allocate}( answer\_negative( &
10931                             &    answer\_shape(1), &
10932                       
10933       &    answer\_shape(2)  )  &
10934       &  )
10935 
10936     \textcolor{keyword}{allocate}( check\_negative( &
10937                             &    answer\_shape(1), &
10938                       
10939       &    answer\_shape(2)  )  &
10940       &  )
10941 
10942     \textcolor{keyword}{allocate}( both\_negative( &
10943                             &    answer\_shape(1), &
10944                       
10945       &    answer\_shape(2)  )  &
10946       &  )
10947 
10948     answer\_negative = answer < 0.0
10949     check\_negative = check < 0.0
10950     both\_negative = answer\_negative .and. check\_negative
10951     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
10952 
10953     judge = answer < check
10954     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
10955 
10956     judge\_rev = .not. judge
10957     err\_flag = any(judge\_rev)
10958     mask\_array = 1
10959     pos = maxloc(mask\_array, judge\_rev)
10960 
10961     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
10962 
10963       wrong = check( &
10964                               &    pos(1), &
10965                       
10966         &    pos(2)  )
10967 
10968       right = answer( &
10969                               &    pos(1), &
10970                       
10971         &    pos(2)  )
10972 
10973                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
10974                       
10975       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
10976                       
10977 
10978       pos\_str = \textcolor{stringliteral}{'('} // &
10979                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
10980                       
10981         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
10982 
10983       \textcolor{keywordflow}{if} ( both\_negative( &
10984                               &    pos(1), &
10985                       
10986         &    pos(2)  )  ) \textcolor{keywordflow}{then}
10987 
10988         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
10989       \textcolor{keywordflow}{else}
10990         abs\_mes = \textcolor{stringliteral}{''}
10991 
10992 \textcolor{keywordflow}{      end if}
10993 
10994 \textcolor{keywordflow}{    end if}
10995     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
10996     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
10997 
10998                     
10999 
11000 
11001     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11002       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11003       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11004       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11005         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
11006       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
11007       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11008         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
11009 
11010       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11011     \textcolor{keywordflow}{else}
11012       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
11013 \textcolor{keywordflow}{    end if}
11014 
11015 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a791ec2153db5d84e2e1c7188bdfb65fa}\label{namespacedc__test_a791ec2153db5d84e2e1c7188bdfb65fa}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal3@{dctestassertgreaterthanreal3}}
\index{dctestassertgreaterthanreal3@{dctestassertgreaterthanreal3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal3()}{dctestassertgreaterthanreal3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 11021 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
11021     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
11022     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
11023     \textcolor{keywordtype}{implicit none}
11024     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
11025     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
11026     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
11027     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
11028     \textcolor{keywordtype}{logical}:: err\_flag
11029     \textcolor{keywordtype}{logical}:: negative\_support\_on
11030     \textcolor{keywordtype}{character(STRING)}:: pos\_str
11031     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
11032     \textcolor{keywordtype}{real}:: wrong, right
11033 
11034                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
11035     \textcolor{keywordtype}{logical}:: consist\_shape(3)
11036     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
11037     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
11038     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
11039     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
11040     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
11041     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
11042     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
11043                     
11044 
11045   \textcolor{keywordflow}{continue}
11046     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
11047       negative\_support\_on = negative\_support
11048     \textcolor{keywordflow}{else}
11049       negative\_support\_on = .true.
11050 \textcolor{keywordflow}{    end if}
11051 
11052     err\_flag = .false.
11053 
11054                     
11055     answer\_shape = shape(answer)
11056     check\_shape = shape(check)
11057 
11058     consist\_shape = answer\_shape == check\_shape
11059 
11060     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
11061       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11062       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11063       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
11064       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
11065       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
11066 
11067       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11068 \textcolor{keywordflow}{    end if}
11069 
11070 
11071     \textcolor{keyword}{allocate}( mask\_array( &
11072                             &    answer\_shape(1), &
11073                       
11074       &    answer\_shape(2), &
11075                       
11076       &    answer\_shape(3)  )  &
11077       &  )
11078 
11079     \textcolor{keyword}{allocate}( judge( &
11080                             &    answer\_shape(1), &
11081                       
11082       &    answer\_shape(2), &
11083                       
11084       &    answer\_shape(3)  )  &
11085       &  )
11086 
11087     \textcolor{keyword}{allocate}( judge\_rev( &
11088                             &    answer\_shape(1), &
11089                       
11090       &    answer\_shape(2), &
11091                       
11092       &    answer\_shape(3)  )  &
11093       &  )
11094 
11095     \textcolor{keyword}{allocate}( answer\_negative( &
11096                             &    answer\_shape(1), &
11097                       
11098       &    answer\_shape(2), &
11099                       
11100       &    answer\_shape(3)  )  &
11101       &  )
11102 
11103     \textcolor{keyword}{allocate}( check\_negative( &
11104                             &    answer\_shape(1), &
11105                       
11106       &    answer\_shape(2), &
11107                       
11108       &    answer\_shape(3)  )  &
11109       &  )
11110 
11111     \textcolor{keyword}{allocate}( both\_negative( &
11112                             &    answer\_shape(1), &
11113                       
11114       &    answer\_shape(2), &
11115                       
11116       &    answer\_shape(3)  )  &
11117       &  )
11118 
11119     answer\_negative = answer < 0.0
11120     check\_negative = check < 0.0
11121     both\_negative = answer\_negative .and. check\_negative
11122     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
11123 
11124     judge = answer < check
11125     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
11126 
11127     judge\_rev = .not. judge
11128     err\_flag = any(judge\_rev)
11129     mask\_array = 1
11130     pos = maxloc(mask\_array, judge\_rev)
11131 
11132     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11133 
11134       wrong = check( &
11135                               &    pos(1), &
11136                       
11137         &    pos(2), &
11138                       
11139         &    pos(3)  )
11140 
11141       right = answer( &
11142                               &    pos(1), &
11143                       
11144         &    pos(2), &
11145                       
11146         &    pos(3)  )
11147 
11148                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
11149                       
11150       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
11151                       
11152       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
11153                       
11154 
11155       pos\_str = \textcolor{stringliteral}{'('} // &
11156                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
11157                       
11158         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
11159                       
11160         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
11161 
11162       \textcolor{keywordflow}{if} ( both\_negative( &
11163                               &    pos(1), &
11164                       
11165         &    pos(2), &
11166                       
11167         &    pos(3)  )  ) \textcolor{keywordflow}{then}
11168 
11169         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
11170       \textcolor{keywordflow}{else}
11171         abs\_mes = \textcolor{stringliteral}{''}
11172 
11173 \textcolor{keywordflow}{      end if}
11174 
11175 \textcolor{keywordflow}{    end if}
11176     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
11177     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
11178 
11179                     
11180 
11181 
11182     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11183       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11184       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11185       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11186         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
11187       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
11188       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11189         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
11190 
11191       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11192     \textcolor{keywordflow}{else}
11193       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
11194 \textcolor{keywordflow}{    end if}
11195 
11196 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae3647e2ef4a57d9f049a02a3c839b694}\label{namespacedc__test_ae3647e2ef4a57d9f049a02a3c839b694}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal4@{dctestassertgreaterthanreal4}}
\index{dctestassertgreaterthanreal4@{dctestassertgreaterthanreal4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal4()}{dctestassertgreaterthanreal4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 11202 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
11202     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
11203     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
11204     \textcolor{keywordtype}{implicit none}
11205     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
11206     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
11207     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
11208     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
11209     \textcolor{keywordtype}{logical}:: err\_flag
11210     \textcolor{keywordtype}{logical}:: negative\_support\_on
11211     \textcolor{keywordtype}{character(STRING)}:: pos\_str
11212     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
11213     \textcolor{keywordtype}{real}:: wrong, right
11214 
11215                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
11216     \textcolor{keywordtype}{logical}:: consist\_shape(4)
11217     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
11218     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
11219     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
11220     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
11221     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
11222     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
11223     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
11224                     
11225 
11226   \textcolor{keywordflow}{continue}
11227     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
11228       negative\_support\_on = negative\_support
11229     \textcolor{keywordflow}{else}
11230       negative\_support\_on = .true.
11231 \textcolor{keywordflow}{    end if}
11232 
11233     err\_flag = .false.
11234 
11235                     
11236     answer\_shape = shape(answer)
11237     check\_shape = shape(check)
11238 
11239     consist\_shape = answer\_shape == check\_shape
11240 
11241     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
11242       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11243       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11244       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
11245       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
11246       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
11247 
11248       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11249 \textcolor{keywordflow}{    end if}
11250 
11251 
11252     \textcolor{keyword}{allocate}( mask\_array( &
11253                             &    answer\_shape(1), &
11254                       
11255       &    answer\_shape(2), &
11256                       
11257       &    answer\_shape(3), &
11258                       
11259       &    answer\_shape(4)  )  &
11260       &  )
11261 
11262     \textcolor{keyword}{allocate}( judge( &
11263                             &    answer\_shape(1), &
11264                       
11265       &    answer\_shape(2), &
11266                       
11267       &    answer\_shape(3), &
11268                       
11269       &    answer\_shape(4)  )  &
11270       &  )
11271 
11272     \textcolor{keyword}{allocate}( judge\_rev( &
11273                             &    answer\_shape(1), &
11274                       
11275       &    answer\_shape(2), &
11276                       
11277       &    answer\_shape(3), &
11278                       
11279       &    answer\_shape(4)  )  &
11280       &  )
11281 
11282     \textcolor{keyword}{allocate}( answer\_negative( &
11283                             &    answer\_shape(1), &
11284                       
11285       &    answer\_shape(2), &
11286                       
11287       &    answer\_shape(3), &
11288                       
11289       &    answer\_shape(4)  )  &
11290       &  )
11291 
11292     \textcolor{keyword}{allocate}( check\_negative( &
11293                             &    answer\_shape(1), &
11294                       
11295       &    answer\_shape(2), &
11296                       
11297       &    answer\_shape(3), &
11298                       
11299       &    answer\_shape(4)  )  &
11300       &  )
11301 
11302     \textcolor{keyword}{allocate}( both\_negative( &
11303                             &    answer\_shape(1), &
11304                       
11305       &    answer\_shape(2), &
11306                       
11307       &    answer\_shape(3), &
11308                       
11309       &    answer\_shape(4)  )  &
11310       &  )
11311 
11312     answer\_negative = answer < 0.0
11313     check\_negative = check < 0.0
11314     both\_negative = answer\_negative .and. check\_negative
11315     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
11316 
11317     judge = answer < check
11318     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
11319 
11320     judge\_rev = .not. judge
11321     err\_flag = any(judge\_rev)
11322     mask\_array = 1
11323     pos = maxloc(mask\_array, judge\_rev)
11324 
11325     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11326 
11327       wrong = check( &
11328                               &    pos(1), &
11329                       
11330         &    pos(2), &
11331                       
11332         &    pos(3), &
11333                       
11334         &    pos(4)  )
11335 
11336       right = answer( &
11337                               &    pos(1), &
11338                       
11339         &    pos(2), &
11340                       
11341         &    pos(3), &
11342                       
11343         &    pos(4)  )
11344 
11345                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
11346                       
11347       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
11348                       
11349       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
11350                       
11351       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
11352                       
11353 
11354       pos\_str = \textcolor{stringliteral}{'('} // &
11355                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
11356                       
11357         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
11358                       
11359         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
11360                       
11361         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
11362 
11363       \textcolor{keywordflow}{if} ( both\_negative( &
11364                               &    pos(1), &
11365                       
11366         &    pos(2), &
11367                       
11368         &    pos(3), &
11369                       
11370         &    pos(4)  )  ) \textcolor{keywordflow}{then}
11371 
11372         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
11373       \textcolor{keywordflow}{else}
11374         abs\_mes = \textcolor{stringliteral}{''}
11375 
11376 \textcolor{keywordflow}{      end if}
11377 
11378 \textcolor{keywordflow}{    end if}
11379     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
11380     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
11381 
11382                     
11383 
11384 
11385     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11386       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11387       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11388       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11389         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
11390       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
11391       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11392         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
11393 
11394       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11395     \textcolor{keywordflow}{else}
11396       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
11397 \textcolor{keywordflow}{    end if}
11398 
11399 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a596e0f0e8efda2345c197bd2107f9101}\label{namespacedc__test_a596e0f0e8efda2345c197bd2107f9101}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal5@{dctestassertgreaterthanreal5}}
\index{dctestassertgreaterthanreal5@{dctestassertgreaterthanreal5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal5()}{dctestassertgreaterthanreal5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 11405 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
11405     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
11406     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
11407     \textcolor{keywordtype}{implicit none}
11408     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
11409     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
11410     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
11411     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
11412     \textcolor{keywordtype}{logical}:: err\_flag
11413     \textcolor{keywordtype}{logical}:: negative\_support\_on
11414     \textcolor{keywordtype}{character(STRING)}:: pos\_str
11415     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
11416     \textcolor{keywordtype}{real}:: wrong, right
11417 
11418                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
11419     \textcolor{keywordtype}{logical}:: consist\_shape(5)
11420     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
11421     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
11422     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
11423     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
11424     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
11425     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
11426     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
11427                     
11428 
11429   \textcolor{keywordflow}{continue}
11430     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
11431       negative\_support\_on = negative\_support
11432     \textcolor{keywordflow}{else}
11433       negative\_support\_on = .true.
11434 \textcolor{keywordflow}{    end if}
11435 
11436     err\_flag = .false.
11437 
11438                     
11439     answer\_shape = shape(answer)
11440     check\_shape = shape(check)
11441 
11442     consist\_shape = answer\_shape == check\_shape
11443 
11444     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
11445       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11446       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11447       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
11448       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
11449       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
11450 
11451       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11452 \textcolor{keywordflow}{    end if}
11453 
11454 
11455     \textcolor{keyword}{allocate}( mask\_array( &
11456                             &    answer\_shape(1), &
11457                       
11458       &    answer\_shape(2), &
11459                       
11460       &    answer\_shape(3), &
11461                       
11462       &    answer\_shape(4), &
11463                       
11464       &    answer\_shape(5)  )  &
11465       &  )
11466 
11467     \textcolor{keyword}{allocate}( judge( &
11468                             &    answer\_shape(1), &
11469                       
11470       &    answer\_shape(2), &
11471                       
11472       &    answer\_shape(3), &
11473                       
11474       &    answer\_shape(4), &
11475                       
11476       &    answer\_shape(5)  )  &
11477       &  )
11478 
11479     \textcolor{keyword}{allocate}( judge\_rev( &
11480                             &    answer\_shape(1), &
11481                       
11482       &    answer\_shape(2), &
11483                       
11484       &    answer\_shape(3), &
11485                       
11486       &    answer\_shape(4), &
11487                       
11488       &    answer\_shape(5)  )  &
11489       &  )
11490 
11491     \textcolor{keyword}{allocate}( answer\_negative( &
11492                             &    answer\_shape(1), &
11493                       
11494       &    answer\_shape(2), &
11495                       
11496       &    answer\_shape(3), &
11497                       
11498       &    answer\_shape(4), &
11499                       
11500       &    answer\_shape(5)  )  &
11501       &  )
11502 
11503     \textcolor{keyword}{allocate}( check\_negative( &
11504                             &    answer\_shape(1), &
11505                       
11506       &    answer\_shape(2), &
11507                       
11508       &    answer\_shape(3), &
11509                       
11510       &    answer\_shape(4), &
11511                       
11512       &    answer\_shape(5)  )  &
11513       &  )
11514 
11515     \textcolor{keyword}{allocate}( both\_negative( &
11516                             &    answer\_shape(1), &
11517                       
11518       &    answer\_shape(2), &
11519                       
11520       &    answer\_shape(3), &
11521                       
11522       &    answer\_shape(4), &
11523                       
11524       &    answer\_shape(5)  )  &
11525       &  )
11526 
11527     answer\_negative = answer < 0.0
11528     check\_negative = check < 0.0
11529     both\_negative = answer\_negative .and. check\_negative
11530     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
11531 
11532     judge = answer < check
11533     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
11534 
11535     judge\_rev = .not. judge
11536     err\_flag = any(judge\_rev)
11537     mask\_array = 1
11538     pos = maxloc(mask\_array, judge\_rev)
11539 
11540     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11541 
11542       wrong = check( &
11543                               &    pos(1), &
11544                       
11545         &    pos(2), &
11546                       
11547         &    pos(3), &
11548                       
11549         &    pos(4), &
11550                       
11551         &    pos(5)  )
11552 
11553       right = answer( &
11554                               &    pos(1), &
11555                       
11556         &    pos(2), &
11557                       
11558         &    pos(3), &
11559                       
11560         &    pos(4), &
11561                       
11562         &    pos(5)  )
11563 
11564                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
11565                       
11566       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
11567                       
11568       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
11569                       
11570       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
11571                       
11572       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
11573                       
11574 
11575       pos\_str = \textcolor{stringliteral}{'('} // &
11576                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
11577                       
11578         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
11579                       
11580         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
11581                       
11582         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
11583                       
11584         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
11585 
11586       \textcolor{keywordflow}{if} ( both\_negative( &
11587                               &    pos(1), &
11588                       
11589         &    pos(2), &
11590                       
11591         &    pos(3), &
11592                       
11593         &    pos(4), &
11594                       
11595         &    pos(5)  )  ) \textcolor{keywordflow}{then}
11596 
11597         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
11598       \textcolor{keywordflow}{else}
11599         abs\_mes = \textcolor{stringliteral}{''}
11600 
11601 \textcolor{keywordflow}{      end if}
11602 
11603 \textcolor{keywordflow}{    end if}
11604     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
11605     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
11606 
11607                     
11608 
11609 
11610     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11611       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11612       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11613       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11614         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
11615       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
11616       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11617         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
11618 
11619       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11620     \textcolor{keywordflow}{else}
11621       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
11622 \textcolor{keywordflow}{    end if}
11623 
11624 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a81a38f84f9cb098bb01c2f6bc49b0d82}\label{namespacedc__test_a81a38f84f9cb098bb01c2f6bc49b0d82}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal6@{dctestassertgreaterthanreal6}}
\index{dctestassertgreaterthanreal6@{dctestassertgreaterthanreal6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal6()}{dctestassertgreaterthanreal6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 11630 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
11630     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
11631     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
11632     \textcolor{keywordtype}{implicit none}
11633     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
11634     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
11635     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
11636     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
11637     \textcolor{keywordtype}{logical}:: err\_flag
11638     \textcolor{keywordtype}{logical}:: negative\_support\_on
11639     \textcolor{keywordtype}{character(STRING)}:: pos\_str
11640     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
11641     \textcolor{keywordtype}{real}:: wrong, right
11642 
11643                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
11644     \textcolor{keywordtype}{logical}:: consist\_shape(6)
11645     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
11646     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
11647     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
11648     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
11649     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
11650     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
11651     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
11652                     
11653 
11654   \textcolor{keywordflow}{continue}
11655     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
11656       negative\_support\_on = negative\_support
11657     \textcolor{keywordflow}{else}
11658       negative\_support\_on = .true.
11659 \textcolor{keywordflow}{    end if}
11660 
11661     err\_flag = .false.
11662 
11663                     
11664     answer\_shape = shape(answer)
11665     check\_shape = shape(check)
11666 
11667     consist\_shape = answer\_shape == check\_shape
11668 
11669     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
11670       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11671       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11672       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
11673       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
11674       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
11675 
11676       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11677 \textcolor{keywordflow}{    end if}
11678 
11679 
11680     \textcolor{keyword}{allocate}( mask\_array( &
11681                             &    answer\_shape(1), &
11682                       
11683       &    answer\_shape(2), &
11684                       
11685       &    answer\_shape(3), &
11686                       
11687       &    answer\_shape(4), &
11688                       
11689       &    answer\_shape(5), &
11690                       
11691       &    answer\_shape(6)  )  &
11692       &  )
11693 
11694     \textcolor{keyword}{allocate}( judge( &
11695                             &    answer\_shape(1), &
11696                       
11697       &    answer\_shape(2), &
11698                       
11699       &    answer\_shape(3), &
11700                       
11701       &    answer\_shape(4), &
11702                       
11703       &    answer\_shape(5), &
11704                       
11705       &    answer\_shape(6)  )  &
11706       &  )
11707 
11708     \textcolor{keyword}{allocate}( judge\_rev( &
11709                             &    answer\_shape(1), &
11710                       
11711       &    answer\_shape(2), &
11712                       
11713       &    answer\_shape(3), &
11714                       
11715       &    answer\_shape(4), &
11716                       
11717       &    answer\_shape(5), &
11718                       
11719       &    answer\_shape(6)  )  &
11720       &  )
11721 
11722     \textcolor{keyword}{allocate}( answer\_negative( &
11723                             &    answer\_shape(1), &
11724                       
11725       &    answer\_shape(2), &
11726                       
11727       &    answer\_shape(3), &
11728                       
11729       &    answer\_shape(4), &
11730                       
11731       &    answer\_shape(5), &
11732                       
11733       &    answer\_shape(6)  )  &
11734       &  )
11735 
11736     \textcolor{keyword}{allocate}( check\_negative( &
11737                             &    answer\_shape(1), &
11738                       
11739       &    answer\_shape(2), &
11740                       
11741       &    answer\_shape(3), &
11742                       
11743       &    answer\_shape(4), &
11744                       
11745       &    answer\_shape(5), &
11746                       
11747       &    answer\_shape(6)  )  &
11748       &  )
11749 
11750     \textcolor{keyword}{allocate}( both\_negative( &
11751                             &    answer\_shape(1), &
11752                       
11753       &    answer\_shape(2), &
11754                       
11755       &    answer\_shape(3), &
11756                       
11757       &    answer\_shape(4), &
11758                       
11759       &    answer\_shape(5), &
11760                       
11761       &    answer\_shape(6)  )  &
11762       &  )
11763 
11764     answer\_negative = answer < 0.0
11765     check\_negative = check < 0.0
11766     both\_negative = answer\_negative .and. check\_negative
11767     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
11768 
11769     judge = answer < check
11770     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
11771 
11772     judge\_rev = .not. judge
11773     err\_flag = any(judge\_rev)
11774     mask\_array = 1
11775     pos = maxloc(mask\_array, judge\_rev)
11776 
11777     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11778 
11779       wrong = check( &
11780                               &    pos(1), &
11781                       
11782         &    pos(2), &
11783                       
11784         &    pos(3), &
11785                       
11786         &    pos(4), &
11787                       
11788         &    pos(5), &
11789                       
11790         &    pos(6)  )
11791 
11792       right = answer( &
11793                               &    pos(1), &
11794                       
11795         &    pos(2), &
11796                       
11797         &    pos(3), &
11798                       
11799         &    pos(4), &
11800                       
11801         &    pos(5), &
11802                       
11803         &    pos(6)  )
11804 
11805                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
11806                       
11807       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
11808                       
11809       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
11810                       
11811       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
11812                       
11813       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
11814                       
11815       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
11816                       
11817 
11818       pos\_str = \textcolor{stringliteral}{'('} // &
11819                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
11820                       
11821         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
11822                       
11823         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
11824                       
11825         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
11826                       
11827         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
11828                       
11829         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
11830 
11831       \textcolor{keywordflow}{if} ( both\_negative( &
11832                               &    pos(1), &
11833                       
11834         &    pos(2), &
11835                       
11836         &    pos(3), &
11837                       
11838         &    pos(4), &
11839                       
11840         &    pos(5), &
11841                       
11842         &    pos(6)  )  ) \textcolor{keywordflow}{then}
11843 
11844         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
11845       \textcolor{keywordflow}{else}
11846         abs\_mes = \textcolor{stringliteral}{''}
11847 
11848 \textcolor{keywordflow}{      end if}
11849 
11850 \textcolor{keywordflow}{    end if}
11851     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
11852     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
11853 
11854                     
11855 
11856 
11857     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
11858       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11859       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11860       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11861         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
11862       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
11863       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
11864         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
11865 
11866       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11867     \textcolor{keywordflow}{else}
11868       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
11869 \textcolor{keywordflow}{    end if}
11870 
11871 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_af88ec25984569bc54e1a5ccbddf7845f}\label{namespacedc__test_af88ec25984569bc54e1a5ccbddf7845f}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertgreaterthanreal7@{dctestassertgreaterthanreal7}}
\index{dctestassertgreaterthanreal7@{dctestassertgreaterthanreal7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertgreaterthanreal7()}{dctestassertgreaterthanreal7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertgreaterthanreal7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 11877 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
11877     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
11878     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
11879     \textcolor{keywordtype}{implicit none}
11880     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
11881     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
11882     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
11883     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
11884     \textcolor{keywordtype}{logical}:: err\_flag
11885     \textcolor{keywordtype}{logical}:: negative\_support\_on
11886     \textcolor{keywordtype}{character(STRING)}:: pos\_str
11887     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
11888     \textcolor{keywordtype}{real}:: wrong, right
11889 
11890                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
11891     \textcolor{keywordtype}{logical}:: consist\_shape(7)
11892     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
11893     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
11894     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
11895     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
11896     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
11897     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
11898     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
11899                     
11900 
11901   \textcolor{keywordflow}{continue}
11902     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
11903       negative\_support\_on = negative\_support
11904     \textcolor{keywordflow}{else}
11905       negative\_support\_on = .true.
11906 \textcolor{keywordflow}{    end if}
11907 
11908     err\_flag = .false.
11909 
11910                     
11911     answer\_shape = shape(answer)
11912     check\_shape = shape(check)
11913 
11914     consist\_shape = answer\_shape == check\_shape
11915 
11916     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
11917       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
11918       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
11919       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
11920       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
11921       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
11922 
11923       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
11924 \textcolor{keywordflow}{    end if}
11925 
11926 
11927     \textcolor{keyword}{allocate}( mask\_array( &
11928                             &    answer\_shape(1), &
11929                       
11930       &    answer\_shape(2), &
11931                       
11932       &    answer\_shape(3), &
11933                       
11934       &    answer\_shape(4), &
11935                       
11936       &    answer\_shape(5), &
11937                       
11938       &    answer\_shape(6), &
11939                       
11940       &    answer\_shape(7)  )  &
11941       &  )
11942 
11943     \textcolor{keyword}{allocate}( judge( &
11944                             &    answer\_shape(1), &
11945                       
11946       &    answer\_shape(2), &
11947                       
11948       &    answer\_shape(3), &
11949                       
11950       &    answer\_shape(4), &
11951                       
11952       &    answer\_shape(5), &
11953                       
11954       &    answer\_shape(6), &
11955                       
11956       &    answer\_shape(7)  )  &
11957       &  )
11958 
11959     \textcolor{keyword}{allocate}( judge\_rev( &
11960                             &    answer\_shape(1), &
11961                       
11962       &    answer\_shape(2), &
11963                       
11964       &    answer\_shape(3), &
11965                       
11966       &    answer\_shape(4), &
11967                       
11968       &    answer\_shape(5), &
11969                       
11970       &    answer\_shape(6), &
11971                       
11972       &    answer\_shape(7)  )  &
11973       &  )
11974 
11975     \textcolor{keyword}{allocate}( answer\_negative( &
11976                             &    answer\_shape(1), &
11977                       
11978       &    answer\_shape(2), &
11979                       
11980       &    answer\_shape(3), &
11981                       
11982       &    answer\_shape(4), &
11983                       
11984       &    answer\_shape(5), &
11985                       
11986       &    answer\_shape(6), &
11987                       
11988       &    answer\_shape(7)  )  &
11989       &  )
11990 
11991     \textcolor{keyword}{allocate}( check\_negative( &
11992                             &    answer\_shape(1), &
11993                       
11994       &    answer\_shape(2), &
11995                       
11996       &    answer\_shape(3), &
11997                       
11998       &    answer\_shape(4), &
11999                       
12000       &    answer\_shape(5), &
12001                       
12002       &    answer\_shape(6), &
12003                       
12004       &    answer\_shape(7)  )  &
12005       &  )
12006 
12007     \textcolor{keyword}{allocate}( both\_negative( &
12008                             &    answer\_shape(1), &
12009                       
12010       &    answer\_shape(2), &
12011                       
12012       &    answer\_shape(3), &
12013                       
12014       &    answer\_shape(4), &
12015                       
12016       &    answer\_shape(5), &
12017                       
12018       &    answer\_shape(6), &
12019                       
12020       &    answer\_shape(7)  )  &
12021       &  )
12022 
12023     answer\_negative = answer < 0.0
12024     check\_negative = check < 0.0
12025     both\_negative = answer\_negative .and. check\_negative
12026     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
12027 
12028     judge = answer < check
12029     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
12030 
12031     judge\_rev = .not. judge
12032     err\_flag = any(judge\_rev)
12033     mask\_array = 1
12034     pos = maxloc(mask\_array, judge\_rev)
12035 
12036     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12037 
12038       wrong = check( &
12039                               &    pos(1), &
12040                       
12041         &    pos(2), &
12042                       
12043         &    pos(3), &
12044                       
12045         &    pos(4), &
12046                       
12047         &    pos(5), &
12048                       
12049         &    pos(6), &
12050                       
12051         &    pos(7)  )
12052 
12053       right = answer( &
12054                               &    pos(1), &
12055                       
12056         &    pos(2), &
12057                       
12058         &    pos(3), &
12059                       
12060         &    pos(4), &
12061                       
12062         &    pos(5), &
12063                       
12064         &    pos(6), &
12065                       
12066         &    pos(7)  )
12067 
12068                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
12069                       
12070       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
12071                       
12072       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
12073                       
12074       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
12075                       
12076       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
12077                       
12078       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
12079                       
12080       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
12081                       
12082 
12083       pos\_str = \textcolor{stringliteral}{'('} // &
12084                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
12085                       
12086         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
12087                       
12088         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
12089                       
12090         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
12091                       
12092         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
12093                       
12094         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
12095                       
12096         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
12097 
12098       \textcolor{keywordflow}{if} ( both\_negative( &
12099                               &    pos(1), &
12100                       
12101         &    pos(2), &
12102                       
12103         &    pos(3), &
12104                       
12105         &    pos(4), &
12106                       
12107         &    pos(5), &
12108                       
12109         &    pos(6), &
12110                       
12111         &    pos(7)  )  ) \textcolor{keywordflow}{then}
12112 
12113         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
12114       \textcolor{keywordflow}{else}
12115         abs\_mes = \textcolor{stringliteral}{''}
12116 
12117 \textcolor{keywordflow}{      end if}
12118 
12119 \textcolor{keywordflow}{    end if}
12120     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
12121     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
12122 
12123                     
12124 
12125 
12126     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
12127       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
12128       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
12129       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12130         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
12131       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT GREATER THAN'}
12132       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
12133         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
12134 
12135       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
12136     \textcolor{keywordflow}{else}
12137       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertGT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
12138 \textcolor{keywordflow}{    end if}
12139 
12140 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a3727a37d042d81599b3df0e2be0f5838}\label{namespacedc__test_a3727a37d042d81599b3df0e2be0f5838}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble0@{dctestassertlessthandouble0}}
\index{dctestassertlessthandouble0@{dctestassertlessthandouble0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble0()}{dctestassertlessthandouble0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), intent(in)}]{answer,  }\item[{real(dp), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 16632 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
16632     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
16633     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
16634     \textcolor{keywordtype}{implicit none}
16635     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
16636     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer
16637     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check
16638     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
16639     \textcolor{keywordtype}{logical}:: err\_flag
16640     \textcolor{keywordtype}{logical}:: negative\_support\_on
16641     \textcolor{keywordtype}{character(STRING)}:: pos\_str
16642     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
16643     \textcolor{keywordtype}{real(DP)}:: wrong, right
16644 
16645                                         
16646 
16647   \textcolor{keywordflow}{continue}
16648     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
16649       negative\_support\_on = negative\_support
16650     \textcolor{keywordflow}{else}
16651       negative\_support\_on = .true.
16652 \textcolor{keywordflow}{    end if}
16653 
16654     err\_flag = .false.
16655 
16656                     
16657 
16658 
16659     err\_flag = .not. answer > check
16660     abs\_mes = \textcolor{stringliteral}{''}
16661 
16662     \textcolor{keywordflow}{if} ( answer < 0.0\_dp &
16663       &  .and. check < 0.0\_dp &
16664       &  .and. negative\_support\_on ) \textcolor{keywordflow}{then}
16665 
16666       err\_flag = .not. err\_flag
16667       abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
16668 \textcolor{keywordflow}{    end if}
16669 
16670     wrong = check
16671     right = answer
16672     pos\_str = \textcolor{stringliteral}{''}
16673 
16674                     
16675 
16676 
16677     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16678       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16679       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16680       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16681         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
16682       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
16683       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16684         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
16685 
16686       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16687     \textcolor{keywordflow}{else}
16688       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
16689 \textcolor{keywordflow}{    end if}
16690 
16691 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aa5cba3200e9de3818cfc3da6fe703d55}\label{namespacedc__test_aa5cba3200e9de3818cfc3da6fe703d55}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble1@{dctestassertlessthandouble1}}
\index{dctestassertlessthandouble1@{dctestassertlessthandouble1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble1()}{dctestassertlessthandouble1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 16697 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
16697     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
16698     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
16699     \textcolor{keywordtype}{implicit none}
16700     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
16701     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:)
16702     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:)
16703     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
16704     \textcolor{keywordtype}{logical}:: err\_flag
16705     \textcolor{keywordtype}{logical}:: negative\_support\_on
16706     \textcolor{keywordtype}{character(STRING)}:: pos\_str
16707     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
16708     \textcolor{keywordtype}{real(DP)}:: wrong, right
16709 
16710                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
16711     \textcolor{keywordtype}{logical}:: consist\_shape(1)
16712     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
16713     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
16714     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
16715     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
16716     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
16717     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
16718     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
16719                     
16720 
16721   \textcolor{keywordflow}{continue}
16722     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
16723       negative\_support\_on = negative\_support
16724     \textcolor{keywordflow}{else}
16725       negative\_support\_on = .true.
16726 \textcolor{keywordflow}{    end if}
16727 
16728     err\_flag = .false.
16729 
16730                     
16731     answer\_shape = shape(answer)
16732     check\_shape = shape(check)
16733 
16734     consist\_shape = answer\_shape == check\_shape
16735 
16736     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
16737       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16738       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16739       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
16740       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
16741       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
16742 
16743       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16744 \textcolor{keywordflow}{    end if}
16745 
16746 
16747     \textcolor{keyword}{allocate}( mask\_array( &
16748                       
16749       &    answer\_shape(1)  )  &
16750       &  )
16751 
16752     \textcolor{keyword}{allocate}( judge( &
16753                       
16754       &    answer\_shape(1)  )  &
16755       &  )
16756 
16757     \textcolor{keyword}{allocate}( judge\_rev( &
16758                       
16759       &    answer\_shape(1)  )  &
16760       &  )
16761 
16762     \textcolor{keyword}{allocate}( answer\_negative( &
16763                       
16764       &    answer\_shape(1)  )  &
16765       &  )
16766 
16767     \textcolor{keyword}{allocate}( check\_negative( &
16768                       
16769       &    answer\_shape(1)  )  &
16770       &  )
16771 
16772     \textcolor{keyword}{allocate}( both\_negative( &
16773                       
16774       &    answer\_shape(1)  )  &
16775       &  )
16776 
16777     answer\_negative = answer < 0.0\_dp
16778     check\_negative = check < 0.0\_dp
16779     both\_negative = answer\_negative .and. check\_negative
16780     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
16781 
16782     judge = answer > check
16783     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
16784 
16785     judge\_rev = .not. judge
16786     err\_flag = any(judge\_rev)
16787     mask\_array = 1
16788     pos = maxloc(mask\_array, judge\_rev)
16789 
16790     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16791 
16792       wrong = check( &
16793                       
16794         &    pos(1)  )
16795 
16796       right = answer( &
16797                       
16798         &    pos(1)  )
16799 
16800                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
16801                       
16802 
16803       pos\_str = \textcolor{stringliteral}{'('} // &
16804                       
16805         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
16806 
16807       \textcolor{keywordflow}{if} ( both\_negative( &
16808                       
16809         &    pos(1)  )  ) \textcolor{keywordflow}{then}
16810 
16811         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
16812       \textcolor{keywordflow}{else}
16813         abs\_mes = \textcolor{stringliteral}{''}
16814 
16815 \textcolor{keywordflow}{      end if}
16816 
16817 \textcolor{keywordflow}{    end if}
16818     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
16819     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
16820 
16821                     
16822 
16823 
16824     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16825       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16826       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16827       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16828         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
16829       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
16830       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16831         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
16832 
16833       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16834     \textcolor{keywordflow}{else}
16835       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
16836 \textcolor{keywordflow}{    end if}
16837 
16838 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aeb35c473e5a0246ccff623fb869fcc81}\label{namespacedc__test_aeb35c473e5a0246ccff623fb869fcc81}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble2@{dctestassertlessthandouble2}}
\index{dctestassertlessthandouble2@{dctestassertlessthandouble2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble2()}{dctestassertlessthandouble2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 16844 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
16844     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
16845     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
16846     \textcolor{keywordtype}{implicit none}
16847     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
16848     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
16849     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
16850     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
16851     \textcolor{keywordtype}{logical}:: err\_flag
16852     \textcolor{keywordtype}{logical}:: negative\_support\_on
16853     \textcolor{keywordtype}{character(STRING)}:: pos\_str
16854     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
16855     \textcolor{keywordtype}{real(DP)}:: wrong, right
16856 
16857                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
16858     \textcolor{keywordtype}{logical}:: consist\_shape(2)
16859     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
16860     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
16861     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
16862     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
16863     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
16864     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
16865     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
16866                     
16867 
16868   \textcolor{keywordflow}{continue}
16869     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
16870       negative\_support\_on = negative\_support
16871     \textcolor{keywordflow}{else}
16872       negative\_support\_on = .true.
16873 \textcolor{keywordflow}{    end if}
16874 
16875     err\_flag = .false.
16876 
16877                     
16878     answer\_shape = shape(answer)
16879     check\_shape = shape(check)
16880 
16881     consist\_shape = answer\_shape == check\_shape
16882 
16883     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
16884       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16885       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16886       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
16887       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
16888       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
16889 
16890       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16891 \textcolor{keywordflow}{    end if}
16892 
16893 
16894     \textcolor{keyword}{allocate}( mask\_array( &
16895                             &    answer\_shape(1), &
16896                       
16897       &    answer\_shape(2)  )  &
16898       &  )
16899 
16900     \textcolor{keyword}{allocate}( judge( &
16901                             &    answer\_shape(1), &
16902                       
16903       &    answer\_shape(2)  )  &
16904       &  )
16905 
16906     \textcolor{keyword}{allocate}( judge\_rev( &
16907                             &    answer\_shape(1), &
16908                       
16909       &    answer\_shape(2)  )  &
16910       &  )
16911 
16912     \textcolor{keyword}{allocate}( answer\_negative( &
16913                             &    answer\_shape(1), &
16914                       
16915       &    answer\_shape(2)  )  &
16916       &  )
16917 
16918     \textcolor{keyword}{allocate}( check\_negative( &
16919                             &    answer\_shape(1), &
16920                       
16921       &    answer\_shape(2)  )  &
16922       &  )
16923 
16924     \textcolor{keyword}{allocate}( both\_negative( &
16925                             &    answer\_shape(1), &
16926                       
16927       &    answer\_shape(2)  )  &
16928       &  )
16929 
16930     answer\_negative = answer < 0.0\_dp
16931     check\_negative = check < 0.0\_dp
16932     both\_negative = answer\_negative .and. check\_negative
16933     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
16934 
16935     judge = answer > check
16936     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
16937 
16938     judge\_rev = .not. judge
16939     err\_flag = any(judge\_rev)
16940     mask\_array = 1
16941     pos = maxloc(mask\_array, judge\_rev)
16942 
16943     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16944 
16945       wrong = check( &
16946                               &    pos(1), &
16947                       
16948         &    pos(2)  )
16949 
16950       right = answer( &
16951                               &    pos(1), &
16952                       
16953         &    pos(2)  )
16954 
16955                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
16956                       
16957       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
16958                       
16959 
16960       pos\_str = \textcolor{stringliteral}{'('} // &
16961                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
16962                       
16963         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
16964 
16965       \textcolor{keywordflow}{if} ( both\_negative( &
16966                               &    pos(1), &
16967                       
16968         &    pos(2)  )  ) \textcolor{keywordflow}{then}
16969 
16970         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
16971       \textcolor{keywordflow}{else}
16972         abs\_mes = \textcolor{stringliteral}{''}
16973 
16974 \textcolor{keywordflow}{      end if}
16975 
16976 \textcolor{keywordflow}{    end if}
16977     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
16978     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
16979 
16980                     
16981 
16982 
16983     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16984       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16985       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16986       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16987         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
16988       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
16989       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16990         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
16991 
16992       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16993     \textcolor{keywordflow}{else}
16994       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
16995 \textcolor{keywordflow}{    end if}
16996 
16997 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ac110054574a0812a479172f725ce84d1}\label{namespacedc__test_ac110054574a0812a479172f725ce84d1}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble3@{dctestassertlessthandouble3}}
\index{dctestassertlessthandouble3@{dctestassertlessthandouble3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble3()}{dctestassertlessthandouble3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 17003 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
17003     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
17004     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
17005     \textcolor{keywordtype}{implicit none}
17006     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
17007     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
17008     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
17009     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
17010     \textcolor{keywordtype}{logical}:: err\_flag
17011     \textcolor{keywordtype}{logical}:: negative\_support\_on
17012     \textcolor{keywordtype}{character(STRING)}:: pos\_str
17013     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
17014     \textcolor{keywordtype}{real(DP)}:: wrong, right
17015 
17016                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
17017     \textcolor{keywordtype}{logical}:: consist\_shape(3)
17018     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
17019     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
17020     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
17021     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
17022     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
17023     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
17024     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
17025                     
17026 
17027   \textcolor{keywordflow}{continue}
17028     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
17029       negative\_support\_on = negative\_support
17030     \textcolor{keywordflow}{else}
17031       negative\_support\_on = .true.
17032 \textcolor{keywordflow}{    end if}
17033 
17034     err\_flag = .false.
17035 
17036                     
17037     answer\_shape = shape(answer)
17038     check\_shape = shape(check)
17039 
17040     consist\_shape = answer\_shape == check\_shape
17041 
17042     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
17043       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17044       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17045       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
17046       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
17047       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
17048 
17049       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17050 \textcolor{keywordflow}{    end if}
17051 
17052 
17053     \textcolor{keyword}{allocate}( mask\_array( &
17054                             &    answer\_shape(1), &
17055                       
17056       &    answer\_shape(2), &
17057                       
17058       &    answer\_shape(3)  )  &
17059       &  )
17060 
17061     \textcolor{keyword}{allocate}( judge( &
17062                             &    answer\_shape(1), &
17063                       
17064       &    answer\_shape(2), &
17065                       
17066       &    answer\_shape(3)  )  &
17067       &  )
17068 
17069     \textcolor{keyword}{allocate}( judge\_rev( &
17070                             &    answer\_shape(1), &
17071                       
17072       &    answer\_shape(2), &
17073                       
17074       &    answer\_shape(3)  )  &
17075       &  )
17076 
17077     \textcolor{keyword}{allocate}( answer\_negative( &
17078                             &    answer\_shape(1), &
17079                       
17080       &    answer\_shape(2), &
17081                       
17082       &    answer\_shape(3)  )  &
17083       &  )
17084 
17085     \textcolor{keyword}{allocate}( check\_negative( &
17086                             &    answer\_shape(1), &
17087                       
17088       &    answer\_shape(2), &
17089                       
17090       &    answer\_shape(3)  )  &
17091       &  )
17092 
17093     \textcolor{keyword}{allocate}( both\_negative( &
17094                             &    answer\_shape(1), &
17095                       
17096       &    answer\_shape(2), &
17097                       
17098       &    answer\_shape(3)  )  &
17099       &  )
17100 
17101     answer\_negative = answer < 0.0\_dp
17102     check\_negative = check < 0.0\_dp
17103     both\_negative = answer\_negative .and. check\_negative
17104     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
17105 
17106     judge = answer > check
17107     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
17108 
17109     judge\_rev = .not. judge
17110     err\_flag = any(judge\_rev)
17111     mask\_array = 1
17112     pos = maxloc(mask\_array, judge\_rev)
17113 
17114     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17115 
17116       wrong = check( &
17117                               &    pos(1), &
17118                       
17119         &    pos(2), &
17120                       
17121         &    pos(3)  )
17122 
17123       right = answer( &
17124                               &    pos(1), &
17125                       
17126         &    pos(2), &
17127                       
17128         &    pos(3)  )
17129 
17130                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
17131                       
17132       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
17133                       
17134       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
17135                       
17136 
17137       pos\_str = \textcolor{stringliteral}{'('} // &
17138                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
17139                       
17140         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
17141                       
17142         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
17143 
17144       \textcolor{keywordflow}{if} ( both\_negative( &
17145                               &    pos(1), &
17146                       
17147         &    pos(2), &
17148                       
17149         &    pos(3)  )  ) \textcolor{keywordflow}{then}
17150 
17151         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
17152       \textcolor{keywordflow}{else}
17153         abs\_mes = \textcolor{stringliteral}{''}
17154 
17155 \textcolor{keywordflow}{      end if}
17156 
17157 \textcolor{keywordflow}{    end if}
17158     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
17159     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
17160 
17161                     
17162 
17163 
17164     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17165       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17166       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17167       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17168         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
17169       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
17170       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17171         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
17172 
17173       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17174     \textcolor{keywordflow}{else}
17175       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
17176 \textcolor{keywordflow}{    end if}
17177 
17178 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a3369b42525eb5a17a536646bb8d1cdc0}\label{namespacedc__test_a3369b42525eb5a17a536646bb8d1cdc0}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble4@{dctestassertlessthandouble4}}
\index{dctestassertlessthandouble4@{dctestassertlessthandouble4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble4()}{dctestassertlessthandouble4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 17184 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
17184     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
17185     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
17186     \textcolor{keywordtype}{implicit none}
17187     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
17188     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
17189     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
17190     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
17191     \textcolor{keywordtype}{logical}:: err\_flag
17192     \textcolor{keywordtype}{logical}:: negative\_support\_on
17193     \textcolor{keywordtype}{character(STRING)}:: pos\_str
17194     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
17195     \textcolor{keywordtype}{real(DP)}:: wrong, right
17196 
17197                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
17198     \textcolor{keywordtype}{logical}:: consist\_shape(4)
17199     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
17200     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
17201     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
17202     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
17203     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
17204     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
17205     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
17206                     
17207 
17208   \textcolor{keywordflow}{continue}
17209     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
17210       negative\_support\_on = negative\_support
17211     \textcolor{keywordflow}{else}
17212       negative\_support\_on = .true.
17213 \textcolor{keywordflow}{    end if}
17214 
17215     err\_flag = .false.
17216 
17217                     
17218     answer\_shape = shape(answer)
17219     check\_shape = shape(check)
17220 
17221     consist\_shape = answer\_shape == check\_shape
17222 
17223     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
17224       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17225       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17226       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
17227       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
17228       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
17229 
17230       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17231 \textcolor{keywordflow}{    end if}
17232 
17233 
17234     \textcolor{keyword}{allocate}( mask\_array( &
17235                             &    answer\_shape(1), &
17236                       
17237       &    answer\_shape(2), &
17238                       
17239       &    answer\_shape(3), &
17240                       
17241       &    answer\_shape(4)  )  &
17242       &  )
17243 
17244     \textcolor{keyword}{allocate}( judge( &
17245                             &    answer\_shape(1), &
17246                       
17247       &    answer\_shape(2), &
17248                       
17249       &    answer\_shape(3), &
17250                       
17251       &    answer\_shape(4)  )  &
17252       &  )
17253 
17254     \textcolor{keyword}{allocate}( judge\_rev( &
17255                             &    answer\_shape(1), &
17256                       
17257       &    answer\_shape(2), &
17258                       
17259       &    answer\_shape(3), &
17260                       
17261       &    answer\_shape(4)  )  &
17262       &  )
17263 
17264     \textcolor{keyword}{allocate}( answer\_negative( &
17265                             &    answer\_shape(1), &
17266                       
17267       &    answer\_shape(2), &
17268                       
17269       &    answer\_shape(3), &
17270                       
17271       &    answer\_shape(4)  )  &
17272       &  )
17273 
17274     \textcolor{keyword}{allocate}( check\_negative( &
17275                             &    answer\_shape(1), &
17276                       
17277       &    answer\_shape(2), &
17278                       
17279       &    answer\_shape(3), &
17280                       
17281       &    answer\_shape(4)  )  &
17282       &  )
17283 
17284     \textcolor{keyword}{allocate}( both\_negative( &
17285                             &    answer\_shape(1), &
17286                       
17287       &    answer\_shape(2), &
17288                       
17289       &    answer\_shape(3), &
17290                       
17291       &    answer\_shape(4)  )  &
17292       &  )
17293 
17294     answer\_negative = answer < 0.0\_dp
17295     check\_negative = check < 0.0\_dp
17296     both\_negative = answer\_negative .and. check\_negative
17297     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
17298 
17299     judge = answer > check
17300     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
17301 
17302     judge\_rev = .not. judge
17303     err\_flag = any(judge\_rev)
17304     mask\_array = 1
17305     pos = maxloc(mask\_array, judge\_rev)
17306 
17307     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17308 
17309       wrong = check( &
17310                               &    pos(1), &
17311                       
17312         &    pos(2), &
17313                       
17314         &    pos(3), &
17315                       
17316         &    pos(4)  )
17317 
17318       right = answer( &
17319                               &    pos(1), &
17320                       
17321         &    pos(2), &
17322                       
17323         &    pos(3), &
17324                       
17325         &    pos(4)  )
17326 
17327                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
17328                       
17329       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
17330                       
17331       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
17332                       
17333       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
17334                       
17335 
17336       pos\_str = \textcolor{stringliteral}{'('} // &
17337                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
17338                       
17339         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
17340                       
17341         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
17342                       
17343         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
17344 
17345       \textcolor{keywordflow}{if} ( both\_negative( &
17346                               &    pos(1), &
17347                       
17348         &    pos(2), &
17349                       
17350         &    pos(3), &
17351                       
17352         &    pos(4)  )  ) \textcolor{keywordflow}{then}
17353 
17354         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
17355       \textcolor{keywordflow}{else}
17356         abs\_mes = \textcolor{stringliteral}{''}
17357 
17358 \textcolor{keywordflow}{      end if}
17359 
17360 \textcolor{keywordflow}{    end if}
17361     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
17362     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
17363 
17364                     
17365 
17366 
17367     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17368       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17369       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17370       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17371         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
17372       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
17373       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17374         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
17375 
17376       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17377     \textcolor{keywordflow}{else}
17378       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
17379 \textcolor{keywordflow}{    end if}
17380 
17381 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_aad8f4c35b3337ce5a922ae6766d4e4ff}\label{namespacedc__test_aad8f4c35b3337ce5a922ae6766d4e4ff}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble5@{dctestassertlessthandouble5}}
\index{dctestassertlessthandouble5@{dctestassertlessthandouble5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble5()}{dctestassertlessthandouble5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 17387 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
17387     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
17388     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
17389     \textcolor{keywordtype}{implicit none}
17390     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
17391     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
17392     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
17393     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
17394     \textcolor{keywordtype}{logical}:: err\_flag
17395     \textcolor{keywordtype}{logical}:: negative\_support\_on
17396     \textcolor{keywordtype}{character(STRING)}:: pos\_str
17397     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
17398     \textcolor{keywordtype}{real(DP)}:: wrong, right
17399 
17400                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
17401     \textcolor{keywordtype}{logical}:: consist\_shape(5)
17402     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
17403     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
17404     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
17405     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
17406     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
17407     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
17408     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
17409                     
17410 
17411   \textcolor{keywordflow}{continue}
17412     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
17413       negative\_support\_on = negative\_support
17414     \textcolor{keywordflow}{else}
17415       negative\_support\_on = .true.
17416 \textcolor{keywordflow}{    end if}
17417 
17418     err\_flag = .false.
17419 
17420                     
17421     answer\_shape = shape(answer)
17422     check\_shape = shape(check)
17423 
17424     consist\_shape = answer\_shape == check\_shape
17425 
17426     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
17427       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17428       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17429       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
17430       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
17431       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
17432 
17433       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17434 \textcolor{keywordflow}{    end if}
17435 
17436 
17437     \textcolor{keyword}{allocate}( mask\_array( &
17438                             &    answer\_shape(1), &
17439                       
17440       &    answer\_shape(2), &
17441                       
17442       &    answer\_shape(3), &
17443                       
17444       &    answer\_shape(4), &
17445                       
17446       &    answer\_shape(5)  )  &
17447       &  )
17448 
17449     \textcolor{keyword}{allocate}( judge( &
17450                             &    answer\_shape(1), &
17451                       
17452       &    answer\_shape(2), &
17453                       
17454       &    answer\_shape(3), &
17455                       
17456       &    answer\_shape(4), &
17457                       
17458       &    answer\_shape(5)  )  &
17459       &  )
17460 
17461     \textcolor{keyword}{allocate}( judge\_rev( &
17462                             &    answer\_shape(1), &
17463                       
17464       &    answer\_shape(2), &
17465                       
17466       &    answer\_shape(3), &
17467                       
17468       &    answer\_shape(4), &
17469                       
17470       &    answer\_shape(5)  )  &
17471       &  )
17472 
17473     \textcolor{keyword}{allocate}( answer\_negative( &
17474                             &    answer\_shape(1), &
17475                       
17476       &    answer\_shape(2), &
17477                       
17478       &    answer\_shape(3), &
17479                       
17480       &    answer\_shape(4), &
17481                       
17482       &    answer\_shape(5)  )  &
17483       &  )
17484 
17485     \textcolor{keyword}{allocate}( check\_negative( &
17486                             &    answer\_shape(1), &
17487                       
17488       &    answer\_shape(2), &
17489                       
17490       &    answer\_shape(3), &
17491                       
17492       &    answer\_shape(4), &
17493                       
17494       &    answer\_shape(5)  )  &
17495       &  )
17496 
17497     \textcolor{keyword}{allocate}( both\_negative( &
17498                             &    answer\_shape(1), &
17499                       
17500       &    answer\_shape(2), &
17501                       
17502       &    answer\_shape(3), &
17503                       
17504       &    answer\_shape(4), &
17505                       
17506       &    answer\_shape(5)  )  &
17507       &  )
17508 
17509     answer\_negative = answer < 0.0\_dp
17510     check\_negative = check < 0.0\_dp
17511     both\_negative = answer\_negative .and. check\_negative
17512     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
17513 
17514     judge = answer > check
17515     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
17516 
17517     judge\_rev = .not. judge
17518     err\_flag = any(judge\_rev)
17519     mask\_array = 1
17520     pos = maxloc(mask\_array, judge\_rev)
17521 
17522     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17523 
17524       wrong = check( &
17525                               &    pos(1), &
17526                       
17527         &    pos(2), &
17528                       
17529         &    pos(3), &
17530                       
17531         &    pos(4), &
17532                       
17533         &    pos(5)  )
17534 
17535       right = answer( &
17536                               &    pos(1), &
17537                       
17538         &    pos(2), &
17539                       
17540         &    pos(3), &
17541                       
17542         &    pos(4), &
17543                       
17544         &    pos(5)  )
17545 
17546                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
17547                       
17548       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
17549                       
17550       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
17551                       
17552       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
17553                       
17554       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
17555                       
17556 
17557       pos\_str = \textcolor{stringliteral}{'('} // &
17558                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
17559                       
17560         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
17561                       
17562         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
17563                       
17564         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
17565                       
17566         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
17567 
17568       \textcolor{keywordflow}{if} ( both\_negative( &
17569                               &    pos(1), &
17570                       
17571         &    pos(2), &
17572                       
17573         &    pos(3), &
17574                       
17575         &    pos(4), &
17576                       
17577         &    pos(5)  )  ) \textcolor{keywordflow}{then}
17578 
17579         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
17580       \textcolor{keywordflow}{else}
17581         abs\_mes = \textcolor{stringliteral}{''}
17582 
17583 \textcolor{keywordflow}{      end if}
17584 
17585 \textcolor{keywordflow}{    end if}
17586     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
17587     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
17588 
17589                     
17590 
17591 
17592     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17593       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17594       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17595       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17596         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
17597       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
17598       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17599         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
17600 
17601       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17602     \textcolor{keywordflow}{else}
17603       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
17604 \textcolor{keywordflow}{    end if}
17605 
17606 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae683e5ecd7962038fd48b65a636aa83b}\label{namespacedc__test_ae683e5ecd7962038fd48b65a636aa83b}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble6@{dctestassertlessthandouble6}}
\index{dctestassertlessthandouble6@{dctestassertlessthandouble6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble6()}{dctestassertlessthandouble6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 17612 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
17612     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
17613     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
17614     \textcolor{keywordtype}{implicit none}
17615     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
17616     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
17617     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
17618     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
17619     \textcolor{keywordtype}{logical}:: err\_flag
17620     \textcolor{keywordtype}{logical}:: negative\_support\_on
17621     \textcolor{keywordtype}{character(STRING)}:: pos\_str
17622     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
17623     \textcolor{keywordtype}{real(DP)}:: wrong, right
17624 
17625                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
17626     \textcolor{keywordtype}{logical}:: consist\_shape(6)
17627     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
17628     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
17629     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
17630     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
17631     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
17632     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
17633     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
17634                     
17635 
17636   \textcolor{keywordflow}{continue}
17637     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
17638       negative\_support\_on = negative\_support
17639     \textcolor{keywordflow}{else}
17640       negative\_support\_on = .true.
17641 \textcolor{keywordflow}{    end if}
17642 
17643     err\_flag = .false.
17644 
17645                     
17646     answer\_shape = shape(answer)
17647     check\_shape = shape(check)
17648 
17649     consist\_shape = answer\_shape == check\_shape
17650 
17651     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
17652       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17653       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17654       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
17655       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
17656       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
17657 
17658       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17659 \textcolor{keywordflow}{    end if}
17660 
17661 
17662     \textcolor{keyword}{allocate}( mask\_array( &
17663                             &    answer\_shape(1), &
17664                       
17665       &    answer\_shape(2), &
17666                       
17667       &    answer\_shape(3), &
17668                       
17669       &    answer\_shape(4), &
17670                       
17671       &    answer\_shape(5), &
17672                       
17673       &    answer\_shape(6)  )  &
17674       &  )
17675 
17676     \textcolor{keyword}{allocate}( judge( &
17677                             &    answer\_shape(1), &
17678                       
17679       &    answer\_shape(2), &
17680                       
17681       &    answer\_shape(3), &
17682                       
17683       &    answer\_shape(4), &
17684                       
17685       &    answer\_shape(5), &
17686                       
17687       &    answer\_shape(6)  )  &
17688       &  )
17689 
17690     \textcolor{keyword}{allocate}( judge\_rev( &
17691                             &    answer\_shape(1), &
17692                       
17693       &    answer\_shape(2), &
17694                       
17695       &    answer\_shape(3), &
17696                       
17697       &    answer\_shape(4), &
17698                       
17699       &    answer\_shape(5), &
17700                       
17701       &    answer\_shape(6)  )  &
17702       &  )
17703 
17704     \textcolor{keyword}{allocate}( answer\_negative( &
17705                             &    answer\_shape(1), &
17706                       
17707       &    answer\_shape(2), &
17708                       
17709       &    answer\_shape(3), &
17710                       
17711       &    answer\_shape(4), &
17712                       
17713       &    answer\_shape(5), &
17714                       
17715       &    answer\_shape(6)  )  &
17716       &  )
17717 
17718     \textcolor{keyword}{allocate}( check\_negative( &
17719                             &    answer\_shape(1), &
17720                       
17721       &    answer\_shape(2), &
17722                       
17723       &    answer\_shape(3), &
17724                       
17725       &    answer\_shape(4), &
17726                       
17727       &    answer\_shape(5), &
17728                       
17729       &    answer\_shape(6)  )  &
17730       &  )
17731 
17732     \textcolor{keyword}{allocate}( both\_negative( &
17733                             &    answer\_shape(1), &
17734                       
17735       &    answer\_shape(2), &
17736                       
17737       &    answer\_shape(3), &
17738                       
17739       &    answer\_shape(4), &
17740                       
17741       &    answer\_shape(5), &
17742                       
17743       &    answer\_shape(6)  )  &
17744       &  )
17745 
17746     answer\_negative = answer < 0.0\_dp
17747     check\_negative = check < 0.0\_dp
17748     both\_negative = answer\_negative .and. check\_negative
17749     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
17750 
17751     judge = answer > check
17752     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
17753 
17754     judge\_rev = .not. judge
17755     err\_flag = any(judge\_rev)
17756     mask\_array = 1
17757     pos = maxloc(mask\_array, judge\_rev)
17758 
17759     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17760 
17761       wrong = check( &
17762                               &    pos(1), &
17763                       
17764         &    pos(2), &
17765                       
17766         &    pos(3), &
17767                       
17768         &    pos(4), &
17769                       
17770         &    pos(5), &
17771                       
17772         &    pos(6)  )
17773 
17774       right = answer( &
17775                               &    pos(1), &
17776                       
17777         &    pos(2), &
17778                       
17779         &    pos(3), &
17780                       
17781         &    pos(4), &
17782                       
17783         &    pos(5), &
17784                       
17785         &    pos(6)  )
17786 
17787                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
17788                       
17789       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
17790                       
17791       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
17792                       
17793       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
17794                       
17795       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
17796                       
17797       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
17798                       
17799 
17800       pos\_str = \textcolor{stringliteral}{'('} // &
17801                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
17802                       
17803         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
17804                       
17805         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
17806                       
17807         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
17808                       
17809         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
17810                       
17811         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
17812 
17813       \textcolor{keywordflow}{if} ( both\_negative( &
17814                               &    pos(1), &
17815                       
17816         &    pos(2), &
17817                       
17818         &    pos(3), &
17819                       
17820         &    pos(4), &
17821                       
17822         &    pos(5), &
17823                       
17824         &    pos(6)  )  ) \textcolor{keywordflow}{then}
17825 
17826         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
17827       \textcolor{keywordflow}{else}
17828         abs\_mes = \textcolor{stringliteral}{''}
17829 
17830 \textcolor{keywordflow}{      end if}
17831 
17832 \textcolor{keywordflow}{    end if}
17833     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
17834     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
17835 
17836                     
17837 
17838 
17839     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
17840       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17841       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17842       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17843         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
17844       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
17845       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
17846         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
17847 
17848       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17849     \textcolor{keywordflow}{else}
17850       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
17851 \textcolor{keywordflow}{    end if}
17852 
17853 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a50643d2414f2fe147d39e682da95c495}\label{namespacedc__test_a50643d2414f2fe147d39e682da95c495}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthandouble7@{dctestassertlessthandouble7}}
\index{dctestassertlessthandouble7@{dctestassertlessthandouble7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthandouble7()}{dctestassertlessthandouble7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthandouble7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real(dp), dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 17859 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
17859     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
17860     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
17861     \textcolor{keywordtype}{implicit none}
17862     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
17863     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
17864     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
17865     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
17866     \textcolor{keywordtype}{logical}:: err\_flag
17867     \textcolor{keywordtype}{logical}:: negative\_support\_on
17868     \textcolor{keywordtype}{character(STRING)}:: pos\_str
17869     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
17870     \textcolor{keywordtype}{real(DP)}:: wrong, right
17871 
17872                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
17873     \textcolor{keywordtype}{logical}:: consist\_shape(7)
17874     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
17875     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
17876     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
17877     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
17878     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
17879     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
17880     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
17881                     
17882 
17883   \textcolor{keywordflow}{continue}
17884     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
17885       negative\_support\_on = negative\_support
17886     \textcolor{keywordflow}{else}
17887       negative\_support\_on = .true.
17888 \textcolor{keywordflow}{    end if}
17889 
17890     err\_flag = .false.
17891 
17892                     
17893     answer\_shape = shape(answer)
17894     check\_shape = shape(check)
17895 
17896     consist\_shape = answer\_shape == check\_shape
17897 
17898     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
17899       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
17900       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
17901       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
17902       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
17903       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
17904 
17905       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
17906 \textcolor{keywordflow}{    end if}
17907 
17908 
17909     \textcolor{keyword}{allocate}( mask\_array( &
17910                             &    answer\_shape(1), &
17911                       
17912       &    answer\_shape(2), &
17913                       
17914       &    answer\_shape(3), &
17915                       
17916       &    answer\_shape(4), &
17917                       
17918       &    answer\_shape(5), &
17919                       
17920       &    answer\_shape(6), &
17921                       
17922       &    answer\_shape(7)  )  &
17923       &  )
17924 
17925     \textcolor{keyword}{allocate}( judge( &
17926                             &    answer\_shape(1), &
17927                       
17928       &    answer\_shape(2), &
17929                       
17930       &    answer\_shape(3), &
17931                       
17932       &    answer\_shape(4), &
17933                       
17934       &    answer\_shape(5), &
17935                       
17936       &    answer\_shape(6), &
17937                       
17938       &    answer\_shape(7)  )  &
17939       &  )
17940 
17941     \textcolor{keyword}{allocate}( judge\_rev( &
17942                             &    answer\_shape(1), &
17943                       
17944       &    answer\_shape(2), &
17945                       
17946       &    answer\_shape(3), &
17947                       
17948       &    answer\_shape(4), &
17949                       
17950       &    answer\_shape(5), &
17951                       
17952       &    answer\_shape(6), &
17953                       
17954       &    answer\_shape(7)  )  &
17955       &  )
17956 
17957     \textcolor{keyword}{allocate}( answer\_negative( &
17958                             &    answer\_shape(1), &
17959                       
17960       &    answer\_shape(2), &
17961                       
17962       &    answer\_shape(3), &
17963                       
17964       &    answer\_shape(4), &
17965                       
17966       &    answer\_shape(5), &
17967                       
17968       &    answer\_shape(6), &
17969                       
17970       &    answer\_shape(7)  )  &
17971       &  )
17972 
17973     \textcolor{keyword}{allocate}( check\_negative( &
17974                             &    answer\_shape(1), &
17975                       
17976       &    answer\_shape(2), &
17977                       
17978       &    answer\_shape(3), &
17979                       
17980       &    answer\_shape(4), &
17981                       
17982       &    answer\_shape(5), &
17983                       
17984       &    answer\_shape(6), &
17985                       
17986       &    answer\_shape(7)  )  &
17987       &  )
17988 
17989     \textcolor{keyword}{allocate}( both\_negative( &
17990                             &    answer\_shape(1), &
17991                       
17992       &    answer\_shape(2), &
17993                       
17994       &    answer\_shape(3), &
17995                       
17996       &    answer\_shape(4), &
17997                       
17998       &    answer\_shape(5), &
17999                       
18000       &    answer\_shape(6), &
18001                       
18002       &    answer\_shape(7)  )  &
18003       &  )
18004 
18005     answer\_negative = answer < 0.0\_dp
18006     check\_negative = check < 0.0\_dp
18007     both\_negative = answer\_negative .and. check\_negative
18008     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
18009 
18010     judge = answer > check
18011     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
18012 
18013     judge\_rev = .not. judge
18014     err\_flag = any(judge\_rev)
18015     mask\_array = 1
18016     pos = maxloc(mask\_array, judge\_rev)
18017 
18018     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
18019 
18020       wrong = check( &
18021                               &    pos(1), &
18022                       
18023         &    pos(2), &
18024                       
18025         &    pos(3), &
18026                       
18027         &    pos(4), &
18028                       
18029         &    pos(5), &
18030                       
18031         &    pos(6), &
18032                       
18033         &    pos(7)  )
18034 
18035       right = answer( &
18036                               &    pos(1), &
18037                       
18038         &    pos(2), &
18039                       
18040         &    pos(3), &
18041                       
18042         &    pos(4), &
18043                       
18044         &    pos(5), &
18045                       
18046         &    pos(6), &
18047                       
18048         &    pos(7)  )
18049 
18050                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
18051                       
18052       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
18053                       
18054       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
18055                       
18056       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
18057                       
18058       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
18059                       
18060       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
18061                       
18062       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
18063                       
18064 
18065       pos\_str = \textcolor{stringliteral}{'('} // &
18066                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
18067                       
18068         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
18069                       
18070         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
18071                       
18072         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
18073                       
18074         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
18075                       
18076         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
18077                       
18078         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
18079 
18080       \textcolor{keywordflow}{if} ( both\_negative( &
18081                               &    pos(1), &
18082                       
18083         &    pos(2), &
18084                       
18085         &    pos(3), &
18086                       
18087         &    pos(4), &
18088                       
18089         &    pos(5), &
18090                       
18091         &    pos(6), &
18092                       
18093         &    pos(7)  )  ) \textcolor{keywordflow}{then}
18094 
18095         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
18096       \textcolor{keywordflow}{else}
18097         abs\_mes = \textcolor{stringliteral}{''}
18098 
18099 \textcolor{keywordflow}{      end if}
18100 
18101 \textcolor{keywordflow}{    end if}
18102     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
18103     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
18104 
18105                     
18106 
18107 
18108     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
18109       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
18110       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
18111       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
18112         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
18113       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
18114       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
18115         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
18116 
18117       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
18118     \textcolor{keywordflow}{else}
18119       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
18120 \textcolor{keywordflow}{    end if}
18121 
18122 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a1afd6c489cd55f3d225af9236f1a7765}\label{namespacedc__test_a1afd6c489cd55f3d225af9236f1a7765}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint0@{dctestassertlessthanint0}}
\index{dctestassertlessthanint0@{dctestassertlessthanint0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint0()}{dctestassertlessthanint0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, intent(in)}]{answer,  }\item[{integer, intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 13640 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
13640     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
13641     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
13642     \textcolor{keywordtype}{implicit none}
13643     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
13644     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer
13645     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check
13646     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
13647     \textcolor{keywordtype}{logical}:: err\_flag
13648     \textcolor{keywordtype}{logical}:: negative\_support\_on
13649     \textcolor{keywordtype}{character(STRING)}:: pos\_str
13650     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
13651     \textcolor{keywordtype}{integer}:: wrong, right
13652 
13653                                         
13654 
13655   \textcolor{keywordflow}{continue}
13656     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
13657       negative\_support\_on = negative\_support
13658     \textcolor{keywordflow}{else}
13659       negative\_support\_on = .true.
13660 \textcolor{keywordflow}{    end if}
13661 
13662     err\_flag = .false.
13663 
13664                     
13665 
13666 
13667     err\_flag = .not. answer > check
13668     abs\_mes = \textcolor{stringliteral}{''}
13669 
13670     \textcolor{keywordflow}{if} ( answer < 0 &
13671       &  .and. check < 0 &
13672       &  .and. negative\_support\_on ) \textcolor{keywordflow}{then}
13673 
13674       err\_flag = .not. err\_flag
13675       abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
13676 \textcolor{keywordflow}{    end if}
13677 
13678     wrong = check
13679     right = answer
13680     pos\_str = \textcolor{stringliteral}{''}
13681 
13682                     
13683 
13684 
13685     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13686       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13687       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13688       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13689         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
13690       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
13691       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13692         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
13693 
13694       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13695     \textcolor{keywordflow}{else}
13696       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
13697 \textcolor{keywordflow}{    end if}
13698 
13699 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_af4349904683449d4f634e9440510cb11}\label{namespacedc__test_af4349904683449d4f634e9440510cb11}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint1@{dctestassertlessthanint1}}
\index{dctestassertlessthanint1@{dctestassertlessthanint1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint1()}{dctestassertlessthanint1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 13705 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
13705     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
13706     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
13707     \textcolor{keywordtype}{implicit none}
13708     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
13709     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:)
13710     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:)
13711     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
13712     \textcolor{keywordtype}{logical}:: err\_flag
13713     \textcolor{keywordtype}{logical}:: negative\_support\_on
13714     \textcolor{keywordtype}{character(STRING)}:: pos\_str
13715     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
13716     \textcolor{keywordtype}{integer}:: wrong, right
13717 
13718                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
13719     \textcolor{keywordtype}{logical}:: consist\_shape(1)
13720     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
13721     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
13722     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
13723     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
13724     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
13725     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
13726     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
13727                     
13728 
13729   \textcolor{keywordflow}{continue}
13730     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
13731       negative\_support\_on = negative\_support
13732     \textcolor{keywordflow}{else}
13733       negative\_support\_on = .true.
13734 \textcolor{keywordflow}{    end if}
13735 
13736     err\_flag = .false.
13737 
13738                     
13739     answer\_shape = shape(answer)
13740     check\_shape = shape(check)
13741 
13742     consist\_shape = answer\_shape == check\_shape
13743 
13744     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
13745       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13746       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13747       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
13748       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
13749       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
13750 
13751       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13752 \textcolor{keywordflow}{    end if}
13753 
13754 
13755     \textcolor{keyword}{allocate}( mask\_array( &
13756                       
13757       &    answer\_shape(1)  )  &
13758       &  )
13759 
13760     \textcolor{keyword}{allocate}( judge( &
13761                       
13762       &    answer\_shape(1)  )  &
13763       &  )
13764 
13765     \textcolor{keyword}{allocate}( judge\_rev( &
13766                       
13767       &    answer\_shape(1)  )  &
13768       &  )
13769 
13770     \textcolor{keyword}{allocate}( answer\_negative( &
13771                       
13772       &    answer\_shape(1)  )  &
13773       &  )
13774 
13775     \textcolor{keyword}{allocate}( check\_negative( &
13776                       
13777       &    answer\_shape(1)  )  &
13778       &  )
13779 
13780     \textcolor{keyword}{allocate}( both\_negative( &
13781                       
13782       &    answer\_shape(1)  )  &
13783       &  )
13784 
13785     answer\_negative = answer < 0
13786     check\_negative = check < 0
13787     both\_negative = answer\_negative .and. check\_negative
13788     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
13789 
13790     judge = answer > check
13791     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
13792 
13793     judge\_rev = .not. judge
13794     err\_flag = any(judge\_rev)
13795     mask\_array = 1
13796     pos = maxloc(mask\_array, judge\_rev)
13797 
13798     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13799 
13800       wrong = check( &
13801                       
13802         &    pos(1)  )
13803 
13804       right = answer( &
13805                       
13806         &    pos(1)  )
13807 
13808                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
13809                       
13810 
13811       pos\_str = \textcolor{stringliteral}{'('} // &
13812                       
13813         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
13814 
13815       \textcolor{keywordflow}{if} ( both\_negative( &
13816                       
13817         &    pos(1)  )  ) \textcolor{keywordflow}{then}
13818 
13819         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
13820       \textcolor{keywordflow}{else}
13821         abs\_mes = \textcolor{stringliteral}{''}
13822 
13823 \textcolor{keywordflow}{      end if}
13824 
13825 \textcolor{keywordflow}{    end if}
13826     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
13827     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
13828 
13829                     
13830 
13831 
13832     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13833       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13834       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13835       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13836         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
13837       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
13838       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13839         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
13840 
13841       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13842     \textcolor{keywordflow}{else}
13843       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
13844 \textcolor{keywordflow}{    end if}
13845 
13846 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ad607facaab34ec33835ddef7ec798c42}\label{namespacedc__test_ad607facaab34ec33835ddef7ec798c42}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint2@{dctestassertlessthanint2}}
\index{dctestassertlessthanint2@{dctestassertlessthanint2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint2()}{dctestassertlessthanint2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 13852 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
13852     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
13853     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
13854     \textcolor{keywordtype}{implicit none}
13855     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
13856     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
13857     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
13858     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
13859     \textcolor{keywordtype}{logical}:: err\_flag
13860     \textcolor{keywordtype}{logical}:: negative\_support\_on
13861     \textcolor{keywordtype}{character(STRING)}:: pos\_str
13862     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
13863     \textcolor{keywordtype}{integer}:: wrong, right
13864 
13865                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
13866     \textcolor{keywordtype}{logical}:: consist\_shape(2)
13867     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
13868     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
13869     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
13870     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
13871     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
13872     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
13873     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
13874                     
13875 
13876   \textcolor{keywordflow}{continue}
13877     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
13878       negative\_support\_on = negative\_support
13879     \textcolor{keywordflow}{else}
13880       negative\_support\_on = .true.
13881 \textcolor{keywordflow}{    end if}
13882 
13883     err\_flag = .false.
13884 
13885                     
13886     answer\_shape = shape(answer)
13887     check\_shape = shape(check)
13888 
13889     consist\_shape = answer\_shape == check\_shape
13890 
13891     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
13892       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13893       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13894       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
13895       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
13896       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
13897 
13898       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
13899 \textcolor{keywordflow}{    end if}
13900 
13901 
13902     \textcolor{keyword}{allocate}( mask\_array( &
13903                             &    answer\_shape(1), &
13904                       
13905       &    answer\_shape(2)  )  &
13906       &  )
13907 
13908     \textcolor{keyword}{allocate}( judge( &
13909                             &    answer\_shape(1), &
13910                       
13911       &    answer\_shape(2)  )  &
13912       &  )
13913 
13914     \textcolor{keyword}{allocate}( judge\_rev( &
13915                             &    answer\_shape(1), &
13916                       
13917       &    answer\_shape(2)  )  &
13918       &  )
13919 
13920     \textcolor{keyword}{allocate}( answer\_negative( &
13921                             &    answer\_shape(1), &
13922                       
13923       &    answer\_shape(2)  )  &
13924       &  )
13925 
13926     \textcolor{keyword}{allocate}( check\_negative( &
13927                             &    answer\_shape(1), &
13928                       
13929       &    answer\_shape(2)  )  &
13930       &  )
13931 
13932     \textcolor{keyword}{allocate}( both\_negative( &
13933                             &    answer\_shape(1), &
13934                       
13935       &    answer\_shape(2)  )  &
13936       &  )
13937 
13938     answer\_negative = answer < 0
13939     check\_negative = check < 0
13940     both\_negative = answer\_negative .and. check\_negative
13941     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
13942 
13943     judge = answer > check
13944     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
13945 
13946     judge\_rev = .not. judge
13947     err\_flag = any(judge\_rev)
13948     mask\_array = 1
13949     pos = maxloc(mask\_array, judge\_rev)
13950 
13951     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13952 
13953       wrong = check( &
13954                               &    pos(1), &
13955                       
13956         &    pos(2)  )
13957 
13958       right = answer( &
13959                               &    pos(1), &
13960                       
13961         &    pos(2)  )
13962 
13963                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
13964                       
13965       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
13966                       
13967 
13968       pos\_str = \textcolor{stringliteral}{'('} // &
13969                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
13970                       
13971         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
13972 
13973       \textcolor{keywordflow}{if} ( both\_negative( &
13974                               &    pos(1), &
13975                       
13976         &    pos(2)  )  ) \textcolor{keywordflow}{then}
13977 
13978         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
13979       \textcolor{keywordflow}{else}
13980         abs\_mes = \textcolor{stringliteral}{''}
13981 
13982 \textcolor{keywordflow}{      end if}
13983 
13984 \textcolor{keywordflow}{    end if}
13985     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
13986     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
13987 
13988                     
13989 
13990 
13991     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
13992       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
13993       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
13994       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13995         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
13996       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
13997       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
13998         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
13999 
14000       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14001     \textcolor{keywordflow}{else}
14002       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
14003 \textcolor{keywordflow}{    end if}
14004 
14005 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a9c7c2bdaaf736834595ebec043bb1526}\label{namespacedc__test_a9c7c2bdaaf736834595ebec043bb1526}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint3@{dctestassertlessthanint3}}
\index{dctestassertlessthanint3@{dctestassertlessthanint3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint3()}{dctestassertlessthanint3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 14011 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
14011     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
14012     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
14013     \textcolor{keywordtype}{implicit none}
14014     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
14015     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
14016     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
14017     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
14018     \textcolor{keywordtype}{logical}:: err\_flag
14019     \textcolor{keywordtype}{logical}:: negative\_support\_on
14020     \textcolor{keywordtype}{character(STRING)}:: pos\_str
14021     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
14022     \textcolor{keywordtype}{integer}:: wrong, right
14023 
14024                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
14025     \textcolor{keywordtype}{logical}:: consist\_shape(3)
14026     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
14027     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
14028     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
14029     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
14030     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
14031     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
14032     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
14033                     
14034 
14035   \textcolor{keywordflow}{continue}
14036     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
14037       negative\_support\_on = negative\_support
14038     \textcolor{keywordflow}{else}
14039       negative\_support\_on = .true.
14040 \textcolor{keywordflow}{    end if}
14041 
14042     err\_flag = .false.
14043 
14044                     
14045     answer\_shape = shape(answer)
14046     check\_shape = shape(check)
14047 
14048     consist\_shape = answer\_shape == check\_shape
14049 
14050     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
14051       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14052       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14053       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
14054       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
14055       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
14056 
14057       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14058 \textcolor{keywordflow}{    end if}
14059 
14060 
14061     \textcolor{keyword}{allocate}( mask\_array( &
14062                             &    answer\_shape(1), &
14063                       
14064       &    answer\_shape(2), &
14065                       
14066       &    answer\_shape(3)  )  &
14067       &  )
14068 
14069     \textcolor{keyword}{allocate}( judge( &
14070                             &    answer\_shape(1), &
14071                       
14072       &    answer\_shape(2), &
14073                       
14074       &    answer\_shape(3)  )  &
14075       &  )
14076 
14077     \textcolor{keyword}{allocate}( judge\_rev( &
14078                             &    answer\_shape(1), &
14079                       
14080       &    answer\_shape(2), &
14081                       
14082       &    answer\_shape(3)  )  &
14083       &  )
14084 
14085     \textcolor{keyword}{allocate}( answer\_negative( &
14086                             &    answer\_shape(1), &
14087                       
14088       &    answer\_shape(2), &
14089                       
14090       &    answer\_shape(3)  )  &
14091       &  )
14092 
14093     \textcolor{keyword}{allocate}( check\_negative( &
14094                             &    answer\_shape(1), &
14095                       
14096       &    answer\_shape(2), &
14097                       
14098       &    answer\_shape(3)  )  &
14099       &  )
14100 
14101     \textcolor{keyword}{allocate}( both\_negative( &
14102                             &    answer\_shape(1), &
14103                       
14104       &    answer\_shape(2), &
14105                       
14106       &    answer\_shape(3)  )  &
14107       &  )
14108 
14109     answer\_negative = answer < 0
14110     check\_negative = check < 0
14111     both\_negative = answer\_negative .and. check\_negative
14112     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
14113 
14114     judge = answer > check
14115     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
14116 
14117     judge\_rev = .not. judge
14118     err\_flag = any(judge\_rev)
14119     mask\_array = 1
14120     pos = maxloc(mask\_array, judge\_rev)
14121 
14122     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14123 
14124       wrong = check( &
14125                               &    pos(1), &
14126                       
14127         &    pos(2), &
14128                       
14129         &    pos(3)  )
14130 
14131       right = answer( &
14132                               &    pos(1), &
14133                       
14134         &    pos(2), &
14135                       
14136         &    pos(3)  )
14137 
14138                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
14139                       
14140       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
14141                       
14142       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
14143                       
14144 
14145       pos\_str = \textcolor{stringliteral}{'('} // &
14146                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
14147                       
14148         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
14149                       
14150         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
14151 
14152       \textcolor{keywordflow}{if} ( both\_negative( &
14153                               &    pos(1), &
14154                       
14155         &    pos(2), &
14156                       
14157         &    pos(3)  )  ) \textcolor{keywordflow}{then}
14158 
14159         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
14160       \textcolor{keywordflow}{else}
14161         abs\_mes = \textcolor{stringliteral}{''}
14162 
14163 \textcolor{keywordflow}{      end if}
14164 
14165 \textcolor{keywordflow}{    end if}
14166     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
14167     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
14168 
14169                     
14170 
14171 
14172     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14173       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14174       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14175       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14176         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
14177       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
14178       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14179         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
14180 
14181       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14182     \textcolor{keywordflow}{else}
14183       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
14184 \textcolor{keywordflow}{    end if}
14185 
14186 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_af4017cf127250c9d61d2ebce78d2ad4f}\label{namespacedc__test_af4017cf127250c9d61d2ebce78d2ad4f}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint4@{dctestassertlessthanint4}}
\index{dctestassertlessthanint4@{dctestassertlessthanint4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint4()}{dctestassertlessthanint4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 14192 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
14192     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
14193     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
14194     \textcolor{keywordtype}{implicit none}
14195     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
14196     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
14197     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
14198     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
14199     \textcolor{keywordtype}{logical}:: err\_flag
14200     \textcolor{keywordtype}{logical}:: negative\_support\_on
14201     \textcolor{keywordtype}{character(STRING)}:: pos\_str
14202     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
14203     \textcolor{keywordtype}{integer}:: wrong, right
14204 
14205                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
14206     \textcolor{keywordtype}{logical}:: consist\_shape(4)
14207     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
14208     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
14209     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
14210     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
14211     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
14212     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
14213     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
14214                     
14215 
14216   \textcolor{keywordflow}{continue}
14217     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
14218       negative\_support\_on = negative\_support
14219     \textcolor{keywordflow}{else}
14220       negative\_support\_on = .true.
14221 \textcolor{keywordflow}{    end if}
14222 
14223     err\_flag = .false.
14224 
14225                     
14226     answer\_shape = shape(answer)
14227     check\_shape = shape(check)
14228 
14229     consist\_shape = answer\_shape == check\_shape
14230 
14231     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
14232       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14233       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14234       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
14235       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
14236       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
14237 
14238       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14239 \textcolor{keywordflow}{    end if}
14240 
14241 
14242     \textcolor{keyword}{allocate}( mask\_array( &
14243                             &    answer\_shape(1), &
14244                       
14245       &    answer\_shape(2), &
14246                       
14247       &    answer\_shape(3), &
14248                       
14249       &    answer\_shape(4)  )  &
14250       &  )
14251 
14252     \textcolor{keyword}{allocate}( judge( &
14253                             &    answer\_shape(1), &
14254                       
14255       &    answer\_shape(2), &
14256                       
14257       &    answer\_shape(3), &
14258                       
14259       &    answer\_shape(4)  )  &
14260       &  )
14261 
14262     \textcolor{keyword}{allocate}( judge\_rev( &
14263                             &    answer\_shape(1), &
14264                       
14265       &    answer\_shape(2), &
14266                       
14267       &    answer\_shape(3), &
14268                       
14269       &    answer\_shape(4)  )  &
14270       &  )
14271 
14272     \textcolor{keyword}{allocate}( answer\_negative( &
14273                             &    answer\_shape(1), &
14274                       
14275       &    answer\_shape(2), &
14276                       
14277       &    answer\_shape(3), &
14278                       
14279       &    answer\_shape(4)  )  &
14280       &  )
14281 
14282     \textcolor{keyword}{allocate}( check\_negative( &
14283                             &    answer\_shape(1), &
14284                       
14285       &    answer\_shape(2), &
14286                       
14287       &    answer\_shape(3), &
14288                       
14289       &    answer\_shape(4)  )  &
14290       &  )
14291 
14292     \textcolor{keyword}{allocate}( both\_negative( &
14293                             &    answer\_shape(1), &
14294                       
14295       &    answer\_shape(2), &
14296                       
14297       &    answer\_shape(3), &
14298                       
14299       &    answer\_shape(4)  )  &
14300       &  )
14301 
14302     answer\_negative = answer < 0
14303     check\_negative = check < 0
14304     both\_negative = answer\_negative .and. check\_negative
14305     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
14306 
14307     judge = answer > check
14308     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
14309 
14310     judge\_rev = .not. judge
14311     err\_flag = any(judge\_rev)
14312     mask\_array = 1
14313     pos = maxloc(mask\_array, judge\_rev)
14314 
14315     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14316 
14317       wrong = check( &
14318                               &    pos(1), &
14319                       
14320         &    pos(2), &
14321                       
14322         &    pos(3), &
14323                       
14324         &    pos(4)  )
14325 
14326       right = answer( &
14327                               &    pos(1), &
14328                       
14329         &    pos(2), &
14330                       
14331         &    pos(3), &
14332                       
14333         &    pos(4)  )
14334 
14335                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
14336                       
14337       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
14338                       
14339       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
14340                       
14341       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
14342                       
14343 
14344       pos\_str = \textcolor{stringliteral}{'('} // &
14345                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
14346                       
14347         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
14348                       
14349         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
14350                       
14351         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
14352 
14353       \textcolor{keywordflow}{if} ( both\_negative( &
14354                               &    pos(1), &
14355                       
14356         &    pos(2), &
14357                       
14358         &    pos(3), &
14359                       
14360         &    pos(4)  )  ) \textcolor{keywordflow}{then}
14361 
14362         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
14363       \textcolor{keywordflow}{else}
14364         abs\_mes = \textcolor{stringliteral}{''}
14365 
14366 \textcolor{keywordflow}{      end if}
14367 
14368 \textcolor{keywordflow}{    end if}
14369     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
14370     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
14371 
14372                     
14373 
14374 
14375     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14376       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14377       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14378       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14379         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
14380       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
14381       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14382         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
14383 
14384       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14385     \textcolor{keywordflow}{else}
14386       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
14387 \textcolor{keywordflow}{    end if}
14388 
14389 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a8d16845d79c6d739f30242b8d21598a6}\label{namespacedc__test_a8d16845d79c6d739f30242b8d21598a6}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint5@{dctestassertlessthanint5}}
\index{dctestassertlessthanint5@{dctestassertlessthanint5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint5()}{dctestassertlessthanint5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 14395 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
14395     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
14396     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
14397     \textcolor{keywordtype}{implicit none}
14398     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
14399     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
14400     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
14401     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
14402     \textcolor{keywordtype}{logical}:: err\_flag
14403     \textcolor{keywordtype}{logical}:: negative\_support\_on
14404     \textcolor{keywordtype}{character(STRING)}:: pos\_str
14405     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
14406     \textcolor{keywordtype}{integer}:: wrong, right
14407 
14408                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
14409     \textcolor{keywordtype}{logical}:: consist\_shape(5)
14410     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
14411     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
14412     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
14413     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
14414     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
14415     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
14416     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
14417                     
14418 
14419   \textcolor{keywordflow}{continue}
14420     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
14421       negative\_support\_on = negative\_support
14422     \textcolor{keywordflow}{else}
14423       negative\_support\_on = .true.
14424 \textcolor{keywordflow}{    end if}
14425 
14426     err\_flag = .false.
14427 
14428                     
14429     answer\_shape = shape(answer)
14430     check\_shape = shape(check)
14431 
14432     consist\_shape = answer\_shape == check\_shape
14433 
14434     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
14435       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14436       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14437       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
14438       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
14439       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
14440 
14441       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14442 \textcolor{keywordflow}{    end if}
14443 
14444 
14445     \textcolor{keyword}{allocate}( mask\_array( &
14446                             &    answer\_shape(1), &
14447                       
14448       &    answer\_shape(2), &
14449                       
14450       &    answer\_shape(3), &
14451                       
14452       &    answer\_shape(4), &
14453                       
14454       &    answer\_shape(5)  )  &
14455       &  )
14456 
14457     \textcolor{keyword}{allocate}( judge( &
14458                             &    answer\_shape(1), &
14459                       
14460       &    answer\_shape(2), &
14461                       
14462       &    answer\_shape(3), &
14463                       
14464       &    answer\_shape(4), &
14465                       
14466       &    answer\_shape(5)  )  &
14467       &  )
14468 
14469     \textcolor{keyword}{allocate}( judge\_rev( &
14470                             &    answer\_shape(1), &
14471                       
14472       &    answer\_shape(2), &
14473                       
14474       &    answer\_shape(3), &
14475                       
14476       &    answer\_shape(4), &
14477                       
14478       &    answer\_shape(5)  )  &
14479       &  )
14480 
14481     \textcolor{keyword}{allocate}( answer\_negative( &
14482                             &    answer\_shape(1), &
14483                       
14484       &    answer\_shape(2), &
14485                       
14486       &    answer\_shape(3), &
14487                       
14488       &    answer\_shape(4), &
14489                       
14490       &    answer\_shape(5)  )  &
14491       &  )
14492 
14493     \textcolor{keyword}{allocate}( check\_negative( &
14494                             &    answer\_shape(1), &
14495                       
14496       &    answer\_shape(2), &
14497                       
14498       &    answer\_shape(3), &
14499                       
14500       &    answer\_shape(4), &
14501                       
14502       &    answer\_shape(5)  )  &
14503       &  )
14504 
14505     \textcolor{keyword}{allocate}( both\_negative( &
14506                             &    answer\_shape(1), &
14507                       
14508       &    answer\_shape(2), &
14509                       
14510       &    answer\_shape(3), &
14511                       
14512       &    answer\_shape(4), &
14513                       
14514       &    answer\_shape(5)  )  &
14515       &  )
14516 
14517     answer\_negative = answer < 0
14518     check\_negative = check < 0
14519     both\_negative = answer\_negative .and. check\_negative
14520     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
14521 
14522     judge = answer > check
14523     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
14524 
14525     judge\_rev = .not. judge
14526     err\_flag = any(judge\_rev)
14527     mask\_array = 1
14528     pos = maxloc(mask\_array, judge\_rev)
14529 
14530     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14531 
14532       wrong = check( &
14533                               &    pos(1), &
14534                       
14535         &    pos(2), &
14536                       
14537         &    pos(3), &
14538                       
14539         &    pos(4), &
14540                       
14541         &    pos(5)  )
14542 
14543       right = answer( &
14544                               &    pos(1), &
14545                       
14546         &    pos(2), &
14547                       
14548         &    pos(3), &
14549                       
14550         &    pos(4), &
14551                       
14552         &    pos(5)  )
14553 
14554                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
14555                       
14556       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
14557                       
14558       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
14559                       
14560       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
14561                       
14562       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
14563                       
14564 
14565       pos\_str = \textcolor{stringliteral}{'('} // &
14566                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
14567                       
14568         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
14569                       
14570         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
14571                       
14572         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
14573                       
14574         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
14575 
14576       \textcolor{keywordflow}{if} ( both\_negative( &
14577                               &    pos(1), &
14578                       
14579         &    pos(2), &
14580                       
14581         &    pos(3), &
14582                       
14583         &    pos(4), &
14584                       
14585         &    pos(5)  )  ) \textcolor{keywordflow}{then}
14586 
14587         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
14588       \textcolor{keywordflow}{else}
14589         abs\_mes = \textcolor{stringliteral}{''}
14590 
14591 \textcolor{keywordflow}{      end if}
14592 
14593 \textcolor{keywordflow}{    end if}
14594     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
14595     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
14596 
14597                     
14598 
14599 
14600     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14601       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14602       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14603       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14604         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
14605       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
14606       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14607         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
14608 
14609       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14610     \textcolor{keywordflow}{else}
14611       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
14612 \textcolor{keywordflow}{    end if}
14613 
14614 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a9ddd6666717d7fd284ffb79b3111c92a}\label{namespacedc__test_a9ddd6666717d7fd284ffb79b3111c92a}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint6@{dctestassertlessthanint6}}
\index{dctestassertlessthanint6@{dctestassertlessthanint6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint6()}{dctestassertlessthanint6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 14620 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
14620     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
14621     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
14622     \textcolor{keywordtype}{implicit none}
14623     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
14624     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
14625     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
14626     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
14627     \textcolor{keywordtype}{logical}:: err\_flag
14628     \textcolor{keywordtype}{logical}:: negative\_support\_on
14629     \textcolor{keywordtype}{character(STRING)}:: pos\_str
14630     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
14631     \textcolor{keywordtype}{integer}:: wrong, right
14632 
14633                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
14634     \textcolor{keywordtype}{logical}:: consist\_shape(6)
14635     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
14636     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
14637     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
14638     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
14639     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
14640     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
14641     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
14642                     
14643 
14644   \textcolor{keywordflow}{continue}
14645     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
14646       negative\_support\_on = negative\_support
14647     \textcolor{keywordflow}{else}
14648       negative\_support\_on = .true.
14649 \textcolor{keywordflow}{    end if}
14650 
14651     err\_flag = .false.
14652 
14653                     
14654     answer\_shape = shape(answer)
14655     check\_shape = shape(check)
14656 
14657     consist\_shape = answer\_shape == check\_shape
14658 
14659     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
14660       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14661       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14662       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
14663       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
14664       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
14665 
14666       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14667 \textcolor{keywordflow}{    end if}
14668 
14669 
14670     \textcolor{keyword}{allocate}( mask\_array( &
14671                             &    answer\_shape(1), &
14672                       
14673       &    answer\_shape(2), &
14674                       
14675       &    answer\_shape(3), &
14676                       
14677       &    answer\_shape(4), &
14678                       
14679       &    answer\_shape(5), &
14680                       
14681       &    answer\_shape(6)  )  &
14682       &  )
14683 
14684     \textcolor{keyword}{allocate}( judge( &
14685                             &    answer\_shape(1), &
14686                       
14687       &    answer\_shape(2), &
14688                       
14689       &    answer\_shape(3), &
14690                       
14691       &    answer\_shape(4), &
14692                       
14693       &    answer\_shape(5), &
14694                       
14695       &    answer\_shape(6)  )  &
14696       &  )
14697 
14698     \textcolor{keyword}{allocate}( judge\_rev( &
14699                             &    answer\_shape(1), &
14700                       
14701       &    answer\_shape(2), &
14702                       
14703       &    answer\_shape(3), &
14704                       
14705       &    answer\_shape(4), &
14706                       
14707       &    answer\_shape(5), &
14708                       
14709       &    answer\_shape(6)  )  &
14710       &  )
14711 
14712     \textcolor{keyword}{allocate}( answer\_negative( &
14713                             &    answer\_shape(1), &
14714                       
14715       &    answer\_shape(2), &
14716                       
14717       &    answer\_shape(3), &
14718                       
14719       &    answer\_shape(4), &
14720                       
14721       &    answer\_shape(5), &
14722                       
14723       &    answer\_shape(6)  )  &
14724       &  )
14725 
14726     \textcolor{keyword}{allocate}( check\_negative( &
14727                             &    answer\_shape(1), &
14728                       
14729       &    answer\_shape(2), &
14730                       
14731       &    answer\_shape(3), &
14732                       
14733       &    answer\_shape(4), &
14734                       
14735       &    answer\_shape(5), &
14736                       
14737       &    answer\_shape(6)  )  &
14738       &  )
14739 
14740     \textcolor{keyword}{allocate}( both\_negative( &
14741                             &    answer\_shape(1), &
14742                       
14743       &    answer\_shape(2), &
14744                       
14745       &    answer\_shape(3), &
14746                       
14747       &    answer\_shape(4), &
14748                       
14749       &    answer\_shape(5), &
14750                       
14751       &    answer\_shape(6)  )  &
14752       &  )
14753 
14754     answer\_negative = answer < 0
14755     check\_negative = check < 0
14756     both\_negative = answer\_negative .and. check\_negative
14757     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
14758 
14759     judge = answer > check
14760     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
14761 
14762     judge\_rev = .not. judge
14763     err\_flag = any(judge\_rev)
14764     mask\_array = 1
14765     pos = maxloc(mask\_array, judge\_rev)
14766 
14767     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14768 
14769       wrong = check( &
14770                               &    pos(1), &
14771                       
14772         &    pos(2), &
14773                       
14774         &    pos(3), &
14775                       
14776         &    pos(4), &
14777                       
14778         &    pos(5), &
14779                       
14780         &    pos(6)  )
14781 
14782       right = answer( &
14783                               &    pos(1), &
14784                       
14785         &    pos(2), &
14786                       
14787         &    pos(3), &
14788                       
14789         &    pos(4), &
14790                       
14791         &    pos(5), &
14792                       
14793         &    pos(6)  )
14794 
14795                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
14796                       
14797       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
14798                       
14799       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
14800                       
14801       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
14802                       
14803       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
14804                       
14805       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
14806                       
14807 
14808       pos\_str = \textcolor{stringliteral}{'('} // &
14809                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
14810                       
14811         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
14812                       
14813         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
14814                       
14815         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
14816                       
14817         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
14818                       
14819         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
14820 
14821       \textcolor{keywordflow}{if} ( both\_negative( &
14822                               &    pos(1), &
14823                       
14824         &    pos(2), &
14825                       
14826         &    pos(3), &
14827                       
14828         &    pos(4), &
14829                       
14830         &    pos(5), &
14831                       
14832         &    pos(6)  )  ) \textcolor{keywordflow}{then}
14833 
14834         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
14835       \textcolor{keywordflow}{else}
14836         abs\_mes = \textcolor{stringliteral}{''}
14837 
14838 \textcolor{keywordflow}{      end if}
14839 
14840 \textcolor{keywordflow}{    end if}
14841     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
14842     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
14843 
14844                     
14845 
14846 
14847     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
14848       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14849       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14850       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14851         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
14852       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
14853       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
14854         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
14855 
14856       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14857     \textcolor{keywordflow}{else}
14858       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
14859 \textcolor{keywordflow}{    end if}
14860 
14861 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a12ecd607aeb7517c70f4e34c1fd21f52}\label{namespacedc__test_a12ecd607aeb7517c70f4e34c1fd21f52}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanint7@{dctestassertlessthanint7}}
\index{dctestassertlessthanint7@{dctestassertlessthanint7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanint7()}{dctestassertlessthanint7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanint7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{integer, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 14867 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
14867     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
14868     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
14869     \textcolor{keywordtype}{implicit none}
14870     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
14871     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
14872     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
14873     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
14874     \textcolor{keywordtype}{logical}:: err\_flag
14875     \textcolor{keywordtype}{logical}:: negative\_support\_on
14876     \textcolor{keywordtype}{character(STRING)}:: pos\_str
14877     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
14878     \textcolor{keywordtype}{integer}:: wrong, right
14879 
14880                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
14881     \textcolor{keywordtype}{logical}:: consist\_shape(7)
14882     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
14883     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
14884     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
14885     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
14886     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
14887     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
14888     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
14889                     
14890 
14891   \textcolor{keywordflow}{continue}
14892     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
14893       negative\_support\_on = negative\_support
14894     \textcolor{keywordflow}{else}
14895       negative\_support\_on = .true.
14896 \textcolor{keywordflow}{    end if}
14897 
14898     err\_flag = .false.
14899 
14900                     
14901     answer\_shape = shape(answer)
14902     check\_shape = shape(check)
14903 
14904     consist\_shape = answer\_shape == check\_shape
14905 
14906     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
14907       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
14908       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
14909       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
14910       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
14911       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
14912 
14913       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
14914 \textcolor{keywordflow}{    end if}
14915 
14916 
14917     \textcolor{keyword}{allocate}( mask\_array( &
14918                             &    answer\_shape(1), &
14919                       
14920       &    answer\_shape(2), &
14921                       
14922       &    answer\_shape(3), &
14923                       
14924       &    answer\_shape(4), &
14925                       
14926       &    answer\_shape(5), &
14927                       
14928       &    answer\_shape(6), &
14929                       
14930       &    answer\_shape(7)  )  &
14931       &  )
14932 
14933     \textcolor{keyword}{allocate}( judge( &
14934                             &    answer\_shape(1), &
14935                       
14936       &    answer\_shape(2), &
14937                       
14938       &    answer\_shape(3), &
14939                       
14940       &    answer\_shape(4), &
14941                       
14942       &    answer\_shape(5), &
14943                       
14944       &    answer\_shape(6), &
14945                       
14946       &    answer\_shape(7)  )  &
14947       &  )
14948 
14949     \textcolor{keyword}{allocate}( judge\_rev( &
14950                             &    answer\_shape(1), &
14951                       
14952       &    answer\_shape(2), &
14953                       
14954       &    answer\_shape(3), &
14955                       
14956       &    answer\_shape(4), &
14957                       
14958       &    answer\_shape(5), &
14959                       
14960       &    answer\_shape(6), &
14961                       
14962       &    answer\_shape(7)  )  &
14963       &  )
14964 
14965     \textcolor{keyword}{allocate}( answer\_negative( &
14966                             &    answer\_shape(1), &
14967                       
14968       &    answer\_shape(2), &
14969                       
14970       &    answer\_shape(3), &
14971                       
14972       &    answer\_shape(4), &
14973                       
14974       &    answer\_shape(5), &
14975                       
14976       &    answer\_shape(6), &
14977                       
14978       &    answer\_shape(7)  )  &
14979       &  )
14980 
14981     \textcolor{keyword}{allocate}( check\_negative( &
14982                             &    answer\_shape(1), &
14983                       
14984       &    answer\_shape(2), &
14985                       
14986       &    answer\_shape(3), &
14987                       
14988       &    answer\_shape(4), &
14989                       
14990       &    answer\_shape(5), &
14991                       
14992       &    answer\_shape(6), &
14993                       
14994       &    answer\_shape(7)  )  &
14995       &  )
14996 
14997     \textcolor{keyword}{allocate}( both\_negative( &
14998                             &    answer\_shape(1), &
14999                       
15000       &    answer\_shape(2), &
15001                       
15002       &    answer\_shape(3), &
15003                       
15004       &    answer\_shape(4), &
15005                       
15006       &    answer\_shape(5), &
15007                       
15008       &    answer\_shape(6), &
15009                       
15010       &    answer\_shape(7)  )  &
15011       &  )
15012 
15013     answer\_negative = answer < 0
15014     check\_negative = check < 0
15015     both\_negative = answer\_negative .and. check\_negative
15016     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
15017 
15018     judge = answer > check
15019     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
15020 
15021     judge\_rev = .not. judge
15022     err\_flag = any(judge\_rev)
15023     mask\_array = 1
15024     pos = maxloc(mask\_array, judge\_rev)
15025 
15026     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15027 
15028       wrong = check( &
15029                               &    pos(1), &
15030                       
15031         &    pos(2), &
15032                       
15033         &    pos(3), &
15034                       
15035         &    pos(4), &
15036                       
15037         &    pos(5), &
15038                       
15039         &    pos(6), &
15040                       
15041         &    pos(7)  )
15042 
15043       right = answer( &
15044                               &    pos(1), &
15045                       
15046         &    pos(2), &
15047                       
15048         &    pos(3), &
15049                       
15050         &    pos(4), &
15051                       
15052         &    pos(5), &
15053                       
15054         &    pos(6), &
15055                       
15056         &    pos(7)  )
15057 
15058                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
15059                       
15060       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
15061                       
15062       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
15063                       
15064       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
15065                       
15066       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
15067                       
15068       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
15069                       
15070       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
15071                       
15072 
15073       pos\_str = \textcolor{stringliteral}{'('} // &
15074                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
15075                       
15076         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
15077                       
15078         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
15079                       
15080         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
15081                       
15082         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
15083                       
15084         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
15085                       
15086         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
15087 
15088       \textcolor{keywordflow}{if} ( both\_negative( &
15089                               &    pos(1), &
15090                       
15091         &    pos(2), &
15092                       
15093         &    pos(3), &
15094                       
15095         &    pos(4), &
15096                       
15097         &    pos(5), &
15098                       
15099         &    pos(6), &
15100                       
15101         &    pos(7)  )  ) \textcolor{keywordflow}{then}
15102 
15103         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
15104       \textcolor{keywordflow}{else}
15105         abs\_mes = \textcolor{stringliteral}{''}
15106 
15107 \textcolor{keywordflow}{      end if}
15108 
15109 \textcolor{keywordflow}{    end if}
15110     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
15111     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
15112 
15113                     
15114 
15115 
15116     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15117       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15118       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15119       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15120         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
15121       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
15122       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15123         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
15124 
15125       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15126     \textcolor{keywordflow}{else}
15127       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
15128 \textcolor{keywordflow}{    end if}
15129 
15130 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_adea1b9f2be69c577b109b379a7adf7ac}\label{namespacedc__test_adea1b9f2be69c577b109b379a7adf7ac}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal0@{dctestassertlessthanreal0}}
\index{dctestassertlessthanreal0@{dctestassertlessthanreal0}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal0()}{dctestassertlessthanreal0()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal0 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, intent(in)}]{answer,  }\item[{real, intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 15136 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
15136     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
15137     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
15138     \textcolor{keywordtype}{implicit none}
15139     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
15140     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer
15141     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check
15142     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
15143     \textcolor{keywordtype}{logical}:: err\_flag
15144     \textcolor{keywordtype}{logical}:: negative\_support\_on
15145     \textcolor{keywordtype}{character(STRING)}:: pos\_str
15146     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
15147     \textcolor{keywordtype}{real}:: wrong, right
15148 
15149                                         
15150 
15151   \textcolor{keywordflow}{continue}
15152     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
15153       negative\_support\_on = negative\_support
15154     \textcolor{keywordflow}{else}
15155       negative\_support\_on = .true.
15156 \textcolor{keywordflow}{    end if}
15157 
15158     err\_flag = .false.
15159 
15160                     
15161 
15162 
15163     err\_flag = .not. answer > check
15164     abs\_mes = \textcolor{stringliteral}{''}
15165 
15166     \textcolor{keywordflow}{if} ( answer < 0.0 &
15167       &  .and. check < 0.0 &
15168       &  .and. negative\_support\_on ) \textcolor{keywordflow}{then}
15169 
15170       err\_flag = .not. err\_flag
15171       abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
15172 \textcolor{keywordflow}{    end if}
15173 
15174     wrong = check
15175     right = answer
15176     pos\_str = \textcolor{stringliteral}{''}
15177 
15178                     
15179 
15180 
15181     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15182       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15183       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15184       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15185         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
15186       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
15187       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15188         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
15189 
15190       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15191     \textcolor{keywordflow}{else}
15192       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
15193 \textcolor{keywordflow}{    end if}
15194 
15195 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a94df53eee2ce21ceac0d55cf171d32cc}\label{namespacedc__test_a94df53eee2ce21ceac0d55cf171d32cc}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal1@{dctestassertlessthanreal1}}
\index{dctestassertlessthanreal1@{dctestassertlessthanreal1}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal1()}{dctestassertlessthanreal1()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal1 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 15201 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
15201     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
15202     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
15203     \textcolor{keywordtype}{implicit none}
15204     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
15205     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:)
15206     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:)
15207     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
15208     \textcolor{keywordtype}{logical}:: err\_flag
15209     \textcolor{keywordtype}{logical}:: negative\_support\_on
15210     \textcolor{keywordtype}{character(STRING)}:: pos\_str
15211     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
15212     \textcolor{keywordtype}{real}:: wrong, right
15213 
15214                         \textcolor{keywordtype}{integer}:: answer\_shape(1), check\_shape(1), pos(1)
15215     \textcolor{keywordtype}{logical}:: consist\_shape(1)
15216     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(1)
15217     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:)
15218     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:)
15219     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:)
15220     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:)
15221     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:)
15222     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:)
15223                     
15224 
15225   \textcolor{keywordflow}{continue}
15226     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
15227       negative\_support\_on = negative\_support
15228     \textcolor{keywordflow}{else}
15229       negative\_support\_on = .true.
15230 \textcolor{keywordflow}{    end if}
15231 
15232     err\_flag = .false.
15233 
15234                     
15235     answer\_shape = shape(answer)
15236     check\_shape = shape(check)
15237 
15238     consist\_shape = answer\_shape == check\_shape
15239 
15240     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
15241       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15242       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15243       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
15244       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
15245       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
15246 
15247       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15248 \textcolor{keywordflow}{    end if}
15249 
15250 
15251     \textcolor{keyword}{allocate}( mask\_array( &
15252                       
15253       &    answer\_shape(1)  )  &
15254       &  )
15255 
15256     \textcolor{keyword}{allocate}( judge( &
15257                       
15258       &    answer\_shape(1)  )  &
15259       &  )
15260 
15261     \textcolor{keyword}{allocate}( judge\_rev( &
15262                       
15263       &    answer\_shape(1)  )  &
15264       &  )
15265 
15266     \textcolor{keyword}{allocate}( answer\_negative( &
15267                       
15268       &    answer\_shape(1)  )  &
15269       &  )
15270 
15271     \textcolor{keyword}{allocate}( check\_negative( &
15272                       
15273       &    answer\_shape(1)  )  &
15274       &  )
15275 
15276     \textcolor{keyword}{allocate}( both\_negative( &
15277                       
15278       &    answer\_shape(1)  )  &
15279       &  )
15280 
15281     answer\_negative = answer < 0.0
15282     check\_negative = check < 0.0
15283     both\_negative = answer\_negative .and. check\_negative
15284     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
15285 
15286     judge = answer > check
15287     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
15288 
15289     judge\_rev = .not. judge
15290     err\_flag = any(judge\_rev)
15291     mask\_array = 1
15292     pos = maxloc(mask\_array, judge\_rev)
15293 
15294     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15295 
15296       wrong = check( &
15297                       
15298         &    pos(1)  )
15299 
15300       right = answer( &
15301                       
15302         &    pos(1)  )
15303 
15304                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
15305                       
15306 
15307       pos\_str = \textcolor{stringliteral}{'('} // &
15308                       
15309         &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{')'}
15310 
15311       \textcolor{keywordflow}{if} ( both\_negative( &
15312                       
15313         &    pos(1)  )  ) \textcolor{keywordflow}{then}
15314 
15315         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
15316       \textcolor{keywordflow}{else}
15317         abs\_mes = \textcolor{stringliteral}{''}
15318 
15319 \textcolor{keywordflow}{      end if}
15320 
15321 \textcolor{keywordflow}{    end if}
15322     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
15323     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
15324 
15325                     
15326 
15327 
15328     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15329       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15330       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15331       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15332         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
15333       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
15334       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15335         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
15336 
15337       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15338     \textcolor{keywordflow}{else}
15339       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
15340 \textcolor{keywordflow}{    end if}
15341 
15342 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a54a0f98476b45404cde22695f134db38}\label{namespacedc__test_a54a0f98476b45404cde22695f134db38}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal2@{dctestassertlessthanreal2}}
\index{dctestassertlessthanreal2@{dctestassertlessthanreal2}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal2()}{dctestassertlessthanreal2()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal2 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 15348 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
15348     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
15349     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
15350     \textcolor{keywordtype}{implicit none}
15351     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
15352     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:)
15353     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:)
15354     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
15355     \textcolor{keywordtype}{logical}:: err\_flag
15356     \textcolor{keywordtype}{logical}:: negative\_support\_on
15357     \textcolor{keywordtype}{character(STRING)}:: pos\_str
15358     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
15359     \textcolor{keywordtype}{real}:: wrong, right
15360 
15361                         \textcolor{keywordtype}{integer}:: answer\_shape(2), check\_shape(2), pos(2)
15362     \textcolor{keywordtype}{logical}:: consist\_shape(2)
15363     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(2)
15364     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:)
15365     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:)
15366     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:)
15367     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:)
15368     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:)
15369     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:)
15370                     
15371 
15372   \textcolor{keywordflow}{continue}
15373     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
15374       negative\_support\_on = negative\_support
15375     \textcolor{keywordflow}{else}
15376       negative\_support\_on = .true.
15377 \textcolor{keywordflow}{    end if}
15378 
15379     err\_flag = .false.
15380 
15381                     
15382     answer\_shape = shape(answer)
15383     check\_shape = shape(check)
15384 
15385     consist\_shape = answer\_shape == check\_shape
15386 
15387     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
15388       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15389       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15390       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
15391       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
15392       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
15393 
15394       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15395 \textcolor{keywordflow}{    end if}
15396 
15397 
15398     \textcolor{keyword}{allocate}( mask\_array( &
15399                             &    answer\_shape(1), &
15400                       
15401       &    answer\_shape(2)  )  &
15402       &  )
15403 
15404     \textcolor{keyword}{allocate}( judge( &
15405                             &    answer\_shape(1), &
15406                       
15407       &    answer\_shape(2)  )  &
15408       &  )
15409 
15410     \textcolor{keyword}{allocate}( judge\_rev( &
15411                             &    answer\_shape(1), &
15412                       
15413       &    answer\_shape(2)  )  &
15414       &  )
15415 
15416     \textcolor{keyword}{allocate}( answer\_negative( &
15417                             &    answer\_shape(1), &
15418                       
15419       &    answer\_shape(2)  )  &
15420       &  )
15421 
15422     \textcolor{keyword}{allocate}( check\_negative( &
15423                             &    answer\_shape(1), &
15424                       
15425       &    answer\_shape(2)  )  &
15426       &  )
15427 
15428     \textcolor{keyword}{allocate}( both\_negative( &
15429                             &    answer\_shape(1), &
15430                       
15431       &    answer\_shape(2)  )  &
15432       &  )
15433 
15434     answer\_negative = answer < 0.0
15435     check\_negative = check < 0.0
15436     both\_negative = answer\_negative .and. check\_negative
15437     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
15438 
15439     judge = answer > check
15440     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
15441 
15442     judge\_rev = .not. judge
15443     err\_flag = any(judge\_rev)
15444     mask\_array = 1
15445     pos = maxloc(mask\_array, judge\_rev)
15446 
15447     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15448 
15449       wrong = check( &
15450                               &    pos(1), &
15451                       
15452         &    pos(2)  )
15453 
15454       right = answer( &
15455                               &    pos(1), &
15456                       
15457         &    pos(2)  )
15458 
15459                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
15460                       
15461       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
15462                       
15463 
15464       pos\_str = \textcolor{stringliteral}{'('} // &
15465                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
15466                       
15467         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{')'}
15468 
15469       \textcolor{keywordflow}{if} ( both\_negative( &
15470                               &    pos(1), &
15471                       
15472         &    pos(2)  )  ) \textcolor{keywordflow}{then}
15473 
15474         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
15475       \textcolor{keywordflow}{else}
15476         abs\_mes = \textcolor{stringliteral}{''}
15477 
15478 \textcolor{keywordflow}{      end if}
15479 
15480 \textcolor{keywordflow}{    end if}
15481     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
15482     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
15483 
15484                     
15485 
15486 
15487     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15488       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15489       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15490       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15491         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
15492       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
15493       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15494         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
15495 
15496       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15497     \textcolor{keywordflow}{else}
15498       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
15499 \textcolor{keywordflow}{    end if}
15500 
15501 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a83ce6804e73250a71d189eb5ea3b9078}\label{namespacedc__test_a83ce6804e73250a71d189eb5ea3b9078}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal3@{dctestassertlessthanreal3}}
\index{dctestassertlessthanreal3@{dctestassertlessthanreal3}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal3()}{dctestassertlessthanreal3()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal3 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 15507 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
15507     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
15508     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
15509     \textcolor{keywordtype}{implicit none}
15510     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
15511     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:)
15512     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:)
15513     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
15514     \textcolor{keywordtype}{logical}:: err\_flag
15515     \textcolor{keywordtype}{logical}:: negative\_support\_on
15516     \textcolor{keywordtype}{character(STRING)}:: pos\_str
15517     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
15518     \textcolor{keywordtype}{real}:: wrong, right
15519 
15520                         \textcolor{keywordtype}{integer}:: answer\_shape(3), check\_shape(3), pos(3)
15521     \textcolor{keywordtype}{logical}:: consist\_shape(3)
15522     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(3)
15523     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:)
15524     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:)
15525     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:)
15526     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:)
15527     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:)
15528     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:)
15529                     
15530 
15531   \textcolor{keywordflow}{continue}
15532     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
15533       negative\_support\_on = negative\_support
15534     \textcolor{keywordflow}{else}
15535       negative\_support\_on = .true.
15536 \textcolor{keywordflow}{    end if}
15537 
15538     err\_flag = .false.
15539 
15540                     
15541     answer\_shape = shape(answer)
15542     check\_shape = shape(check)
15543 
15544     consist\_shape = answer\_shape == check\_shape
15545 
15546     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
15547       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15548       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15549       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
15550       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
15551       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
15552 
15553       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15554 \textcolor{keywordflow}{    end if}
15555 
15556 
15557     \textcolor{keyword}{allocate}( mask\_array( &
15558                             &    answer\_shape(1), &
15559                       
15560       &    answer\_shape(2), &
15561                       
15562       &    answer\_shape(3)  )  &
15563       &  )
15564 
15565     \textcolor{keyword}{allocate}( judge( &
15566                             &    answer\_shape(1), &
15567                       
15568       &    answer\_shape(2), &
15569                       
15570       &    answer\_shape(3)  )  &
15571       &  )
15572 
15573     \textcolor{keyword}{allocate}( judge\_rev( &
15574                             &    answer\_shape(1), &
15575                       
15576       &    answer\_shape(2), &
15577                       
15578       &    answer\_shape(3)  )  &
15579       &  )
15580 
15581     \textcolor{keyword}{allocate}( answer\_negative( &
15582                             &    answer\_shape(1), &
15583                       
15584       &    answer\_shape(2), &
15585                       
15586       &    answer\_shape(3)  )  &
15587       &  )
15588 
15589     \textcolor{keyword}{allocate}( check\_negative( &
15590                             &    answer\_shape(1), &
15591                       
15592       &    answer\_shape(2), &
15593                       
15594       &    answer\_shape(3)  )  &
15595       &  )
15596 
15597     \textcolor{keyword}{allocate}( both\_negative( &
15598                             &    answer\_shape(1), &
15599                       
15600       &    answer\_shape(2), &
15601                       
15602       &    answer\_shape(3)  )  &
15603       &  )
15604 
15605     answer\_negative = answer < 0.0
15606     check\_negative = check < 0.0
15607     both\_negative = answer\_negative .and. check\_negative
15608     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
15609 
15610     judge = answer > check
15611     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
15612 
15613     judge\_rev = .not. judge
15614     err\_flag = any(judge\_rev)
15615     mask\_array = 1
15616     pos = maxloc(mask\_array, judge\_rev)
15617 
15618     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15619 
15620       wrong = check( &
15621                               &    pos(1), &
15622                       
15623         &    pos(2), &
15624                       
15625         &    pos(3)  )
15626 
15627       right = answer( &
15628                               &    pos(1), &
15629                       
15630         &    pos(2), &
15631                       
15632         &    pos(3)  )
15633 
15634                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
15635                       
15636       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
15637                       
15638       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
15639                       
15640 
15641       pos\_str = \textcolor{stringliteral}{'('} // &
15642                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
15643                       
15644         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
15645                       
15646         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{')'}
15647 
15648       \textcolor{keywordflow}{if} ( both\_negative( &
15649                               &    pos(1), &
15650                       
15651         &    pos(2), &
15652                       
15653         &    pos(3)  )  ) \textcolor{keywordflow}{then}
15654 
15655         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
15656       \textcolor{keywordflow}{else}
15657         abs\_mes = \textcolor{stringliteral}{''}
15658 
15659 \textcolor{keywordflow}{      end if}
15660 
15661 \textcolor{keywordflow}{    end if}
15662     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
15663     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
15664 
15665                     
15666 
15667 
15668     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15669       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15670       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15671       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15672         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
15673       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
15674       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15675         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
15676 
15677       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15678     \textcolor{keywordflow}{else}
15679       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
15680 \textcolor{keywordflow}{    end if}
15681 
15682 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_a025dd5a14ceed4b8ba9e9b8db3468d37}\label{namespacedc__test_a025dd5a14ceed4b8ba9e9b8db3468d37}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal4@{dctestassertlessthanreal4}}
\index{dctestassertlessthanreal4@{dctestassertlessthanreal4}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal4()}{dctestassertlessthanreal4()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal4 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 15688 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
15688     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
15689     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
15690     \textcolor{keywordtype}{implicit none}
15691     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
15692     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:)
15693     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:)
15694     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
15695     \textcolor{keywordtype}{logical}:: err\_flag
15696     \textcolor{keywordtype}{logical}:: negative\_support\_on
15697     \textcolor{keywordtype}{character(STRING)}:: pos\_str
15698     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
15699     \textcolor{keywordtype}{real}:: wrong, right
15700 
15701                         \textcolor{keywordtype}{integer}:: answer\_shape(4), check\_shape(4), pos(4)
15702     \textcolor{keywordtype}{logical}:: consist\_shape(4)
15703     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(4)
15704     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:)
15705     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:)
15706     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:)
15707     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:)
15708     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:)
15709     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:)
15710                     
15711 
15712   \textcolor{keywordflow}{continue}
15713     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
15714       negative\_support\_on = negative\_support
15715     \textcolor{keywordflow}{else}
15716       negative\_support\_on = .true.
15717 \textcolor{keywordflow}{    end if}
15718 
15719     err\_flag = .false.
15720 
15721                     
15722     answer\_shape = shape(answer)
15723     check\_shape = shape(check)
15724 
15725     consist\_shape = answer\_shape == check\_shape
15726 
15727     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
15728       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15729       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15730       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
15731       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
15732       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
15733 
15734       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15735 \textcolor{keywordflow}{    end if}
15736 
15737 
15738     \textcolor{keyword}{allocate}( mask\_array( &
15739                             &    answer\_shape(1), &
15740                       
15741       &    answer\_shape(2), &
15742                       
15743       &    answer\_shape(3), &
15744                       
15745       &    answer\_shape(4)  )  &
15746       &  )
15747 
15748     \textcolor{keyword}{allocate}( judge( &
15749                             &    answer\_shape(1), &
15750                       
15751       &    answer\_shape(2), &
15752                       
15753       &    answer\_shape(3), &
15754                       
15755       &    answer\_shape(4)  )  &
15756       &  )
15757 
15758     \textcolor{keyword}{allocate}( judge\_rev( &
15759                             &    answer\_shape(1), &
15760                       
15761       &    answer\_shape(2), &
15762                       
15763       &    answer\_shape(3), &
15764                       
15765       &    answer\_shape(4)  )  &
15766       &  )
15767 
15768     \textcolor{keyword}{allocate}( answer\_negative( &
15769                             &    answer\_shape(1), &
15770                       
15771       &    answer\_shape(2), &
15772                       
15773       &    answer\_shape(3), &
15774                       
15775       &    answer\_shape(4)  )  &
15776       &  )
15777 
15778     \textcolor{keyword}{allocate}( check\_negative( &
15779                             &    answer\_shape(1), &
15780                       
15781       &    answer\_shape(2), &
15782                       
15783       &    answer\_shape(3), &
15784                       
15785       &    answer\_shape(4)  )  &
15786       &  )
15787 
15788     \textcolor{keyword}{allocate}( both\_negative( &
15789                             &    answer\_shape(1), &
15790                       
15791       &    answer\_shape(2), &
15792                       
15793       &    answer\_shape(3), &
15794                       
15795       &    answer\_shape(4)  )  &
15796       &  )
15797 
15798     answer\_negative = answer < 0.0
15799     check\_negative = check < 0.0
15800     both\_negative = answer\_negative .and. check\_negative
15801     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
15802 
15803     judge = answer > check
15804     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
15805 
15806     judge\_rev = .not. judge
15807     err\_flag = any(judge\_rev)
15808     mask\_array = 1
15809     pos = maxloc(mask\_array, judge\_rev)
15810 
15811     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15812 
15813       wrong = check( &
15814                               &    pos(1), &
15815                       
15816         &    pos(2), &
15817                       
15818         &    pos(3), &
15819                       
15820         &    pos(4)  )
15821 
15822       right = answer( &
15823                               &    pos(1), &
15824                       
15825         &    pos(2), &
15826                       
15827         &    pos(3), &
15828                       
15829         &    pos(4)  )
15830 
15831                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
15832                       
15833       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
15834                       
15835       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
15836                       
15837       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
15838                       
15839 
15840       pos\_str = \textcolor{stringliteral}{'('} // &
15841                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
15842                       
15843         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
15844                       
15845         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
15846                       
15847         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{')'}
15848 
15849       \textcolor{keywordflow}{if} ( both\_negative( &
15850                               &    pos(1), &
15851                       
15852         &    pos(2), &
15853                       
15854         &    pos(3), &
15855                       
15856         &    pos(4)  )  ) \textcolor{keywordflow}{then}
15857 
15858         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
15859       \textcolor{keywordflow}{else}
15860         abs\_mes = \textcolor{stringliteral}{''}
15861 
15862 \textcolor{keywordflow}{      end if}
15863 
15864 \textcolor{keywordflow}{    end if}
15865     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
15866     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
15867 
15868                     
15869 
15870 
15871     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
15872       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15873       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15874       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15875         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
15876       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
15877       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
15878         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
15879 
15880       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15881     \textcolor{keywordflow}{else}
15882       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
15883 \textcolor{keywordflow}{    end if}
15884 
15885 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ae393d032a8389f5a0c216cbce4b8db1c}\label{namespacedc__test_ae393d032a8389f5a0c216cbce4b8db1c}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal5@{dctestassertlessthanreal5}}
\index{dctestassertlessthanreal5@{dctestassertlessthanreal5}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal5()}{dctestassertlessthanreal5()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal5 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 15891 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
15891     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
15892     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
15893     \textcolor{keywordtype}{implicit none}
15894     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
15895     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:)
15896     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:)
15897     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
15898     \textcolor{keywordtype}{logical}:: err\_flag
15899     \textcolor{keywordtype}{logical}:: negative\_support\_on
15900     \textcolor{keywordtype}{character(STRING)}:: pos\_str
15901     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
15902     \textcolor{keywordtype}{real}:: wrong, right
15903 
15904                         \textcolor{keywordtype}{integer}:: answer\_shape(5), check\_shape(5), pos(5)
15905     \textcolor{keywordtype}{logical}:: consist\_shape(5)
15906     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(5)
15907     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:)
15908     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:)
15909     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:)
15910     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:)
15911     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:)
15912     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:)
15913                     
15914 
15915   \textcolor{keywordflow}{continue}
15916     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
15917       negative\_support\_on = negative\_support
15918     \textcolor{keywordflow}{else}
15919       negative\_support\_on = .true.
15920 \textcolor{keywordflow}{    end if}
15921 
15922     err\_flag = .false.
15923 
15924                     
15925     answer\_shape = shape(answer)
15926     check\_shape = shape(check)
15927 
15928     consist\_shape = answer\_shape == check\_shape
15929 
15930     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
15931       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
15932       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
15933       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
15934       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
15935       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
15936 
15937       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
15938 \textcolor{keywordflow}{    end if}
15939 
15940 
15941     \textcolor{keyword}{allocate}( mask\_array( &
15942                             &    answer\_shape(1), &
15943                       
15944       &    answer\_shape(2), &
15945                       
15946       &    answer\_shape(3), &
15947                       
15948       &    answer\_shape(4), &
15949                       
15950       &    answer\_shape(5)  )  &
15951       &  )
15952 
15953     \textcolor{keyword}{allocate}( judge( &
15954                             &    answer\_shape(1), &
15955                       
15956       &    answer\_shape(2), &
15957                       
15958       &    answer\_shape(3), &
15959                       
15960       &    answer\_shape(4), &
15961                       
15962       &    answer\_shape(5)  )  &
15963       &  )
15964 
15965     \textcolor{keyword}{allocate}( judge\_rev( &
15966                             &    answer\_shape(1), &
15967                       
15968       &    answer\_shape(2), &
15969                       
15970       &    answer\_shape(3), &
15971                       
15972       &    answer\_shape(4), &
15973                       
15974       &    answer\_shape(5)  )  &
15975       &  )
15976 
15977     \textcolor{keyword}{allocate}( answer\_negative( &
15978                             &    answer\_shape(1), &
15979                       
15980       &    answer\_shape(2), &
15981                       
15982       &    answer\_shape(3), &
15983                       
15984       &    answer\_shape(4), &
15985                       
15986       &    answer\_shape(5)  )  &
15987       &  )
15988 
15989     \textcolor{keyword}{allocate}( check\_negative( &
15990                             &    answer\_shape(1), &
15991                       
15992       &    answer\_shape(2), &
15993                       
15994       &    answer\_shape(3), &
15995                       
15996       &    answer\_shape(4), &
15997                       
15998       &    answer\_shape(5)  )  &
15999       &  )
16000 
16001     \textcolor{keyword}{allocate}( both\_negative( &
16002                             &    answer\_shape(1), &
16003                       
16004       &    answer\_shape(2), &
16005                       
16006       &    answer\_shape(3), &
16007                       
16008       &    answer\_shape(4), &
16009                       
16010       &    answer\_shape(5)  )  &
16011       &  )
16012 
16013     answer\_negative = answer < 0.0
16014     check\_negative = check < 0.0
16015     both\_negative = answer\_negative .and. check\_negative
16016     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
16017 
16018     judge = answer > check
16019     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
16020 
16021     judge\_rev = .not. judge
16022     err\_flag = any(judge\_rev)
16023     mask\_array = 1
16024     pos = maxloc(mask\_array, judge\_rev)
16025 
16026     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16027 
16028       wrong = check( &
16029                               &    pos(1), &
16030                       
16031         &    pos(2), &
16032                       
16033         &    pos(3), &
16034                       
16035         &    pos(4), &
16036                       
16037         &    pos(5)  )
16038 
16039       right = answer( &
16040                               &    pos(1), &
16041                       
16042         &    pos(2), &
16043                       
16044         &    pos(3), &
16045                       
16046         &    pos(4), &
16047                       
16048         &    pos(5)  )
16049 
16050                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
16051                       
16052       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
16053                       
16054       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
16055                       
16056       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
16057                       
16058       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
16059                       
16060 
16061       pos\_str = \textcolor{stringliteral}{'('} // &
16062                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
16063                       
16064         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
16065                       
16066         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
16067                       
16068         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
16069                       
16070         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{')'}
16071 
16072       \textcolor{keywordflow}{if} ( both\_negative( &
16073                               &    pos(1), &
16074                       
16075         &    pos(2), &
16076                       
16077         &    pos(3), &
16078                       
16079         &    pos(4), &
16080                       
16081         &    pos(5)  )  ) \textcolor{keywordflow}{then}
16082 
16083         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
16084       \textcolor{keywordflow}{else}
16085         abs\_mes = \textcolor{stringliteral}{''}
16086 
16087 \textcolor{keywordflow}{      end if}
16088 
16089 \textcolor{keywordflow}{    end if}
16090     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
16091     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
16092 
16093                     
16094 
16095 
16096     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16097       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16098       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16099       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16100         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
16101       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
16102       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16103         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
16104 
16105       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16106     \textcolor{keywordflow}{else}
16107       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
16108 \textcolor{keywordflow}{    end if}
16109 
16110 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_abf0ada9282508ed8a66ba90ba9fb7805}\label{namespacedc__test_abf0ada9282508ed8a66ba90ba9fb7805}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal6@{dctestassertlessthanreal6}}
\index{dctestassertlessthanreal6@{dctestassertlessthanreal6}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal6()}{dctestassertlessthanreal6()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal6 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 16116 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
16116     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
16117     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
16118     \textcolor{keywordtype}{implicit none}
16119     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
16120     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:)
16121     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:)
16122     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
16123     \textcolor{keywordtype}{logical}:: err\_flag
16124     \textcolor{keywordtype}{logical}:: negative\_support\_on
16125     \textcolor{keywordtype}{character(STRING)}:: pos\_str
16126     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
16127     \textcolor{keywordtype}{real}:: wrong, right
16128 
16129                         \textcolor{keywordtype}{integer}:: answer\_shape(6), check\_shape(6), pos(6)
16130     \textcolor{keywordtype}{logical}:: consist\_shape(6)
16131     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(6)
16132     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:)
16133     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:)
16134     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:)
16135     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:)
16136     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:)
16137     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:)
16138                     
16139 
16140   \textcolor{keywordflow}{continue}
16141     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
16142       negative\_support\_on = negative\_support
16143     \textcolor{keywordflow}{else}
16144       negative\_support\_on = .true.
16145 \textcolor{keywordflow}{    end if}
16146 
16147     err\_flag = .false.
16148 
16149                     
16150     answer\_shape = shape(answer)
16151     check\_shape = shape(check)
16152 
16153     consist\_shape = answer\_shape == check\_shape
16154 
16155     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
16156       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16157       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16158       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
16159       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
16160       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
16161 
16162       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16163 \textcolor{keywordflow}{    end if}
16164 
16165 
16166     \textcolor{keyword}{allocate}( mask\_array( &
16167                             &    answer\_shape(1), &
16168                       
16169       &    answer\_shape(2), &
16170                       
16171       &    answer\_shape(3), &
16172                       
16173       &    answer\_shape(4), &
16174                       
16175       &    answer\_shape(5), &
16176                       
16177       &    answer\_shape(6)  )  &
16178       &  )
16179 
16180     \textcolor{keyword}{allocate}( judge( &
16181                             &    answer\_shape(1), &
16182                       
16183       &    answer\_shape(2), &
16184                       
16185       &    answer\_shape(3), &
16186                       
16187       &    answer\_shape(4), &
16188                       
16189       &    answer\_shape(5), &
16190                       
16191       &    answer\_shape(6)  )  &
16192       &  )
16193 
16194     \textcolor{keyword}{allocate}( judge\_rev( &
16195                             &    answer\_shape(1), &
16196                       
16197       &    answer\_shape(2), &
16198                       
16199       &    answer\_shape(3), &
16200                       
16201       &    answer\_shape(4), &
16202                       
16203       &    answer\_shape(5), &
16204                       
16205       &    answer\_shape(6)  )  &
16206       &  )
16207 
16208     \textcolor{keyword}{allocate}( answer\_negative( &
16209                             &    answer\_shape(1), &
16210                       
16211       &    answer\_shape(2), &
16212                       
16213       &    answer\_shape(3), &
16214                       
16215       &    answer\_shape(4), &
16216                       
16217       &    answer\_shape(5), &
16218                       
16219       &    answer\_shape(6)  )  &
16220       &  )
16221 
16222     \textcolor{keyword}{allocate}( check\_negative( &
16223                             &    answer\_shape(1), &
16224                       
16225       &    answer\_shape(2), &
16226                       
16227       &    answer\_shape(3), &
16228                       
16229       &    answer\_shape(4), &
16230                       
16231       &    answer\_shape(5), &
16232                       
16233       &    answer\_shape(6)  )  &
16234       &  )
16235 
16236     \textcolor{keyword}{allocate}( both\_negative( &
16237                             &    answer\_shape(1), &
16238                       
16239       &    answer\_shape(2), &
16240                       
16241       &    answer\_shape(3), &
16242                       
16243       &    answer\_shape(4), &
16244                       
16245       &    answer\_shape(5), &
16246                       
16247       &    answer\_shape(6)  )  &
16248       &  )
16249 
16250     answer\_negative = answer < 0.0
16251     check\_negative = check < 0.0
16252     both\_negative = answer\_negative .and. check\_negative
16253     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
16254 
16255     judge = answer > check
16256     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
16257 
16258     judge\_rev = .not. judge
16259     err\_flag = any(judge\_rev)
16260     mask\_array = 1
16261     pos = maxloc(mask\_array, judge\_rev)
16262 
16263     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16264 
16265       wrong = check( &
16266                               &    pos(1), &
16267                       
16268         &    pos(2), &
16269                       
16270         &    pos(3), &
16271                       
16272         &    pos(4), &
16273                       
16274         &    pos(5), &
16275                       
16276         &    pos(6)  )
16277 
16278       right = answer( &
16279                               &    pos(1), &
16280                       
16281         &    pos(2), &
16282                       
16283         &    pos(3), &
16284                       
16285         &    pos(4), &
16286                       
16287         &    pos(5), &
16288                       
16289         &    pos(6)  )
16290 
16291                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
16292                       
16293       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
16294                       
16295       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
16296                       
16297       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
16298                       
16299       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
16300                       
16301       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
16302                       
16303 
16304       pos\_str = \textcolor{stringliteral}{'('} // &
16305                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
16306                       
16307         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
16308                       
16309         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
16310                       
16311         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
16312                       
16313         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
16314                       
16315         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{')'}
16316 
16317       \textcolor{keywordflow}{if} ( both\_negative( &
16318                               &    pos(1), &
16319                       
16320         &    pos(2), &
16321                       
16322         &    pos(3), &
16323                       
16324         &    pos(4), &
16325                       
16326         &    pos(5), &
16327                       
16328         &    pos(6)  )  ) \textcolor{keywordflow}{then}
16329 
16330         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
16331       \textcolor{keywordflow}{else}
16332         abs\_mes = \textcolor{stringliteral}{''}
16333 
16334 \textcolor{keywordflow}{      end if}
16335 
16336 \textcolor{keywordflow}{    end if}
16337     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
16338     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
16339 
16340                     
16341 
16342 
16343     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16344       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16345       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16346       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16347         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
16348       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
16349       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16350         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
16351 
16352       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16353     \textcolor{keywordflow}{else}
16354       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
16355 \textcolor{keywordflow}{    end if}
16356 
16357 
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__test_ad6ccace8abdb7ed674fedc04f39da7a8}\label{namespacedc__test_ad6ccace8abdb7ed674fedc04f39da7a8}} 
\index{dc\+\_\+test@{dc\+\_\+test}!dctestassertlessthanreal7@{dctestassertlessthanreal7}}
\index{dctestassertlessthanreal7@{dctestassertlessthanreal7}!dc\+\_\+test@{dc\+\_\+test}}
\subsubsection{\texorpdfstring{dctestassertlessthanreal7()}{dctestassertlessthanreal7()}}
{\footnotesize\ttfamily subroutine dc\+\_\+test\+::dctestassertlessthanreal7 (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in)}]{message,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{answer,  }\item[{real, dimension(\+:,\+:,\+:,\+:,\+:,\+:,\+:), intent(in)}]{check,  }\item[{logical, intent(in), optional}]{negative\+\_\+support }\end{DoxyParamCaption})}



Definition at line 16363 of file dc\+\_\+test.\+f90.



References dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
16363     \textcolor{keywordtype}{use }\hyperlink{namespacesysdep}{sysdep}\textcolor{keywordtype}{, only}: \hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}
16364     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}
16365     \textcolor{keywordtype}{implicit none}
16366     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(in)}:: message
16367     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: answer(:,:,:,:,:,:,:)
16368     \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)}:: check(:,:,:,:,:,:,:)
16369     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}:: negative\_support
16370     \textcolor{keywordtype}{logical}:: err\_flag
16371     \textcolor{keywordtype}{logical}:: negative\_support\_on
16372     \textcolor{keywordtype}{character(STRING)}:: pos\_str
16373     \textcolor{keywordtype}{character(TOKEN)}:: abs\_mes
16374     \textcolor{keywordtype}{real}:: wrong, right
16375 
16376                         \textcolor{keywordtype}{integer}:: answer\_shape(7), check\_shape(7), pos(7)
16377     \textcolor{keywordtype}{logical}:: consist\_shape(7)
16378     \textcolor{keywordtype}{character(TOKEN)}:: pos\_array(7)
16379     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}:: mask\_array(:,:,:,:,:,:,:)
16380     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge(:,:,:,:,:,:,:)
16381     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: judge\_rev(:,:,:,:,:,:,:)
16382     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: answer\_negative(:,:,:,:,:,:,:)
16383     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: check\_negative(:,:,:,:,:,:,:)
16384     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{allocatable}:: both\_negative(:,:,:,:,:,:,:)
16385                     
16386 
16387   \textcolor{keywordflow}{continue}
16388     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(negative\_support)) \textcolor{keywordflow}{then}
16389       negative\_support\_on = negative\_support
16390     \textcolor{keywordflow}{else}
16391       negative\_support\_on = .true.
16392 \textcolor{keywordflow}{    end if}
16393 
16394     err\_flag = .false.
16395 
16396                     
16397     answer\_shape = shape(answer)
16398     check\_shape = shape(check)
16399 
16400     consist\_shape = answer\_shape == check\_shape
16401 
16402     \textcolor{keywordflow}{if} (.not. all(consist\_shape)) \textcolor{keywordflow}{then}
16403       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16404       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16405       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  shape of check is ('}, check\_shape, \textcolor{stringliteral}{')'}
16406       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is INCORRECT'}
16407       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'  Correct shape of answer is ('}, answer\_shape, \textcolor{stringliteral}{')'}
16408 
16409       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16410 \textcolor{keywordflow}{    end if}
16411 
16412 
16413     \textcolor{keyword}{allocate}( mask\_array( &
16414                             &    answer\_shape(1), &
16415                       
16416       &    answer\_shape(2), &
16417                       
16418       &    answer\_shape(3), &
16419                       
16420       &    answer\_shape(4), &
16421                       
16422       &    answer\_shape(5), &
16423                       
16424       &    answer\_shape(6), &
16425                       
16426       &    answer\_shape(7)  )  &
16427       &  )
16428 
16429     \textcolor{keyword}{allocate}( judge( &
16430                             &    answer\_shape(1), &
16431                       
16432       &    answer\_shape(2), &
16433                       
16434       &    answer\_shape(3), &
16435                       
16436       &    answer\_shape(4), &
16437                       
16438       &    answer\_shape(5), &
16439                       
16440       &    answer\_shape(6), &
16441                       
16442       &    answer\_shape(7)  )  &
16443       &  )
16444 
16445     \textcolor{keyword}{allocate}( judge\_rev( &
16446                             &    answer\_shape(1), &
16447                       
16448       &    answer\_shape(2), &
16449                       
16450       &    answer\_shape(3), &
16451                       
16452       &    answer\_shape(4), &
16453                       
16454       &    answer\_shape(5), &
16455                       
16456       &    answer\_shape(6), &
16457                       
16458       &    answer\_shape(7)  )  &
16459       &  )
16460 
16461     \textcolor{keyword}{allocate}( answer\_negative( &
16462                             &    answer\_shape(1), &
16463                       
16464       &    answer\_shape(2), &
16465                       
16466       &    answer\_shape(3), &
16467                       
16468       &    answer\_shape(4), &
16469                       
16470       &    answer\_shape(5), &
16471                       
16472       &    answer\_shape(6), &
16473                       
16474       &    answer\_shape(7)  )  &
16475       &  )
16476 
16477     \textcolor{keyword}{allocate}( check\_negative( &
16478                             &    answer\_shape(1), &
16479                       
16480       &    answer\_shape(2), &
16481                       
16482       &    answer\_shape(3), &
16483                       
16484       &    answer\_shape(4), &
16485                       
16486       &    answer\_shape(5), &
16487                       
16488       &    answer\_shape(6), &
16489                       
16490       &    answer\_shape(7)  )  &
16491       &  )
16492 
16493     \textcolor{keyword}{allocate}( both\_negative( &
16494                             &    answer\_shape(1), &
16495                       
16496       &    answer\_shape(2), &
16497                       
16498       &    answer\_shape(3), &
16499                       
16500       &    answer\_shape(4), &
16501                       
16502       &    answer\_shape(5), &
16503                       
16504       &    answer\_shape(6), &
16505                       
16506       &    answer\_shape(7)  )  &
16507       &  )
16508 
16509     answer\_negative = answer < 0.0
16510     check\_negative = check < 0.0
16511     both\_negative = answer\_negative .and. check\_negative
16512     \textcolor{keywordflow}{if} (.not. negative\_support\_on) both\_negative = .false.
16513 
16514     judge = answer > check
16515     \textcolor{keywordflow}{where} (both\_negative) judge = .not. judge
16516 
16517     judge\_rev = .not. judge
16518     err\_flag = any(judge\_rev)
16519     mask\_array = 1
16520     pos = maxloc(mask\_array, judge\_rev)
16521 
16522     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16523 
16524       wrong = check( &
16525                               &    pos(1), &
16526                       
16527         &    pos(2), &
16528                       
16529         &    pos(3), &
16530                       
16531         &    pos(4), &
16532                       
16533         &    pos(5), &
16534                       
16535         &    pos(6), &
16536                       
16537         &    pos(7)  )
16538 
16539       right = answer( &
16540                               &    pos(1), &
16541                       
16542         &    pos(2), &
16543                       
16544         &    pos(3), &
16545                       
16546         &    pos(4), &
16547                       
16548         &    pos(5), &
16549                       
16550         &    pos(6), &
16551                       
16552         &    pos(7)  )
16553 
16554                             \textcolor{keyword}{write}(unit=pos\_array(1), fmt=\textcolor{stringliteral}{"(i20)"}) pos(1)
16555                       
16556       \textcolor{keyword}{write}(unit=pos\_array(2), fmt=\textcolor{stringliteral}{"(i20)"}) pos(2)
16557                       
16558       \textcolor{keyword}{write}(unit=pos\_array(3), fmt=\textcolor{stringliteral}{"(i20)"}) pos(3)
16559                       
16560       \textcolor{keyword}{write}(unit=pos\_array(4), fmt=\textcolor{stringliteral}{"(i20)"}) pos(4)
16561                       
16562       \textcolor{keyword}{write}(unit=pos\_array(5), fmt=\textcolor{stringliteral}{"(i20)"}) pos(5)
16563                       
16564       \textcolor{keyword}{write}(unit=pos\_array(6), fmt=\textcolor{stringliteral}{"(i20)"}) pos(6)
16565                       
16566       \textcolor{keyword}{write}(unit=pos\_array(7), fmt=\textcolor{stringliteral}{"(i20)"}) pos(7)
16567                       
16568 
16569       pos\_str = \textcolor{stringliteral}{'('} // &
16570                               &    trim(adjustl(pos\_array(1))) // \textcolor{stringliteral}{','} // &
16571                       
16572         &    trim(adjustl(pos\_array(2))) // \textcolor{stringliteral}{','} // &
16573                       
16574         &    trim(adjustl(pos\_array(3))) // \textcolor{stringliteral}{','} // &
16575                       
16576         &    trim(adjustl(pos\_array(4))) // \textcolor{stringliteral}{','} // &
16577                       
16578         &    trim(adjustl(pos\_array(5))) // \textcolor{stringliteral}{','} // &
16579                       
16580         &    trim(adjustl(pos\_array(6))) // \textcolor{stringliteral}{','} // &
16581                       
16582         &    trim(adjustl(pos\_array(7))) // \textcolor{stringliteral}{')'}
16583 
16584       \textcolor{keywordflow}{if} ( both\_negative( &
16585                               &    pos(1), &
16586                       
16587         &    pos(2), &
16588                       
16589         &    pos(3), &
16590                       
16591         &    pos(4), &
16592                       
16593         &    pos(5), &
16594                       
16595         &    pos(6), &
16596                       
16597         &    pos(7)  )  ) \textcolor{keywordflow}{then}
16598 
16599         abs\_mes = \textcolor{stringliteral}{'ABSOLUTE value of'}
16600       \textcolor{keywordflow}{else}
16601         abs\_mes = \textcolor{stringliteral}{''}
16602 
16603 \textcolor{keywordflow}{      end if}
16604 
16605 \textcolor{keywordflow}{    end if}
16606     \textcolor{keyword}{deallocate}(mask\_array, judge, judge\_rev)
16607     \textcolor{keyword}{deallocate}(answer\_negative, check\_negative, both\_negative)
16608 
16609                     
16610 
16611 
16612     \textcolor{keywordflow}{if} (err\_flag) \textcolor{keywordflow}{then}
16613       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** Error [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' FAILURE'}
16614       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{''}
16615       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16616         &        \textcolor{stringliteral}{' check'} // trim(pos\_str) // \textcolor{stringliteral}{'  = '}, wrong
16617       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{'    is NOT LESS THAN'}
16618       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' '} // trim(abs\_mes) // &
16619         &        \textcolor{stringliteral}{' answer'} // trim(pos\_str) // \textcolor{stringliteral}{' = '}, right
16620 
16621       \textcolor{keyword}{call }\hyperlink{interfacesysdep_1_1abortprogram}{abortprogram}(\textcolor{stringliteral}{''})
16622     \textcolor{keywordflow}{else}
16623       \textcolor{keyword}{write}(*,*) \textcolor{stringliteral}{' *** MESSAGE [AssertLT] *** Checking '} // trim(message) // \textcolor{stringliteral}{' OK'}
16624 \textcolor{keywordflow}{    end if}
16625 
16626 
\end{DoxyCode}
