UKCA_ACTIVATE in Snr

The problem

In UKCA_ACTIVATE the expected number of activated particles over all modes is calculated in call to UKCA_ABDULRAZZAK_GHAN (as zcdncact/N_ACTIV_SUM). CDNC should only have a value where there is cloud and within cloud is should be have the same vertically upwards and equal to the cloud base level of N_ACTIV_SUM. To do this necessitates checking if we're in a cloud - which is done by checking that both LIQ_CLOUD_FRAC and CLOUD_LIQ_WATER are greater than zero. The problem is that UKCA_ACTIVATE is effectively applying a cloud mask on the N_ACTIV_SUM data, and the problems with doing this in Jnr for data wanted in Snr are

  • the location of cloud in Snr will not match cloud in Jnr
  • `upgrading' a mask leads to `half' values around the edges, i.e. somewhere between an actual value and zero.

The same is true for zcdncact3/N_ACTIV_SUM3 and CDNC3 as zcdncact/N_ACTIV_SUM and CDNC. However, as explained next we think that this field is not needed.

The plan

We think that CDNC3 is written to D1 because there was a plan to use it by the radiation scheme for the calculation of cloud droplet effective radius, but we don't think this has materialised yet. Hence, for now we can hijack this field and use to store N_ACTIV_SUM or anything else to chose. As a consequence the eventual plan is to

  • In UKCA_ACTIVATE, swap the storage of CDNC3 as a diagnostic for that of N_ACTIV_SUM (longer term, may need to properly add an extra field to D1).
  • Create a mini version of UKCA_ACTIVATE, called something UKCA_ACTIVATE_MINI_SNR, which has input fields LIQ_CLOUD_FRAC, CLOUD_LIQ_WATER and N_ACTIV_SUM and overwrite the D1 field CDNC.
  • Add a call to UKCA_ACTIVATE_MINI_SNR, probably at the end of the `IF (l_overw_jnr2snr)' section in oasis3_get_snr.F90.

Development plan

The development plan is

  1. Swap diagnostic storage of CDNC3 for N_ACTIV_SUM. Check for one UM job (which obviously has GLOMAP-mode) that
    • data from a 2 day dump isn't altered beyond CDNC3/N_ACTIV_SUM field. This would confirm that CDNC3 isn't used. True. Data is stored in ~/tmpRef_al282. Using um-cumf on al282a.da19880902_00_unchg and al282a.da19880902_00_swap_cdnc3, there are 172 fields with differences - all Stash Code 34163 (fields 6,950-7,035 and 15,184-15,269)
    • That CDNC looks like a version of N_ACTIV_SUM which has been masked (ideally, I'd want to pick a level near the cloud base). Done, see section on CDNC vs N_ACTIV_SUM.
  2. Create UKCA_ACTIVATE_MINI_SNR, but overwrite output over CDNC3/N_ACTIV_SUM field to start with (so it can be compared with CDNC).
  3. Add call to UKCA_ACTIVATE_MINI_SNR, probably just after UKCA_MAIN1 to start with (Probably better to put call in just before call to UKCA_CDNC_GET in atm_step_4A.F90, which is what I've done. For one UM, check
    • the CDNC and CDNC3/N_ACTIV_SUM fields should look similar
  4. In UKCA_ACTIVATE_MINI_SNR, overwrite CDNC instead of CDNC3/N_ACTIV_SUM field. For one UM, check
    • this hasn't changed the result by much (the precision will be different). It now looks identical.
  5. Protect the call to UKCA_ACTIVATE_MINI_SNR with an `IF (l_senior)' check and now run a 2UM coupled run.

Ticket and branch

This is ticket 1544 and branch vn10.2_ukca_activate_mini_snr

N96 GLOMAP-mode job

Job is mi-al283, which is a copy of mi-ai301.

The STASH codes

The STASH codes are

  • LIQ_CLOUD_FRAC: 00,267
  • CLOUD_LIQ_WATER: 04,205. No, actually QCL (specific cloud water content): 00,254
  • CDNC: 34,162
  • CDNC3/N_ACTIV_SUM: 34,163

CDNC vs N_ACTIV_SUM

In XCONV, stash code 34,162 - which should be CDNC - is reported as ISO2 MASS MIXING RATIO and stash code 34,163 - which should be CDCN/N_ACTIV_SUM - is reported at MACRO2 MASS MIXING RATIO. I've plotted the surface layer because then I don't have to worry about CDNC being fixed vertically from base level of cloud. Hence, the data within mask should match N_ACTIV_SUM, and to me it looks like it does.

How do we know if we've got the right CLOUD_LIQ_WATER?

CLOUD_LIQ_WATER is stash 04,205 so it's a diagnostic, and so we can't use the prognostic test, i.e. IF (d1_addr(d1_stlist_no,i,m_atm_modl) == -1), to check we have the right field. How do we determine we have the right version of this field?

The entry in app/coupled/rose-app.conf is

[namelist:streq(c34968a4)]
dom_name='DALLTH'
isec=4
item=205
package='UKCA Coupling Macro'
tim_name='TALLTS'
use_name='UPUKCA'

I'm just going to take the first one for now. IS THIS OK? No, the right one has a macrotag of 98, which comes from

[namelist:use(bde064da)]
!!file_id=''
locn=6
macrotag=98
use_name='UPUKCA'

The documentation in both UKCA_ACTIVATE and UMDP is wrong, the field is actually QCL (specific cloud water content) and not CLOUD_LIQ_WATER.

How to access LIQ_CLOUD_FRAC?

To access CLOUD_LIQ_WATER and CDNC fields it seems clear that we need to search through the D1_ADDR array to find their location in D1. LIQ_CLOUD_FRAC is located in SET_ATM_FIELDS as a 1D array, CF_LIQUID, using the JCF_LIQUID as a D1 address. I've tried making use of this, but it involves passing so much unnecessary code to satifying all the other fields included in the necessary #include files that I've switching to looking for it in the D1_ADDR array like the other fields.

Two threshold filters for CDNC

Andy Jones has pointed out that there are two threshold filters affecting CDNC.

  1. In ukca_activate.F90
    ! Set CDNC minimum to the equivalent of 5 cm-3 for consistency with the
    ! minimum values assumed in the radiation and precipitation schemes.
    WHERE (n_activ_sum < 5.0e6) n_activ_sum = 5.0e6
    
  2. In atm_step_4A.F90
        ! Set minimum CDNC value (equivalent to 5 cm-3)
        WHERE (ukca_cdnc%cdnc < 5.0e06) ukca_cdnc%cdnc = 5.0e06
    

Hybrid N216<->N96 job

I'm making a copy of my latest hybrid job, mi-al788, which is mi-al814.

Plotting CDNC fields

An example of command for plotting field is.

python2.7 /home/h06/mstringe/python/iris/get_field_ff.py --stash=34162 
--iz=0 --log --cmin=5.0e6 --cmax=1.0e8 --file=jnr_cdnc.png 
/hpc/data/d01/mstringe/cylc-run/mi-al814/share/data/History_Data/junioa.da19880902_00

Plots are shown on hybrid presentation.

Once the call the UKCA_ACTIV_MINI_SNR is moved to ATM_STEP_4A it's necessary to not pass 34162 if we want to see the CDNC field from the previous hour (because data is generally dumped after call to UKCA_MAIN1 and passing of Jnr->Snr fields, and before call to radiation).