Closed lizziel closed 1 year ago
Hi @lizziel, you can assign this to me. I can take a look. I think I know where these are coming in.
Thank you @yantosca!
I believe the array temporary in seasalt_mod.F90
is caused by trying to pass State_Chm%Species(id_SALC)%Conc(:,:,:)
to argument TC(:,:,:)
!========================================================================
! Coarse mode (SALC) wet settling
!========================================================================
IF ( id_SALC > 0 ) THEN
CALL Wet_Settling( &
Input_Opt = Input_Opt, &
State_Chm = State_Chm, &
State_Diag = State_Diag, &
State_Grid = State_Grid, &
State_Met = State_Met, &
TC = State_Chm%Species(id_SALC)%Conc, &
N = 2, &
RC = RC )
...etc...
I am testing the fix:
!========================================================================
! Coarse mode (SALC) wet settling
!========================================================================
IF ( id_SALC > 0 ) THEN
CALL Wet_Settling( &
Input_Opt = Input_Opt, &
State_Chm = State_Chm, &
State_Diag = State_Diag, &
State_Grid = State_Grid, &
State_Met = State_Met, &
spcId = id_SALC, &
N = 2, &
RC = RC )
and then inside routine Wet_Settling
we use a pointer reference near the top of the routine:
! Pointers
REAL(fp), POINTER :: TC(:,:,:)
. . .
! Point to the species concentration array in State_Chm%Species
TC => State_Chm%Species(spcId)%Conc
and nullify the pointer before the end of the routine
TC => NULL()
This avoids passing an array field of an object to the routine.
The TC array is is historical baggage from the pre State_Chm
days. No need to pass the species array separately anymore since it is now in State_Chm
.
Likewise, passing State_Chm
directly to the CHEM_BCPO
, CHEM_BCPI
, CHEM_OCPO
, CHEM_OCPI
routines also avoids the array temporaries.
The pull request (#1729) associated with this issue has now been merged into the 14.2.0 development branch.
Name and Institution (Required)
Name: Lizzie Lundgren Institution: Harvard University
Confirm you have reviewed the following documentation
New GEOS-Chem feature or discussion
I noticed several messages about array temporaries being created during review of an integration test log. I am noting them here as something to put on our to do list to fix. I don't think this is a new issue, but maybe went under the radar since the message only shows up with debug compiler flag on.
seasalt_mod.F90:
carbon_mod.F90: