{"version":"1.0","provider_name":"nAG","provider_url":"https:\/\/nag.com","title":"University of Cambridge Research Fellow Praises the NAG Fortran Compiler - nAG","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"aFYIwPGI4b\"><a href=\"https:\/\/nag.com\/case-studies\/university-of-cambridge-research-fellow-praises-the-nag-fortran-compiler\/\">University of Cambridge Research Fellow Praises the <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Fortran Compiler<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/nag.com\/case-studies\/university-of-cambridge-research-fellow-praises-the-nag-fortran-compiler\/embed\/#?secret=aFYIwPGI4b\" width=\"600\" height=\"338\" title=\"&#8220;University of Cambridge Research Fellow Praises the &lt;span class=&quot;nag-n-override&quot; style=&quot;margin-left: 0 !important;&quot;&gt;&lt;i&gt;n&lt;\/i&gt;&lt;\/span&gt;AG Fortran Compiler&#8221; &#8212; nAG\" data-secret=\"aFYIwPGI4b\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/nag.com\/wp-content\/uploads\/2023\/05\/b7a0b1d6a221a25227a2aa4e482f21d3.jpg","thumbnail_width":510,"thumbnail_height":510,"description":"\u201cThe NAG Compiler is often my best tool when debugging complex Fortran code. One of my favourite sets of compiler flags is -g -O0 -C=all -mtrace -gline -ieee=stop. The excellent memory tracing and array bound checks, in combination with the analysis of floating point arithmetic, e.g. division by zero or floating point overflow, and reliable tracebacks to the line of code where an issue occurs, makes my life much easier. I love the NAG Compiler for its efficiency in finding sources of errors, verifying implementations, and assuring excellent code quality.\u201d"}