add ox adjoint

This commit is contained in:
2025-10-09 22:16:35 +08:00
parent c0c2abf613
commit 2c4f14fcdc

View File

@ -19,8 +19,8 @@
!
! Module Routines:
! ============================================================================
! (1 ) ADD_STRAT_POX : Adds strat P(Ox) from UPBDFLX_O3 to tracer array
! (2 ) READ_POX_LOX : Reads previously archived P(Ox), L(Ox) from disk
! (1 ) ADD_STRAT_POX : Adds strat P(Ox) from UPBDFLX_O3 to tracer array 追踪平流层臭氧
! (2 ) READ_POX_LOX : Reads previously archived P(Ox), L(Ox) from disk 读取硬盘中保存的臭氧的生成和损失速率
! (3 ) GET_REGIONAL_POX : Flags tracers by geographic & vertical location
! (4 ) CHEM_TAGGED_OX : Performs Ox chem on geographically tagged tracers
! (5 ) INIT_TAGGED_OX : Allocates and zeroes all module arrays
@ -75,7 +75,7 @@
! MODULE VARIABLES
!=================================================================
!------------------------------------------------------
!%%% Modification for quick Ox spinup (bmy, 5/31/07)
!%%% Modification for quick Ox spinup (bmy, 5/31/07) 减少了数量方便快速计算?
!%%%INTEGER, PARAMETER :: N_TAGGED = 13
!%%%INTEGER, PARAMETER :: N_STRAT = 11
!%%%INTEGER, PARAMETER :: N_INIT = 12
@ -136,7 +136,7 @@
!******************************************************************************
! Subroutine READ_POX_LOX reads previously-archived Ox production & loss
! rates from binary punch file format. (bmy, 8/20/03, 12/4/07)
!
! 用于读取相关的产生和损失数据
! NOTES:
! (1 ) Updated from the old routine "chemo3_split.f" (rch, bmy, 8/20/03)
! (2 ) Now references O3PL_DIR from "directory_mod.f" (bmy, 7/20/04)
@ -554,7 +554,7 @@
IF ( N == 1 ) CALL GET_REGIONAL_POX( I, J, L, PP )
! L(Ox) is originally in [1/cm3/s]; convert to [kg]
LL = STT_ADJ(I,J,L,N) * L24H(I,J,L) * BOXVL(I,J,L) * DTCHEM
LL = STT_ADJ(I,J,L,N) * L24H(I,J,L) * BOXVL(I,J,L) * DTCHEM ! 进行单位变换
! !===========================================================
! ! ND65 diagnostic: Chemical prod/loss [kg/s]
@ -591,17 +591,17 @@
IF ( FREQ > 0d0 ) THEN
! Initial Ox [kg]
Ox_0 = STT_ADJ(I,J,L,N)
Ox_0 = STT_ADJ(I,J,L,N) ! 取该位置的伴随强迫作为初值
! Amount of Ox LOST to drydep [kg]
Ox_LOST = Ox_0 * ( 1d0 - EXP( -FREQ * DTCHEM ) )
Ox_LOST = Ox_0 * ( 1d0 - EXP( -FREQ * DTCHEM ) ) ! 计算干沉降量, 与状态变量正相关
! Don't need to do this for adjoint (dkh, 03/08/10)
!! Prevent underflow condition
!IF ( Ox_LOST < 1d-20 ) Ox_LOST = 0d0
! Subtract Ox lost [kg]
STT_ADJ(I,J,L,N) = Ox_0 - Ox_LOST
STT_ADJ(I,J,L,N) = Ox_0 - Ox_LOST ! 减去衰减量
! !==================================================
! ! ND44 diagnostic: Ox lost to drydep [molec/cm2/s]