<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Dear J-M and all:</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Upon the merging of <a title="https://github.com/MITgcm/MITgcm/pull/927" class="OWAAutoLink" id="OWAb06708f2-a2c2-f221-5c03-811cdd3c4c64" href="https://github.com/MITgcm/MITgcm/pull/927">
927</a>(which was a good thing!), the tangent linear test of STREAMICE under Tapenade no longer worked, whereas it seemed to be giving accurate values. I am writing this email to run a proposed solution by the team, rather than submitting a PR unannounced,
 to get a feel for whether it would be welcomed, and looked at.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
The reason is that streamice_cg_solve.f is no longer passed to Tapenade, instead using a "manual" approach as with cg2d.f. This is necessary for large problems where the ad-generated adjoint code would be very slow and/or memory intensive and would preclude
 external library solvers. These issues would not apply as much to the TLM — but no "manual" solution exists.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
My idea for a solution, is to pass streamice_cg_solve.f through tapenade only when the TLM is compiled. I propose to do this by modifying genmake2 to look for "supplemental" files *_tlm_diff.list (in addition to *_ad_diff.list). A list of S/Rs called $(TLM_FILES)
 (or something) will be created and passed as an argument to tapenade, only for the TLM call. The *_tlm_diff.list files (e.g. streamice_tlm_diff.list) files will be optional, and only need contain files that are passed to the TLM but not adjoint. I think this
 is justified as in general the set of functions that the TLM can parse easily is larger than that of the adjoint.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
All the best</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Dan</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div class="elementToProof" id="Signature">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="background-color: rgb(255, 255, 255); margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 9.75pt; color: rgb(136, 136, 136);" class="elementToProof">
<span style="background-color: rgb(255, 255, 255);">--</span></div>
<div style="background-color: rgb(255, 255, 255); margin: 0px;" class="elementToProof">
<div style="background-color: rgb(255, 255, 255); margin: 0px;" class="elementToProof">
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12.8px; color: rgb(136, 136, 136);" class="elementToProof">
Daniel Goldberg, PhD (he/him)</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12.8px; color: rgb(136, 136, 136);" class="elementToProof">
Reader in Glaciology</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12.8px; color: rgb(136, 136, 136);" class="elementToProof">
School of Geosciences, University of Edinburgh<br>
<span style="font-family: arial, helvetica, clean, sans-serif; color: rgb(0, 0, 0); line-height: 15px;">Geography Building, Drummond Street, Edinburgh EH8 9XP</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: arial, helvetica, clean, sans-serif; font-size: 12.8px; color: rgb(0, 0, 0);" class="elementToProof">
<span style="line-height: 15px;"><a class="OWAAutoLink" id="OWAde05217b-7960-6449-a3fc-0fef949b6bd2" href="https://dngoldberg.github.io/">https://dngoldberg.github.io/</a></span></div>
</div>
</div>
</div>
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336.
</body>
</html>