[MITgcm-devel] Inverted echo sounders

Matthew Mazloff mmazloff at ucsd.edu
Fri Jan 14 18:27:16 EST 2011


Hello,

So now I am adding full tomography constraints.  I save daily sound  
speed anomaly in cost_averagesfields.  then in cost_tomo I read in a  
path and divide this by sound speed to get a travel time -- global sum  
it -- then compare it to obs.

Its not the most efficient -- but that will come with time -- i hope.

I would love to get this checked in at some point....

If anyone is especially interested in helping let me know.  Otherwise  
when I get a version I am happy with I will pester someone to check it  
in.

We can talk more at the may ECCO meeting

-Matt

ps> would like to get obcs mode code checked in too...




On May 27, 2010, at 4:02 PM, Matthew Mazloff wrote:

> (Final) follow up
>
> I did manage to get the inverted echo sounder constraints working.  I
> had to put the calculation of travel time inside cost_averagesfields
> to not have major recomputations.  (so cost_averages_ies has been
> discarded)
>
> Basically daily average travel time is calculated -- which may be of
> interest even if there is no observations to compare to...
>
> eventually it will make its way to mitgcm_contrib/sose, but if anyone
> is interested in the code sooner please let me know
>
> -Matt
>
>
> On May 17, 2010, at 3:23 PM, Matthew Mazloff wrote:
>
>> Hello,
>>
>> So a follow up
>>
>> I added the cost calculation component --
>>
>> Using the bp pressure code as a template I added:
>> cost_ies_read.F  and  cost_ies.F   (and added these into
>> ecco_ad_diff.list)
>>
>> These are called form the_main_loop.F
>> Small changes were also made to
>> ecco_cost_final.F      ecco_readparms.F
>> ctrl.h     ecco_cost.h
>>
>> in case there is a desire to check in this addition the list of
>> effected files is now
>> cost_ies_read.F   cost_ies.F   cost_averages_ies.F
>> the_main_loop.F  ecco_cost_final.F  ecco_readparms.F
>> cost_averagesinit.F   ecco_cost_init_barfiles.F   cost_averagesfields
>> ctrl.h    ecco_cost.h   ctrl_dummy.h   cost_averages_bar_directives.h
>> ecco_ad_diff.list
>>
>>
>> However, I am getting way ahead of myself here -- because with this
>> code defined the divided adjoint is seriously broken....
>> ad_taf_output.f actually doesn't look that bad -- doesn't appear to
>> have too many extra loops -- but the divided.ctrl part is missing
>> have you seen this before?
>>
>> -Matt
>>
>>
>>
>> On May 15, 2010, at 12:46 PM, Matthew Mazloff wrote:
>>
>>> Hi Patrick,
>>>
>>> I want to constrain to daily averaged travel time for inverted echo
>>> sounders -- so I put
>>> # define ALLOW_IESTAU_COST_CONTRIBUTION
>>> in ECCO_CPPOPTIONS.h
>>>
>>> with this defined cost_averagesfields calls a new routine:
>>> cost_averages_ies.F
>>>
>>> Here T,S, and P are used to get sound speed.  Sound speed is then
>>> integrated up to get daily average travel time and this is saved as
>>> file iestaubar
>>>
>>> The files I had to make minor additions too are:
>>> ctrl_dummy.h   (declared xx_iestaubar_mean_dummy)
>>> cost_averages_bar_directives.h  (CADJ STORE  
>>> xx_iestaubar_mean_dummy =
>>> onetape)
>>> ecco_cost.h  (declared iestaubar, iestaubarfile)
>>> cost_averagesinit.F  (iestaubar, xx_iestaubar_mean_dummy)
>>> ecco_cost_init_barfiles.F (fnameiestaubar,adfnameiestaubar)
>>> and I added cost_averages_ies.f to ecco_ad_diff.list
>>> cost_averagesfields.F  (now calls cost_averages_ies)
>>>
>>> The code compiles but gives major recomputations.  See below
>>>
>>> Is there any place obvious I need to add a store?
>>>
>>> Thanks
>>> Matt
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> From taf_ad.log:
>>>
>>> TAF RECOMPUTATION LOOP WARNING DOLOOP_STMT ad_input_code.f:441434 in
>>> the_main_loop
>>> extensive recomputations are required.
>>> The responsible variables are :
>>> psbar
>>> ,sstbar
>>> ,wbar,xx_psbar_mean_dummy,xx_sstbar_mean_dummy,xx_wbar_mean_dummy
>>> TAF RECOMPUTATION WARNING DOLOOP_STMT ad_input_code.f:441434 in
>>> the_main_loop
>>> triggered by      :
>>> apressure0,apressure1,aqh0,aqh1,atemp0,atemp1,empmr0,empmr1,etan,evap,gs,gsnm1,gt,gtnm1,gunm1,gvnm1,hflux0,hflux1,lwdown0,lwdown1,lwflux0,lwflux1,obns,obns0,obns1,obnt,obnt0,obnt1,obnu0,obnu1,obnv0,obnv1,obss,obss0,obss1,obst,obst0,obst1,obsu0,obsu1,obsv0,obsv1,obws,obws0,obws1,obwt,obwt0,obwt1,obwu0,obwu1,obwv0,obwv1,pload0,pload1,precip0,precip1,psbar,qnet0,qnet1,qsw0,qsw1,runoff0,runoff1,salt,saltflux0,saltflux1,sflux0,sflux1,siceload,sss0,sss1,sst0,sst1,sstbar,surfaceforcingtice,swdown0,swdown1,swflux0,swflux1,taux0,taux1,tauy0,tauy1,theta,totphihyd,ustress0,ustress1,uvel,uwind0,uwind1,vstress0,vstress1,vvel,vwind0,vwind1,wbar,wspeed0,wspeed1,wvel,xx_aqh0,xx_aqh1,xx_atemp0,xx_atemp1,xx_obcsn0,xx_obcsn1,xx_obcss0,xx_obcss1,xx_obcsw0,xx_obcsw1,xx_precip0,xx_precip1,xx_psbar_mean_dummy,xx_sstbar_mean_dummy,xx_swdown0,xx_swdown1,xx_uwind0,xx_uwind1,xx_vwind0,xx_vwind1,xx_wbar_mean_dummy
>>> still to be recomputed :
>>> apressure0,apressure1,aqh0,aqh1,atemp0,atemp1,empmr0,empmr1,etan,evap,gs,gsnm1,gt,gtnm1,gunm1,gvnm1,hflux0,hflux1,lwdown0,lwdown1,lwflux0,lwflux1,obns,obns0,obns1,obnt,obnt0,obnt1,obnu0,obnu1,obnv0,obnv1,obss,obss0,obss1,obst,obst0,obst1,obsu0,obsu1,obsv0,obsv1,obws,obws0,obws1,obwt,obwt0,obwt1,obwu0,obwu1,obwv0,obwv1,pload0,pload1,precip0,precip1,psbar,qnet0,qnet1,qsw0,qsw1,runoff0,runoff1,salt,saltflux0,saltflux1,sflux0,sflux1,siceload,sss0,sss1,sst0,sst1,sstbar,surfaceforcingtice,swdown0,swdown1,swflux0,swflux1,taux0,taux1,tauy0,tauy1,theta,totphihyd,ustress0,ustress1,uvel,uwind0,uwind1,vstress0,vstress1,vvel,vwind0,vwind1,wbar,wspeed0,wspeed1,wvel,xx_aqh0,xx_aqh1,xx_atemp0,xx_atemp1,xx_obcsn0,xx_obcsn1,xx_obcss0,xx_obcss1,xx_obcsw0,xx_obcsw1,xx_precip0,xx_precip1,xx_psbar_mean_dummy,xx_sstbar_mean_dummy,xx_swdown0,xx_swdown1,xx_uwind0,xx_uwind1,xx_vwind0,xx_vwind1,xx_wbar_mean_dummy
>>> TAF RECOMPUTATION WARNING SEQU_STMT ad_input_code.f:441433 in
>>> the_main_loop
>>> triggered by      :
>>> apressure0,apressure1,aqh0,aqh1,atemp0,atemp1,empmr0,empmr1,etan,evap,gs,gsnm1,gt,gtnm1,gunm1,gvnm1,hflux0,hflux1,lwdown0,lwdown1,lwflux0,lwflux1,obns,obns0,obns1,obnt,obnt0,obnt1,obnu0,obnu1,obnv0,obnv1,obss,obss0,obss1,obst,obst0,obst1,obsu0,obsu1,obsv0,obsv1,obws,obws0,obws1,obwt,obwt0,obwt1,obwu0,obwu1,obwv0,obwv1,pload0,pload1,precip0,precip1,psbar,qnet0,qnet1,qsw0,qsw1,runoff0,runoff1,salt,saltflux0,saltflux1,sflux0,sflux1,siceload,sss0,sss1,sst0,sst1,sstbar,surfaceforcingtice,swdown0,swdown1,swflux0,swflux1,taux0,taux1,tauy0,tauy1,theta,totphihyd,ustress0,ustress1,uvel,uwind0,uwind1,vstress0,vstress1,vvel,vwind0,vwind1,wbar,wspeed0,wspeed1,wvel,xx_aqh0,xx_aqh1,xx_atemp0,xx_atemp1,xx_obcsn0,xx_obcsn1,xx_obcss0,xx_obcss1,xx_obcsw0,xx_obcsw1,xx_precip0,xx_precip1,xx_psbar_mean_dummy,xx_sstbar_mean_dummy,xx_swdown0,xx_swdown1,xx_uwind0,xx_uwind1,xx_vwind0,xx_vwind1,xx_wbar_mean_dummy
>>> still to be recomputed :
>>> psbar
>>> ,sstbar
>>> ,wbar,xx_psbar_mean_dummy,xx_sstbar_mean_dummy,xx_wbar_mean_dummy
>>> TAF INFO    ad_input_code.f:441474 : tape computations inserted
>>> TAF RECOMPUTATION LOOP WARNING DOLOOP_STMT ad_input_code.f:441434 in
>>> the_main_loop
>>> extensive recomputations are required.
>>> The responsible variables are :
>>> psbar
>>> ,sstbar
>>> ,wbar,xx_psbar_mean_dummy,xx_sstbar_mean_dummy,xx_wbar_mean_dummy
>>> *WARNING* : default new identifier ilev_21
>>> changed to ilev_22
>>> TAF RECOMPUTATION WARNING DOLOOP_STMT ad_input_code.f:441434 in
>>> the_main_loop
>>> .
>>> .
>>> .
>>> .
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> 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