nonlinear cost function not calculated in PSAS

Discussion about tangent linear and adjoint models, variational data assimilation, and other related issues.

Moderators: arango, robertson

Post Reply
Message
Author
Johannes
Posts: 7
Joined: Mon Mar 01, 2010 2:11 pm
Location: Norwegian Meteorological Institute
Contact:

nonlinear cost function not calculated in PSAS

#1 Unread post by Johannes »

I have experienced that the Nonlinear cost function is not being calculated in a 4D-PSAS application when the VERIFICATION cpp is activated.
Hence the variables NL_iDataPenalty and NL_fDataPenalty are zero in the resulting ocean_mod.nc file.

I learned that VERIFICATION is only to be used for runs without assimilation, logically. Using this option in PSAS (and possible also IS4DVAR R4DVAR) will not throw an error or warning, unfortunately.

User avatar
arango
Site Admin
Posts: 1347
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

Re: nonlinear cost function not calculated in PSAS

#2 Unread post by arango »

What are you reporting does not make sense to me. The NL_iDataPenalty and NL_fDataPenalty is computed and any of the 4D-Var drivers; w4dpsas_ocean.h in your case. In none of those drivers the VERIFICATION option is used. You just need to use the grep command to confirn this.

The definition of these variables in the MODNAME file also are not affected by the VERIFICATION option. The VERIFICATION option is to be only used whe running the nonlinear model. It does not make sense using in any of the 4D-Var drivers.

Rafael_Santana
Posts: 12
Joined: Wed Jun 04, 2014 1:45 pm
Location: UFBA and REMO

Re: nonlinear cost function not calculated in PSAS

#3 Unread post by Rafael_Santana »

In which field of NL_fDataPenalty should I get the final NL model data penalty?

> ncdump -v NL_fDataPenalty ocean_mod_0006.nc

NL_fDataPenalty =
785.246249424019, 591.14144905359, 0, 0, 0, 0, 188.059436356603,
6.0453640138258, 0, 0, 0, 0 ;

Whereas, the total cost function shows:

> ncdump -v Jact ocean_mod_0006.nc

Jact =
0, 672.469260934038, 613.998803852174, 604.988548167226, 590.774949710353,
563.943315009747, 489.588604093972, 460.885433579541, 439.743064675436,
420.512748363934, 408.354655206435, 397.827690317814, 391.077983160773,
387.48347030612, 383.848856101337, 381.53222662233, 380.757526075799,
379.998204711863, 379.610329691987, 379.349887290787, 379.172516345825 ;

Jact has dimensions (Nouter, Minner) = (1,21). We're running 20 inner loops.

NL_fDataPenalty has dimensions (Nouter, cost_var) = (1,12). What doest cost_var mean?

Many thanks
Rafa

Post Reply