Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

How does pertlim "work"?

Hi all

We are wanting to use the pertlim CAM(4) namelist variable in a CESM1.2.0 B compset run, in order to produce an initial condition ensemble. I apologise if this is documented elsewhere, but I have unfortunately not managed to find any clear description of the nature of the temperature perturbation that is applied when the pertlim namelist variable is set to a non-zero value. Could someone please point me to such a description?

Thank you in advance
-Stefaan-
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
pertlim is a perturbation you apply to the initial temperature field.Usually, you add a perturbation of the order of 1e-14. It is add to the initial temperature field using a random_number generator based on global column index                 call random_seed(put=rndm_seed)                do k = 1, km                   call random_number(pertval)                   pertval = 2.0 *pertlim*(0.5 - pertval)                   t3xy(i,j,k) = t3xy(i,j,k)* (1.0 + pertval)                end do 
 
Thank you very much for posting the do loop, that should fully resolves our question. In essence then, if I understand correctly, the temperature field at each grid point across all levels is perturbed by a proportion p of its original value, where the random number p is uniformly distributed in the range (-pertlim, pertlim]?
 
Hi, So if one wanted to do an initial condition ensemble could you just add the line pertlim=1.e-14 to all user_nl_cam_000x in cesm1.2? My interpretation of the loop is that this will lead to a different perturbation being applied to each ensemble member when using instances. Thanks, Ellen
 

eaton

CSEG and Liaisons
You need to add a different value of pertlim for each ensemble member.  Two runs with the same value of pertlim will be identical. 
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
Also, pertlim only works for initial simulations. It doesn't work for an hybrid run. So, check which type of run you are doing.

Errata on Feb 25: pertlim only works for initial simulations. An hybrid run basically starts as an initial simulation. So pertlim should work for hybrid. 
 
We have performed numerous experiments by applying different values of pertlim with hybrid runs and output variables from these simulations appear to diverge as expected for micro-scale IC perturbation. This did not occur when equivalent hybrid restarts were setup with pertlim =0; and neither did such divergence occur when the perturbations were applied for branch restarts. What could be responsible for such diveregence if pertlim is not applied for hybrid cases?ThanksStefaan
 

Yuan Wang

New Member
Exactly the same experience here. I guess pertlim does work for hybrid runs, since they need to read IC files.

Look forward to the answer from Hannay.
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
You are correct. pertlim will work for an hybrid run. I misinterpreted the documentation.  
pertlim only works for initial simulations. An hybrid run basically starts as an initial simulation. So pertlim should work for hyrbid. 

I am putting an errata on the comment above.
 
Top