update adjoint

This commit is contained in:
2025-10-08 21:56:36 +08:00
parent 926eb40b05
commit c0c2abf613
3 changed files with 20 additions and 20 deletions

View File

@ -196,24 +196,24 @@
ENDIF
!=================================================================
! If LADJ_CHEM=T then call the adjoint chemistry subroutines
! If LADJ_CHEM=T then call the adjoint chemistry subroutines
!=================================================================
IF ( LADJ_CHEM ) THEN
IF ( LADJ_CHEM ) THEN ! 如果追踪化学过程
!---------------------------------
! NOx-Ox-HC (w/ or w/o aerosols)
!---------------------------------
IF ( ITS_A_FULLCHEM_SIM() ) THEN
IF ( ITS_A_FULLCHEM_SIM() ) THEN ! 如果是全化学模拟
! Adjoint of remove acetone ocean sink (it is self-adjoint)
IF ( IDTACET /= 0 ) THEN
CALL OCEAN_SINK_ACET( STT_ADJ(:,:,1,IDTACET) )
CALL OCEAN_SINK_ACET( STT_ADJ(:,:,1,IDTACET) ) ! 海洋方面的
ENDIF
! Do carbonaceous aerosol chemistry
! Do carbonaceous aerosol chemistry 碳质气溶胶部分
IF ( LCARB ) CALL CHEMCARBON_ADJ
! Also do sulfate chemistry
! Also do sulfate chemistry 硫酸盐化学
IF ( LSULF ) THEN
! Do aerosol thermodynamic equilibrium
@ -251,7 +251,7 @@
& STT_ADJ(IFD,JFD,LFD,NFD)
ENDIF
! Call adjoint aerosol thermodynamics routine
! Call adjoint aerosol thermodynamics routine 学过程
CALL DO_RPMARES_ADJ
ENDIF
@ -259,19 +259,19 @@
ENDIF
!------------------------------------------------------------
! Do sulfate chemistry
! Do sulfate chemistry 最终计算硫酸盐的伴随
CALL CHEMSULFATE_ADJ
ENDIF
! Call SMVGEAR routines
! Call SMVGEAR routines 反正是啥的伴随
CALL CHEMDR_ADJ
! Do seasalt aerosol chemistry
! Do seasalt aerosol chemistry 海盐气溶胶的化学(目前不支持)
IF ( LSSALT ) print*, ' ADJ of CHEMSEASALT not supported'
! IF ( LSSALT ) CALL CHEMSEASALT
! Do dust aerosol chemistry
! Do dust aerosol chemistry 沙尘气溶胶的伴随
IF ( LDUST ) CALL CHEMDUST_ADJ
! ND44 drydep fluxes
@ -403,7 +403,7 @@
CALL CHEM_HCN_CH3CN( N_TRACERS, STT )
!---------------------------------
! Tagged O3
! Tagged O3 臭氧的部分?
!---------------------------------
ELSE IF ( ITS_A_TAGOX_SIM() ) THEN
@ -428,7 +428,7 @@
CALL CHEMC2H6
!---------------------------------
! CH4 now supported (adj32_023)
! CH4 now supported (adj32_023) 如果是甲烷的部分
!---------------------------------
ELSE IF ( ITS_A_CH4_SIM() ) THEN

View File

@ -3122,7 +3122,7 @@ C----------------------------------------------
! Fraction of box (I,J,L) underneath the PBL top [unitless]
F_UNDER_TOP = GET_FRAC_UNDER_PBLTOP( I, J, L )
! Only apply drydep to boxes w/in the PBL
! Only apply drydep to boxes w/in the PBL 仅计算边界层内的
IF ( F_UNDER_TOP > 0d0 ) THEN
! NH4 drydep frequency [1/s]. Also accounts for the fraction
@ -3382,7 +3382,7 @@ C----------------------------------------------
! Model level where maximum PBL height occurs
PBL_MAX = GET_PBL_MAX_L()
! Determine if it is time to apply deposition forcing
! Determine if it is time to apply deposition forcing 有观测
FORCE = .FALSE.
IF ( LMAX_OBS ) THEN
OBS_COUNT = OBS_COUNT + 1
@ -3421,7 +3421,7 @@ C----------------------------------------------
!$OMP+PRIVATE( RKTs, E_RKTs, AREA_CM2, FLUX )
!$OMP+PRIVATE( ADJ_NIT0, ADJ_NIT )
!$OMP+SCHEDULE( DYNAMIC )
DO L = 1, PBL_MAX
DO L = 1, PBL_MAX ! 这部分开始逐个网格计算了, 也就是伴随的部分还是逐网格的
DO J = 1, JJPAR
DO I = 1, IIPAR
@ -3434,7 +3434,7 @@ C----------------------------------------------
! Fraction of box (I,J,L) underneath the PBL top [unitless]
F_UNDER_TOP = GET_FRAC_UNDER_PBLTOP( I, J, L )
! Only apply drydep to boxes w/in the PBL
! Only apply drydep to boxes w/in the PBL 仅在有干沉降的时候运行
IF ( F_UNDER_TOP > 0d0 ) THEN
!===========================================================

View File

@ -416,7 +416,7 @@
!******************************************************************************
! Subroutine CHEM_TAGGED_OX performs chemistry for several Ox tracers which
! are tagged by geographic and altitude regions. (rch, bmy, 8/20/03, 12/4/07)
!
! 臭氧部分的伴随么
! NOTES:
! (1 ) Updated from the old routine "chemo3_split.f" (rch, bmy, 8/20/03)
! (2 ) Bug fix: don't put function call in WRITE statement (bmy, 2/20/04)
@ -532,7 +532,7 @@
! (2 ) Ox from the Stratosphere (tropopause - atm top )
! (3 ) Ox initial conditions (all levels )
!=================================================================
DO N = 1, N_TRACERS
DO N = 1, N_TRACERS ! 对于每个追踪物种进行追踪
! Zero ND44_TMP array
IF ( ND44 > 0 ) ND44_TMP = 0d0
@ -541,7 +541,7 @@
!$OMP+DEFAULT( SHARED )
!$OMP+PRIVATE( I, J, L, LL, PL, FREQ, Ox_0, Ox_LOST, FLUX, F_UNDER_TOP )
!$OMP+SCHEDULE( DYNAMIC )
DO L = 1, LD65 ! LLTROP !_FIX
DO L = 1, LD65 ! LLTROP !_FIX 逐网格计算
DO J = 1, JJPAR
DO I = 1, IIPAR