From 2c4f14fcdccb393528776a57521bb429a865485a Mon Sep 17 00:00:00 2001 From: SolaSUSTech Date: Thu, 9 Oct 2025 22:16:35 +0800 Subject: [PATCH] add ox adjoint --- code/adjoint/tagged_ox_adj_mod.f | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/adjoint/tagged_ox_adj_mod.f b/code/adjoint/tagged_ox_adj_mod.f index 2cd2924..82f22f5 100644 --- a/code/adjoint/tagged_ox_adj_mod.f +++ b/code/adjoint/tagged_ox_adj_mod.f @@ -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]