<div dir="ltr"><span></span></div><div dir="ltr">Hi Neill and Edward,<div><br></div><div>Thank you very much for your help.</div><div><br></div><div>I’m now understanding better why there are two deltaT parameters. This allows different deltaTs for online and offline models. I think the deltaTtracer is somewhat redundant in my case as my velocity data are not the online outputs. Nevertheless, I am now setting the deltaTtracer exactly the same as my deltaToffline, and the results are much better now.</div><div><br></div><div>It is indeed that the correction at the boundaries will be problematic because the finite differences of the streamfunction may involve land points. To verify the divergence after the correction, I try to output the divergence diagnosed by mitgcm. It is weird that the momHDiv diagnosis cannot be output in my offline run (I have already added vectorInvariantmomemtum=true to the data file). I only peek at my tracer field after two years, and it looks fine even at the boundaries. That is, there is no accumulation due to convergence at any points.</div><div><br></div><div>So Neill, I just don’t know how you verify your divergence after correction. If you calculate the divergence yourself, you should take into account the factors such as the staggered c-grid, land-sea mask, partial cell etc. The python library xmitgcm is very good at dealing with these (thanks to Ryan).</div><div><br></div><div>I am also curious about how does mitgcm assign the velocity data to the staggered c-grid, as they are predefined at exactly the same grid points in Aviso NC files.</div><div><br></div><div>Thanks again to you guys.</div><div><span style="font-size: 9pt;"><br></span></div><div><span style="font-size: 9pt;">------------------</span></div><div><span style="font-size: 10pt;">Best regards</span><span style="font-size: 10pt;"> </span></div><div><span style="font-size: 10pt;"><br></span></div><div><span style="font-size: 10pt;">Yu-Kun Qian (</span><span style="font-size: 10pt;">钱钰坤</span><span style="font-size: 10pt;">)</span></div><div><span style="font-size: 10pt;">Center for Monsoon and Environment Research</span></div><div><span style="font-size: 10pt;">Department of Atmospheric Sciences</span></div><div><span style="font-size: 10pt;">School of Environmental Science and Engineering</span><span style="font-size: 10pt;"> </span></div><div><span style="font-size: 10pt;">Sun Yat-sen University</span><span style="font-size: 10pt;"> </span></div><div><span style="font-size: 10pt;">No. 135 Xingang West Road, Haizhu District</span><span style="font-size: 10pt;"> </span></div><div><span style="font-size: 10pt;">Guangzhou, 510275, P.R. China</span><span style="font-size: 10pt;"> </span></div><div><span style="font-size: 10pt;">Tel; 020-84115227</span><span style="font-size: 10pt;"> </span></div><div><span style="font-size: 10pt;">Email:</span><span style="font-size: 10pt;"> </span><a href="mailto:qianyk@mail2.sysu.edu.cn" style="font-size: 10pt;">qianyk@mail3.sysu.edu.cn</a></div><div><br></div><div><br><div dir="ltr"><br>在 2019年5月31日,23:46,Neill Mackay <<a href="mailto:neill_mackay@hotmail.com">neill_mackay@hotmail.com</a>> 写道:<br><br></div><blockquote type="cite"><div dir="ltr">
<style></style><!--[endif]----><style></style><!--[endif]----><!--[endif]---->
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi Yu-Kun,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">I used the offline model to do a very similar thing to what you’re doing during my PhD (a few years ago now). I think Ed is right that the deltaToffline variable just applies to the flow field you
are prescribing, and as far as I understand all it does is determines how offline MITgcm works out the file names it is expecting for the fields, and when they are to be loaded in the course of the run. I think that the way it is designed is as if it were
reading in velocity fields previously output by an online run of MITgcm, which will have a specific naming convention based on their delta T online. So if you’re creating your own fields from altimetry (which was what I did too) you have to give them file
names that mimic the naming convention MITgcm is expecting.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Also as far as I remember the deltaTtracer is the one you need to get right for stability. I just kept halving it until it didn’t blow up any more! I never did figure out what deltaTclock was for.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Also regarding the correction of the flow fields for non-divergence, I did try this too. What do you do at the boundaries? I found that the non-divergent correction code really messed up the fields
due to the large divergence where the ocean meets land, but perhaps you’ve found a way of dealing with that.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Neill.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> MITgcm-support <<a href="mailto:mitgcm-support-bounces@mitgcm.org">mitgcm-support-bounces@mitgcm.org</a>>
<b>On Behalf Of </b>Edward W Doddridge<br>
<b>Sent:</b> 31 May 2019 15:11<br>
<b>To:</b> <a href="mailto:mitgcm-support@mitgcm.org">mitgcm-support@mitgcm.org</a><br>
<b>Subject:</b> Re: [MITgcm-support] nondivergent flow advecting a tracer<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi You-Kun, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I’ve actually never used the offline code, so I’m not certain. I believe that deltaToffline is the time step used by the model to select the correct velocity file, while delaTtracer is the time step used to advect the tracer in the flow
field.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">But, you might find the answers you’re looking for here: <a href="http://mitgcm.org/public/r2_manual/final/online_documents/node170.html">http://mitgcm.org/public/r2_manual/final/online_documents/node170.html</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">These are the example experiments using the offline code. They haven’t been translated from the old documentation yet, so if you only looked at read the docs, you might have missed them.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Ed<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><span style=" font-size:12.0pt ; ; ; "><o:p> </o:p></span></span></p>
<div class="MsoNormal" align="center" style="text-align:center"><span class="apple-style-span"><span style=" font-size:12.0pt ; ; ; ">
<hr size="2" width="100%" align="center">
</span></span></div>
<p class="MsoNormal"><span class="apple-style-span"><b><span style=" font-size:10.0pt ; ; ; ">Edward Doddridge</span></b></span><span style=" font-size:10.0pt ; ; ; "><br>
<span class="apple-style-span"><i>Postdoctoral researcher</i></span></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><i><span style=" font-size:10.0pt ; ; ; ">Earth, Atmospheric and Planetary Sciences</span></i></span><span style=" font-size:12.0pt ; ; ; "><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><i><span style=" font-size:10.0pt ; ; ; ">Massachusetts Institute of Technology</span></i></span><span style=" font-size:12.0pt ; ; ; "><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><i><span style=" font-size:10.0pt ; ; ; "><br>
<br>
</span></i><span style=" font-size:12.0pt ; ; ; "><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><span style=" font-size:10.0pt ; ; ; "><a href="http://www.doddridge.me">www.doddridge.me</a></span></span><span style=" font-size:12.0pt ; ; ; "><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On 30 May 2019, at 12:38, <span style=" ; ">
钱钰坤</span> <<a href="mailto:qianyk@mail3.sysu.edu.cn">qianyk@mail3.sysu.edu.cn</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Hi Edward,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks very much for your reminding. After searching for the 'cfl' stuff in STDOUT, I found indeed<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">that the CFL condition is violated by using deltaTtracer=86400. So I need to reduce this parameter.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I am now confused that how does this parameter (and deltaTClock) in data file relate to my daily<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">velocity data and deltaToffline=3600 set in data.off? Can this parameter be adjusted at will without<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">any constraint in my OffLine Run?<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style=" font-size:9.0pt ; ; ; "><br>
------------------<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style=" font-size:10.0pt ; ; ">Best regards
<br>
<br>
Yu-Kun Qian (</span><span style=" font-size:10.0pt ; ; ">钱钰坤</span><span style=" font-size:10.0pt ; ; ">)
<br>
Center for Monsoon and Environment Research</span><span style=" font-size:10.5pt ; ; ">
<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style=" font-size:10.0pt ; ; ">Department of Atmospheric Sciences<br>
School of Environmental Science and Engineering <br>
Sun Yat-sen University <br>
No. 135 Xingang West Road, Haizhu District <br>
Guangzhou, 510275, P.R. China <br>
Tel; 020-84115227 <br>
Email: <a href="mailto:qianyk@mail2.sysu.edu.cn">qianyk@mail3.sysu.edu.cn</a> </span>
<span style=" font-size:10.5pt ; ; "><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style=" font-size:10.5pt ; ; "> <o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style=" font-size:9.0pt ; ; ">------------------ </span><span style=" font-size:9.0pt ; ; ">原始</span><span style=" font-size:9.0pt ; ; ">邮件</span><span style=" font-size:9.0pt ; ; "> ------------------<o:p></o:p></span></p>
</div>
<div>
<div id="menu_sender">
<p class="MsoNormal" style="background:#EFEFEF"><b><span style=" font-size:9.0pt ; ; ">发件人</span></b><b><span style="font-size:9.0pt">:</span></b><span style="font-size:9.0pt"> "Edward W Doddridge"<<a href="mailto:ewd@mit.edu">ewd@mit.edu</a>>;<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:#EFEFEF"><b><span style=" font-size:9.0pt ; ; ">发送时间</span></b><b><span style="font-size:9.0pt">:</span></b><span style="font-size:9.0pt"> 2019</span><span style=" font-size:9.0pt ; ; ">年</span><span style="font-size:9.0pt">5</span><span style=" font-size:9.0pt ; ; ">月</span><span style="font-size:9.0pt">30</span><span style=" font-size:9.0pt ; ; ">日</span><span style="font-size:9.0pt">(</span><span style=" font-size:9.0pt ; ; ">星期四</span><span style="font-size:9.0pt">)
</span><span style=" font-size:9.0pt ; ; ">晚上</span><span style="font-size:9.0pt">10:06<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:#EFEFEF"><b><span style=" font-size:9.0pt ; ; ">收件人</span></b><b><span style="font-size:9.0pt">:</span></b><span style="font-size:9.0pt"> "<a href="mailto:mitgcm-support@mitgcm.org">mitgcm-support@mitgcm.org</a>"<<a href="mailto:mitgcm-support@mitgcm.org">mitgcm-support@mitgcm.org</a>>;
<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="background:#EFEFEF"><b><span style=" font-size:9.0pt ; ; ">主</span></b><b><span style=" font-size:9.0pt ; ; ">题</span></b><b><span style="font-size:9.0pt">:</span></b><span style="font-size:9.0pt"> Re:
[MITgcm-support] nondivergent flow advecting a tracer<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hi Yu-Kun, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I suspect that your timestep violates the cfl stability criterion. You should check that deltaTtracer*velocity/grid_spacing is less than 1. Ideally you’d like it to be much less than 1.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Ed<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><span style=" font-size:12.0pt ; ; "><o:p> </o:p></span></span></p>
<div class="MsoNormal" align="center" style="text-align:center"><span class="apple-style-span"><span style=" font-size:12.0pt ; ; ">
<hr size="2" width="100%" align="center">
</span></span></div>
<p class="MsoNormal"><span class="apple-style-span"><b><span style=" font-size:10.0pt ; ; ">Edward Doddridge</span></b></span><span style=" font-size:10.0pt ; ; "><br>
<span class="apple-style-span"><i>Postdoctoral researcher</i></span></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><i><span style=" font-size:10.0pt ; ; ">Earth, Atmospheric and Planetary Sciences</span></i></span><span style=" font-size:12.0pt ; ; "><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><i><span style=" font-size:10.0pt ; ; ">Massachusetts Institute of Technology</span></i></span><span style=" font-size:12.0pt ; ; "><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><i><span style=" font-size:10.0pt ; ; "><br>
<br>
</span></i><span style=" font-size:12.0pt ; ; "><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-style-span"><span style=" font-size:10.0pt ; ; "><a href="http://www.doddridge.me/">www.doddridge.me</a></span></span><span style=" font-size:12.0pt ; ; "><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On 30 May 2019, at 09:48, <span style=" ; ">
钱钰坤</span> <<a href="mailto:qianyk@mail3.sysu.edu.cn">qianyk@mail3.sysu.edu.cn</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Hi all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I am using a series of geostrophic velocity data (derived from AVISO sea surface height)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">to advect a passive tracer in an offline mode. Following the paper by Abernathey and Marshall<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(2013, JGR), first I made a nondivergent correction to the original geostrophic velocity data<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">through Helmholtz Decomposition. Then I used the nondivergent velocity to advect a tracer.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">However, after a few timesteps the tracer field is unstable and generates very large values and<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">eventually contaminated the results.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I think there are two things need to be verified.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">First, the correction is done correctly. Actually<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I followed the guidance by Ryan Abernathey at:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <a href="https://github.com/rabernat/mitgcm_2D_global/blob/master/notebooks/correction.ipynb">
https://github.com/rabernat/mitgcm_2D_global/blob/master/notebooks/correction.ipynb</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I run the offline model first using original geostrophic velocity to dump the diagnostics of streamfunction<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(psi) and velocity potential (phi). Then I use the xmitgcm utility to calculate the nondivergent velocity as:<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"> u_psi = -(numpy.roll(psi, -1, axis=-2) - psi) / dyG / drF<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> v_psi = (numpy.roll(psi, -1, axis=-1) - psi) / dxG / drF<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal">This code above should be modified somewhat if one uses the latest xmitgcm released a few days ago.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I did not do any mask since I think the MITgcm model will mask the velocity when run in offline mode (<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I provided a bathymetry data to the model generated based on AVISO SSH land-sea mask).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Second, the offline model parameters (delta-t related) are correctly set. Although I've read some emails<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">on this issue, I'm still not so sure how to set these parameters. The following are my choices:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> data: deltaTtracer = 86400,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> deltaTClock = 86400,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> data.off: deltaToffline = 3600, (smaller dt for accuracy)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> offlineForcingPeriod = 86400, (AVISO data is daily mean)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> offlineForcingCycle = 0, (no need to reuse the velocity)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">When using the above params, the offline model asks for velocity data whose names are: u.0.data, u.24.data,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">u.48.data... So I rename the velocity data into this convention.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Now I am really confused why the tracer overflows after only 4-5 timesteps (days). Is there anything wrong<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">with the above two procedures?<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style=" font-size:9.0pt ; ; ; "><br>
<br>
------------------<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style=" font-size:10.0pt ; ; ">Best regards
<br>
<br>
Yu-Kun Qian (</span><span style=" font-size:10.0pt ; ; ">钱钰坤</span><span style=" font-size:10.0pt ; ; ">)
<br>
Center for Monsoon and Environment Research</span><span style=" font-size:10.5pt ; ; ">
<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style=" font-size:10.0pt ; ; ">Department of Atmospheric Sciences<br>
School of Environmental Science and Engineering <br>
Sun Yat-sen University <br>
No. 135 Xingang West Road, Haizhu District <br>
Guangzhou, 510275, P.R. China <br>
Tel; 020-84115227 <br>
Email: <a href="mailto:qianyk@mail2.sysu.edu.cn">qianyk@mail3.sysu.edu.cn</a> </span>
<span style=" font-size:10.5pt ; ; "><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style=" font-size:10.5pt ; ; "> <o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<p class="MsoNormal">_______________________________________________<br>
MITgcm-support mailing list<br>
<a href="mailto:MITgcm-support@mitgcm.org">MITgcm-support@mitgcm.org</a><br>
<a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
MITgcm-support mailing list<br>
<a href="mailto:MITgcm-support@mitgcm.org">MITgcm-support@mitgcm.org</a><br>
<a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div></blockquote></div></div>
<!--<![endif]-->