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 to make ensemble runs using CESM1.2

hannay

Cecile Hannay
AMWG Liaison
Staff member
One way to make an ensemble is to slightly vary the CAM initial condition. This can be done with the namelist variables: pertlim.
 
Hi HannayThanks for your reply, I have some more querries like is it possible to make a branch run or hybrid run using different perturbation values using the same initial condition(running the inital condition for few months and then branching for different perturbation values).Also you have mentioned that it is one way. Please guide me to other ways if its possible and feasible for you. Kindly help me in this regard.Thanking you. 
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
Yes, you can run for a few months and start several hybrid runs wit the same initial conditions using different values of pertlim. (it will perturb the value of the temperature in the initial condition).ANother way is to use different initial conditions. Say you have a 10 year run. YOu can make an ensemble by using the initial file from year 1, year 2, ...You can change this in the namelist with the variable ncdata 
 
Hi Hannay,Thanks for your prompt reply. Some more querries have poped up like In the CESM1.2 user guide multi-instance component functionality is given.Is that a way to give ensemble runs or I will have to follow the above mentioned methods and which one out of the two methods is widely acceptable by scientific community. If its feasible for you please provide the detailed outline to make ensemble runs.Thanking you for your kind help and guidance. 
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
The first method I pointed you to (varying pertlim in the CAM namelist) is a very common an recognized method to create ensemble runs.For instance, it what was used to create the Large ensemble done at NCAR.See: http://www2.cesm.ucar.edu/models/experiments/LENSIt is an ensemble of 30 runs created using round off error introduced through the CAM namelist (i.e. varying pertlim)http://www2.cesm.ucar.edu/models/experiments/LENS/instructionsThey varied pertlim from pertlim  = 1.d-14, 2.d-14, ..., 30.d-14to create their 30 ensemble members. I am not very familiar with the multi instance. To my knowledge, it is used for data assimilation but not really to create traditionnal ensemble.See: http://www.cesm.ucar.edu/models/cesm1.2/cesm/doc/usersguide/x834.html 
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
Please can you try again. I am told that URLs should be avaiilable. It might be there was a temporary problem with teh web server.Please let me know if you have more issue. 
 
Hi,I am wondering Is there any maximum limiation of pertubation value? What if I want to create 100 emsemble members? Can I keep adding pertlim to 100.d-14? I appreciate your help.  
 

jedwards

CSEG and Liaisons
Staff member
You'll find the maximum when the model fails.   You don't need to increase the perturbation value to generate new pertlim values, thereare an unlimited number of real values between 1.0e-14 and 1.0e-15.
 
Thanks very much for your reply.However, I am a little bit confused now. Based on #6, I think I should vary pertlim value from pertlim=1.d-14, 2.d-14,3d-14,...100.d-14 to create 100 ensemble members. Am I understanding this correct? I appreciate your help!
 

jedwards

CSEG and Liaisons
Staff member
That is simply an example, they could as easily have donepertlim  = 1.d-14, 1.1d-14, ..., 1.29d-14
 
Thanks for your reply. It makes sense now. I alredy finished 50 ensemble members by varing pertlim value from pertlim=1.d-14, 2.d-14,...,50.d-14. The model did not fail. However, the result of different ensemble members varies a lot. Do you think the initial temeprature field has been perturbed too much? Now I am wonderting do I have to re-run the model with smaller pertlim value? Thanking you for your kind help!
 

jedwards

CSEG and Liaisons
Staff member
No, you don't need to rerun anything.  Just choose 50 values that you didn't use in the first 50 members. 
 
Hi Hannay,
I specified pertlim=1.d-14, 2.d-14,3d-14 in the user_nl_cam but i am getting the following error -

./cesm_setup
Macros script already created ...skipping
Creating batch script case_cesm1.run
Locking file env_mach_pes.xml
Running preview_namelist script
Use of qw(...) as parentheses is deprecated at /home/apps/centos7/CESM/intel/Test/cesm1_2_2/models/drv/bld/build-namelist line 784.
infile is /home/cas/phd/asz198070/case_cesm1/Buildconf/cplconf/cesm_namelist
CAM build-namelist - ERROR: Invalid namelist variable in '-infile' /home/cas/phd/asz198070/case_cesm1/Buildconf/camconf/cesm_namelist.
ERROR: in validate_variable_value (package Build::Namelist): Variable name pertlim has exceeded the dimension size of the array.
ERROR: cam.buildnml.csh failed
ERROR: /home/cas/phd/asz198070/case_cesm1/preview_namelists failed: 25344
Please, as soon as possible.
Thanks in advance.
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
The pertlim parameter is a scalar. You need to set different values in different experiments.
For instance,
pertlim=1.d-14 in the first experiment
pertlim=2.d-14 in the second experiment
pertlim=3.d-14 ...

Sorry if it was not clear in the previous post.
...
 
Hi Hannay,
I am using F_2000_CAM5 compset. And I want to run 10 ensemble runs. And the model initializes from 2000 with month as 01. Then in that case how should specify for ensemble run (perturbations), and where.
Thanks in advance
 
Top