Opened 36 hours ago
#186 new defect
Running with zero aerosols requires naerkind=1
| Reported by: | emillour | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | GENERIC GCM | Version: | |
| Keywords: | Cc: |
Description
In the current version of the Generic PCM (r4204), to run with no aerosols one nonetheless needs to set "naerkind=1" (and not 0) in callphys.def.
Then this "no aerosol" case is handled "internally" in the code (see aerosol_init ) with a "noaero" flag:
! For the zero aerosol case, we currently make a dummy co2 aerosol which is zero everywhere.
! (See aerosol_opacity.F90 for how this works). A better solution would be to turn off the
! aerosol machinery in the no aerosol case, but this would be complicated. LK
if (ia.eq.0) then !For the zero aerosol case.
ia = 1
noaero = .true.
iaero_co2=ia
endif
if (ia.ne.naerkind) then
if (is_master) then
print*, 'Aerosols counted not equal to naerkind'
print*, 'set correct value for nearkind in callphys.def'
print*, 'which should be ',ia
print*, 'according to current options in callphys.def'
print*, 'or change/correct incompatible options there'
print*, 'Abort in aerosol_init'
endif
call abort_physic("iniaerosl",'wrong number of aerosols',1)
endif ! of if (ia.ne.naerkind)
which is then used in aerosol_opacity to enforce that
if (iaero_co2.ne.0) then
iaer=iaero_co2
! 1. Initialization
aerosol(1:ngrid,1:nlayer,iaer)=0.0
! 2. Opacity calculation
if (noaero) then ! aerosol set to zero
aerosol(1:ngrid,1:nlayer,iaer)=0.0
elseif (aerofixco2.or.(i_co2ice.eq.0)) then ! CO2 ice cloud prescribed
aerosol(1:ngrid,1:nlayer,iaer)=1.e-9
!aerosol(1:ngrid,12,iaer)=4.0 ! single cloud layer option
else
So it all ends well.
But having to specify "naerkind=1" when desiring no aerosols is quite misleading for users. We should make the corrections to enable specifying "naerkind=0" in callphys.def
Note: See
TracTickets for help on using
tickets.
