GEOS-Chem Adjoint v33: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 24: | Line 24: | ||
--[[User:Daven|Daven]] 16:16, 6 January 2012 (EST) | --[[User:Daven|Daven]] 16:16, 6 January 2012 (EST) | ||
=== Updates to adjoint model === | === Updates to adjoint model === | ||
=== Bug fixes in adjoint model === | === Bug fixes in adjoint model === | ||
==== Mover error checking for O3 assimilation (adj33_002) ==== | |||
''''[mailto:N.Bousserez@dal.ca Nicolas Bousserez] wrote:''''' | |||
:the code crashes in "input_adj_mod.f" when doing the checking of observation settings (see line 2027 in my code). It is apparently due to "IDCSPEC_ADJ", which is not allocated/defined yet at the time the program executes those lines. I'm skipping these checks for now then. Note: The code crashes also when using "TES_O3_OBS" instead of "SCIA_DAL_NO2_OBS", so it is not related to what I implemented apparently. | |||
For the <tt>TES_O3_OBS</tt> simulation, the O3 species must be defined as an observed species as part of the cost function in <tt>input.gcadj</tt> to that ozone adjoint sensitivities can be accrued in the TES ozone observation operator. To ensure that this happens, the following block of code has been moved from <tt>input_adj_mod.f</tt> to subroutine <tt>INIT_CSPEC_ADJ</tt> in <tt>adj_arrays_mod.f</tt>, as it can only be called after the <tt>CSPEC</tt> variables have been initialized. | |||
#elif defined ( TES_O3_OBS ) | |||
! Since the O3 obs operators will pass adjoints back | |||
! to CSPEC via CSPEC_AFTER_CHEM_ADJ, we need to make sure that | |||
! these species are listed as observed species | |||
FOUND = .FALSE. | |||
DO N = 1, NOBS_CSPEC | |||
IF ( TRIM( NAMEGAS( IDCSPEC_ADJ(N) ) ) == 'O3' ) THEN | |||
FOUND = .TRUE. | |||
ENDIF | |||
ENDDO | |||
IF ( .not. FOUND ) THEN | |||
CALL ERROR_STOP( ' Need to list O3 as observed species', | |||
& ' input_adj_mod ' ) | |||
ENDIF | |||
#endif | |||
--[[User:Daven|Daven]] 16:38, 6 January 2012 (EST) | |||
== Previous issues now resolved in v33 == | == Previous issues now resolved in v33 == |
Revision as of 21:38, 6 January 2012
What's new in this version
Updates to forward model
Bug fixes in forward model
Trap for negative CRUTES in rpmares_mod.f (adj33_001)
Despite the setting of negative roots to zero, sometimes the code still ends up with negative CRUTES. Trap for it here to prevent mysterious crashing later.
--Daven 14:58, 6 January 2012 (EST)
Updated lightning parameterization and fix for cloud-top-height algorithm (v9-01-01)
Updates to a6_read_mod.f and lightning_nox_mod.f. Details in Lee's description: http://people.seas.harvard.edu/~ltmurray/LNOx.v9-01-01.Release.Notes.pd
--Daven 15:18, 6 January 2012 (EST)
Fix for GEIA emissions scaling factor over Botswana (v9-01-02h)
Updates to scale_anthro_mod.f. See GEOS-Chem_v9-01-02#Fix_for_GEIA_emissions_scaling_factor_over_Botswana
--Daven 16:16, 6 January 2012 (EST)
TINY parameter in convection_mod.f (v8-03-02)
Update to convection_mod.f GEOS-Chem_v8-03-02#TINY_parameter_in_convection_mod.f
--Daven 16:16, 6 January 2012 (EST)
Updates to adjoint model
Bug fixes in adjoint model
Mover error checking for O3 assimilation (adj33_002)
'Nicolas Bousserez wrote:
- the code crashes in "input_adj_mod.f" when doing the checking of observation settings (see line 2027 in my code). It is apparently due to "IDCSPEC_ADJ", which is not allocated/defined yet at the time the program executes those lines. I'm skipping these checks for now then. Note: The code crashes also when using "TES_O3_OBS" instead of "SCIA_DAL_NO2_OBS", so it is not related to what I implemented apparently.
For the TES_O3_OBS simulation, the O3 species must be defined as an observed species as part of the cost function in input.gcadj to that ozone adjoint sensitivities can be accrued in the TES ozone observation operator. To ensure that this happens, the following block of code has been moved from input_adj_mod.f to subroutine INIT_CSPEC_ADJ in adj_arrays_mod.f, as it can only be called after the CSPEC variables have been initialized.
#elif defined ( TES_O3_OBS ) ! Since the O3 obs operators will pass adjoints back ! to CSPEC via CSPEC_AFTER_CHEM_ADJ, we need to make sure that ! these species are listed as observed species FOUND = .FALSE. DO N = 1, NOBS_CSPEC IF ( TRIM( NAMEGAS( IDCSPEC_ADJ(N) ) ) == 'O3' ) THEN FOUND = .TRUE. ENDIF ENDDO IF ( .not. FOUND ) THEN CALL ERROR_STOP( ' Need to list O3 as observed species', & ' input_adj_mod ' ) ENDIF #endif
--Daven 16:38, 6 January 2012 (EST)
Previous issues now resolved in v33
Previous issues now resolved in v32
CO2 emissions update to allow for both monthly and years emissions
Update to co2_mod.f (dkh, 03/07/11)
Updates to lidort_mod.f
- Reinstate NCOUNT in CALC_RF_FORCE so that aod files are made at the right time. (dkh, 03/27/11)
- now check to make sure that MAXTHREADS matches JJPAR in lidort_mod.f (dkh, 03/27/11)
Update to Mie table
Update mie_mod.f to use finite difference values for adjoints. (dkh, 03/27/11)
Remove bug in SET_SF
Remove erroneous debugging code in subroutine SET_SF in inverse_mod.f. (dkh, 03/27/11)