[MITgcm-devel] thsice_get_exf

Jean-Michel Campin jmc at ocean.mit.edu
Fri Oct 15 14:38:04 EDT 2010


Hi Martin,

I did remove those initialisations. Can't have them since they will
reset valid output when Tsrf had already converged (iceFlag=F).

But I have a remark about your check-in message of thsice_solve4temp.F
(and tag-index) regarding iterate4Tsf :
I was suspecting it could cause some complications with TAF so 
I disable it with "#ifndef ALLOW_AUTODIFF_TAMC".
I have a question: Could you compare the timing you get 
when you disable this iterate4Tsf (like what is done with
ALLOW_AUTODIFF_TAMC, similar to your #ifdef SEAICE_VECTORIZE_LSR)
with the timing you currently have ? If with bring a good speed-up,
it could be added with an #ifdef ???_VECTORIZE_??? option.

Cheers,
Jean-Michel

On Fri, Oct 15, 2010 at 06:02:16PM +0200, Martin Losch wrote:
> Hi Jean-Michel,
> 
> an interesting problem remains: initializing the output variables
>          flxExcSw(i,j) = 0. _d 0
>          dFlxdT  (i,j) = 0. _d 0
>          evapLoc (i,j) = 0. _d 0
>          dEvdT   (i,j) = 0. _d 0
> in the beginning of the routine thsice_get_exf, breaks the verification experiment. I do not see why. Do you have any idea? (and Patrick will need that for the adjoint, I am pretty sure)
> 
> Have a good weekend.
> 
> Martin
> 
> On Oct 15, 2010, at 4:04 PM, Jean-Michel Campin wrote:
> 
> > Hi Martin,
> > 
> > You are right and we can get rid off those lines/cases.
> > Or may be just to comment them out (to emphasis the
> > differences between ocean and sea-ice/snow) ?
> > As you prefer.
> > 
> > Cheers,
> > Jean-Michel
> > 
> > On Fri, Oct 15, 2010 at 03:37:18PM +0200, Martin Losch wrote:
> >> Hi Jean-Michel,
> >> 
> >> could you check for me the following parts of thsice_get_exf:
> >> We have:
> >>         IF ( hSnow(i,j).GT.3. _d -1 ) THEN
> >>           iceornot=2
> >>          ELSE
> >> 	           iceornot=1
> >>          ENDIF
> >> So that iceornot == 0 never happens. But then we have
> >>                  IF ( iceornot.EQ.0 ) THEN
> >> 	           lath  = flamb
> >> 	           qsat_fac = cvapor_fac
> >> 	           qsat_exp = cvapor_exp
> >> 	          ELSE
> >> 	           lath  = flamb+flami
> >> 	           qsat_fac = cvapor_fac_ice
> >> 	           qsat_exp = cvapor_exp_ice
> >> 	          ENDIF
> >> which will always be the second case, right? Similarly:
> >> C--- Upward long wave radiation
> >> 	          IF ( iceornot.EQ.0 ) THEN
> >> 	            emiss = ocean_emissivity
> >> 	          ELSEIF (iceornot.EQ.2) THEN
> >> 	            emiss = snow_emissivity
> >> 	          ELSE
> >> 	            emiss = ice_emissivity
> >> 	          ENDIF
> >> Where emiss will always be snow or ice_emissivity, but never ocean, correct?
> >> 
> >> Can we get rid of the iceornot==0 option (otherwise I'll have to introduce more 2d fields for lath and emiss, which I want to avoid)
> >> 
> >> Martin
> >> 
> >> _______________________________________________
> >> MITgcm-devel mailing list
> >> MITgcm-devel at mitgcm.org
> >> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> > 
> > _______________________________________________
> > MITgcm-devel mailing list
> > MITgcm-devel at mitgcm.org
> > http://mitgcm.org/mailman/listinfo/mitgcm-devel
> 
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel



More information about the MITgcm-devel mailing list