GEOS-Chem Adjoint v33
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.
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)
Retire CSPEC_NO2_ADJ (adj33_003)
Nicolas Bousserez wrote:
- In "chemdr_adj.F" I removed this part:
#if defined( SCIA_KNMI_NO2_OBS ) || defined( SCIA_DAL_NO2_OBS ) ! Apply forcing from satellite observations CSPEC_ADJ(:,IDNO2) = CSPEC_ADJ(:,IDNO2) + CSPEC_NO2_ADJ(:) CSPEC_NO2_ADJ(:) = 0d0 #endif
- because it seems like I'm already updating the adjoint of NO2 in "sciadal_no2_obs_mod.f" through CSPEC_AFTER_CHEM_ADJ. I would like to be sure that it is correct though.
Daven Henze wrote:
- Yes, that is correct. I didn't want to take it out incase you had built your obs operator using CSPEC_NO2_ADJ. But since you used the more generic CSPEC_AFTER_CHEM_ADJ, then we can delete this section entirely and use the section higher up in this file ( IF (LCSPEC_OBS) ...) to apply the forcing from your obs operator to CSPEC_ADJ.
Now use CSPEC_AFTER_CHEM_ADJ instead of CSPEC_NO2_ADJ in chemdr_adj.f.
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)