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 incorporate CMIP6 climate anomaly in ISSP-based land model under CESM2.2?

Status
Not open for further replies.

Hemraj

Hemraj Bhattarai
Member
Hello,
I recently created a new case using the "ISSP126Clm50BgcCrop" compset in CESM2.2 to monitor the ISSP-based climate effect. "datm.streams.txt.Anomaly.Forcing.*" were not present in the case directory, so I added the following line to the user_nl_datm.
anomaly_forcing = 'Anomaly.Forcing.Precip','Anomaly.Forcing.Temperature','Anomaly.Forcing.Pressure','Anomaly.Forcing.Humidity','Anomaly.Forcing.Uwind','Anomaly.Forcing.Vwind','Anomaly.Forcing.Shortwave','Anomaly.Forcing.Longwave'

After building the case, I can see the datm.streams.txt.Anomaly.Forcing.* files in both the CaseDocs and run directories. However, I did not find the user_nl_datm.streams.txt.Anomaly.Forcing.* in the case directory, which I believe is necessary to make changes to the Anomaly files. How can I make "user_nl_datm.streams.txt.Anomaly.Forcing.*" appear in my case directory?

When I checked the Anomaly.Forcing files in CaseDocs, I found that they are using rcp45 nc files by default. How can the ISSP126 compset take rcp45 nc file by default? For example, I checked "datm.streams.txt.Anomaly.Forcing.Humidity" and found it is using "af.huss.ccsm4.rcp45.2006-2300.nc". I assumed it should take corresponding SSP files.

I looked for the Anomaly files for SSPs and found them in the input data repository (https://svn-ccsm-inputdata.cgd.ucar.edu/trunk/inputdata/atm/datm7/anomaly_forcing/). I found that all variables are under the same nc file (af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc), unlike RCP, which has different nc files for different variables. Do I need to create different nc files manually, or is there a way the model can read the required variable from the combined nc file? My concern is that we now have different datm.streams.txt.Anomaly.Forcing.* files for each variable (e.g., datm.streams.txt.Anomaly.Forcing.Humidity, datm.streams.txt.Anomaly.Forcing.Precip). If the model can read variables from the combined nc file (af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc), how can I use this file directly?

Thank you, and I look forward to hearing from you.

Best regards,
Hemraj

Following is an example showing ISSP126 compset taking rcp45 file:
Code:
<?xml version="1.0"?>
<file id="stream" version="1.0">
<dataSource>
   GENERIC
</dataSource>
<domainInfo>
  <variableNames>
     time    time
        xc      lon
        yc      lat
        area    area
        mask    mask
  </variableNames>
  <filePath>
     /lustre/users/s1155149263/CESM/input_data/atm/datm7/anomaly_forcing
  </filePath>
  <fileNames>
     domain.permafrostRCN_P2.c2013.nc
  </fileNames>
</domainInfo>
<fieldInfo>
   <variableNames>
     huss  shum_af
   </variableNames>
   <filePath>
     /lustre/users/s1155149263/CESM/input_data/atm/datm7/anomaly_forcing
   </filePath>
   <fileNames>
    af.huss.ccsm4.rcp45.2006-2300.nc
   </fileNames>
   <offset>
      0
   </offset>
</fieldInfo>
</file>
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
There are different versions of anomaly forcing depending on whether the model is using the mct cap or the nuopc cap. Can you run this and attach the output? Then we can go from there.

  • Document the version of the code are you using:
    • In CESM2.1.2 and later, run the script ./describe_version from the top level of your CESM clone (that is, from the directory containing cime, components, etc.). Either:
      • Copy and paste the full output into your post
      • Redirect the output to a file (./describe_version > version_info.txt) then attach the file to your post.
    • From older model versions that do not have the describe_version script, give the output from running the following commands from the top level of your CESM clone (that is, run these from the directory containing cime, components, etc.):
      • git describe
      • ./manage_externals/checkout_externals --status --verbose
 

TeresaPhillips

Teresa Phillips
New Member
Hello,
I recently created a new case using the "ISSP126Clm50BgcCrop" compset in CESM2.2 to monitor the ISSP-based climate effect. "datm.streams.txt.Anomaly.Forcing.*" were not present in the case directory, so I added the following line to the user_nl_datm.
anomaly_forcing = 'Anomaly.Forcing.Precip','Anomaly.Forcing.Temperature','Anomaly.Forcing.Pressure','Anomaly.Forcing.Humidity','Anomaly.Forcing.Uwind','Anomaly.Forcing.Vwind','Anomaly.Forcing.Shortwave','Anomaly.Forcing.Longwave'

After building the case, I can see the datm.streams.txt.Anomaly.Forcing.* files in both the CaseDocs and run directories. However, I did not find the user_nl_datm.streams.txt.Anomaly.Forcing.* in the case directory, which I believe is necessary to make changes to the Anomaly files. How can I make "user_nl_datm.streams.txt.Anomaly.Forcing.*" appear in my case directory?

When I checked the Anomaly.Forcing files in CaseDocs, I found that they are using rcp45 nc files by default. How can the ISSP126 compset take rcp45 nc file by default? For example, I checked "datm.streams.txt.Anomaly.Forcing.Humidity" and found it is using "af.huss.ccsm4.rcp45.2006-2300.nc". I assumed it should take corresponding SSP files.

I looked for the Anomaly files for SSPs and found them in the input data repository (https://svn-ccsm-inputdata.cgd.ucar.edu/trunk/inputdata/atm/datm7/anomaly_forcing/). I found that all variables are under the same nc file (af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc), unlike RCP, which has different nc files for different variables. Do I need to create different nc files manually, or is there a way the model can read the required variable from the combined nc file? My concern is that we now have different datm.streams.txt.Anomaly.Forcing.* files for each variable (e.g., datm.streams.txt.Anomaly.Forcing.Humidity, datm.streams.txt.Anomaly.Forcing.Precip). If the model can read variables from the combined nc file (af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc), how can I use this file directly?

Thank you, and I look forward to hearing from you.

Best regards,
Hemraj
or else you can refer to the game download gta 5 mobile (100% working) – android on getmodnow website for entertainment after work, safe free application
Following is an example showing ISSP126 compset taking rcp45 file:
Code:
<?xml version="1.0"?>
<file id="stream" version="1.0">
<dataSource>
   GENERIC
</dataSource>
<domainInfo>
  <variableNames>
     time    time
        xc      lon
        yc      lat
        area    area
        mask    mask
  </variableNames>
  <filePath>
     /lustre/users/s1155149263/CESM/input_data/atm/datm7/anomaly_forcing
  </filePath>
  <fileNames>
     domain.permafrostRCN_P2.c2013.nc
  </fileNames>
</domainInfo>
<fieldInfo>
   <variableNames>
     huss  shum_af
   </variableNames>
   <filePath>
     /lustre/users/s1155149263/CESM/input_data/atm/datm7/anomaly_forcing
   </filePath>
   <fileNames>
    af.huss.ccsm4.rcp45.2006-2300.nc
   </fileNames>
   <offset>
      0
   </offset>
</fieldInfo>
</file>
I'll try to address your questions and provide guidance on how to proceed.

Regarding the absence of "user_nl_datm.streams.txt.Anomaly.Forcing.*" in your case directory: By default, CESM2.2 does not generate individual "user_nl_datm.streams.txt" files for each component-specific stream. Instead, it uses a shared "user_nl_datm.streams.txt" file that applies to all streams. To make changes to the Anomaly files, you can modify the existing "user_nl_datm.streams.txt" file present in your case directory. You should find the line specifying the Anomaly.Forcing files, and you can make your desired changes there.

The ISSP126 compset in CESM2.2 does not directly support the SSP scenarios. The ISSP (International Soil Sequences for Paleoclimate Modeling) dataset is based on paleoclimate simulations and is not designed to represent future scenarios like the SSPs (Shared Socioeconomic Pathways). Therefore, the model uses the available forcing files, which are based on the RCP (Representative Concentration Pathways) scenario data. This is why you see the default usage of RCP45 nc files for the Anomaly.Forcing variables in the CaseDocs.

If you want to use the SSP scenario data instead, you would indeed need to create separate nc files for each variable, similar to the RCP files. You can either manually create these files or modify existing SSP forcing data if it is available. You should ensure that the format and structure of the files comply with CESM's requirements for anomaly forcing files.
 

Hemraj

Hemraj Bhattarai
Member
Thanks lot @TeresaPhillips.

Based on your description, it seems that my steps are similar to what you explained. Here is a revised version of your text with some minor corrections and rephrasing:

Initially, I copied the 'datm.streams' files from the 'CaseDocs' to the case directory and renamed them by adding 'user_' (not 'user_nl_'; using 'user_' instead of 'user_nl_' ensures that the changes are reflected in the perspective files when building the case). For e.g., I copied "datm.streams.txt.Anomaly.Forcing.Humidity" and renamed it as "user_datm.streams.txt.Anomaly.Forcing.Humidity". Could you please make sure its correct? It seems it is working on my side.

Next, I made changes in the respective files within the case directory by replacing the default RCP file with the SSP file (af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc). This .nc file contains all the variables in one file, so I passed the same file for all the variables. It seems that the model is running smoothly now. Is it safe to assume that CESM is capable of reading specific variables from the combined .nc file?

The code below is found in 'datm.streams.txt.Anomaly.Forcing.*', and it is the same for all variables since they are all located within the same .nc file."

I just wanted to make sure of my steps. Please let me know if you want to see any log files or settings.
Thank you.

Code:
<?xml version="1.0"?>
<file id="stream" version="1.0">
<dataSource>
   GENERIC
</dataSource>
<domainInfo>
  <variableNames>
     time    time
        xc      lon
        yc      lat
        area    area
        mask    mask
  </variableNames>
  <filePath>
     /lustre/users/sxyz/CESM/input_data/atm/datm7/anomaly_forcing
  </filePath>
  <fileNames>
     domain.permafrostRCN_P2.c2013.nc
  </fileNames>
</domainInfo>
<fieldInfo>
   <variableNames>
     huss  shum_af
   </variableNames>
   <filePath>
     /lustre/users/sxyz/CESM/input_data/atm/datm7/anomaly_forcing
   </filePath>
   <fileNames>
    af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc
   </fileNames>
   <offset>
      0
   </offset>
</fieldInfo>
</file>
 
There are different versions of exception coercion, depending on whether the model is using the MCT cap or the NUOPC cap. Can you run this program and attach the output? And then we can start from there.

  • Keep track of the version of code you're using:
    • In CESM 2.1.2 and later, run the script ./describe_version from the top level of the CESM clone (i.e., from a directory containing cime, components, and so on). Also:
      • Copy and paste the full output into your post
      • Redirect the output to a file (./describe_version > version_info.txt) and attach the file to your post.
    • For older versions of the model that don't have describe_version scripts, running the following commands from the top level of the CESM clone (i.e., from a directory containing cime, components, etc.) gives the output:
      • git description
      • ./manage_externals/checkout_externals --status --verbose
I am currently working with CESM2.1.3 using the "ISSP126Clm50BgcCrop" component to create a regional case with the China meteorological forcing dataset (1979-2018). It has successfully driven the "IHistClm50BgcCrop" component. However, I encountered issues with future anomaly forcing. From the top level of the CESM clone (i.e., from the directory containing cime, components, etc.), I ran the script ./describe_version > version_info.txt and attached that file to this post.
I have two questions:
1. How do I create the meshfile for the region in the anomaly forcing for the NUOPC coupler? Is it more appropriate to use single forcing data files (af.tas.CESM.SSP370.2015-2100.nc) or a single NC file with all variables combined (af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc)? Mainly, I found that the NC file with all variables combined has an error:
[fengjinping@swarm02 anomaly_forcing]$ ncdump -h af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc
ncdump: af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc: NetCDF: Unknown file format.
2.I explored using the MCT cap for anomaly forcing and encountered an error:
(t_initf) Read in prof_inparm namelist from: drv_in
(t_initf) Using profile_disable= F
(t_initf) profile_timer= 4
(t_initf) profile_depth_limit= 4
(t_initf) profile_detail_limit= 2
(t_initf) profile_barrier= F
(t_initf) profile_outpe_num= 1
(t_initf) profile_outpe_stride= 0
(t_initf) profile_single_file= F
(t_initf) profile_global_stats= T
(t_initf) profile_ovhd_measurement= F
(t_initf) profile_add_detail= F
(t_initf) profile_papi_enable= F
ERROR: (shr_ncread_domain) ERROR var does not exist lon

How should I resolve this? I've attached other relevant information for reference. I hope to receive your response soon, and I thank you in advance!
 

Attachments

  • version_info.txt
    4.2 KB · Views: 1
  • The CFMD dataset ( 1979-2018 ) drives the process of ISSP126 ( ISSP126Clm50BgcCrop )..txt
    8.1 KB · Views: 1
  • user_datm.streams.txt.Anomaly.Forcing.Humidity.txt
    713 bytes · Views: 1
  • user_datm.streams.txt.Anomaly.Forcing.Longwave.txt
    713 bytes · Views: 1
  • user_datm.streams.txt.Anomaly.Forcing.Precip.txt
    711 bytes · Views: 0
  • user_datm.streams.txt.Anomaly.Forcing.Pressure.txt
    711 bytes · Views: 0
  • user_datm.streams.txt.Anomaly.Forcing.Uwind.txt
    709 bytes · Views: 2
  • user_datm.streams.txt.Anomaly.Forcing.Temperature.txt
    712 bytes · Views: 0
  • user_datm.streams.txt.Anomaly.Forcing.Shortwave.txt
    713 bytes · Views: 1
Accessory information
 

Attachments

  • user_datm.streams.txt.Anomaly.Forcing.Vwind.txt
    709 bytes · Views: 4
  • user_datm.streams.txt.CLMGSWP3v1.Precip.txt
    22.3 KB · Views: 3
  • user_datm.streams.txt.CLMGSWP3v1.Solar.txt
    22.3 KB · Views: 2
  • user_datm.streams.txt.CLMGSWP3v1.TPQW.txt
    16.8 KB · Views: 0
  • user_datm.streams.txt.co2tseries.SSP1-2.6.txt
    717 bytes · Views: 1
  • user_datm.streams.txt.presaero.SSP1-2.6.txt
    1.1 KB · Views: 2

oleson

Keith Oleson
CSEG and Liaisons
Staff member
There is no NUOPC coupler with release-cesm2.1.3, it uses MCT. You should use the individual anomaly files. I see you've posted about that on another thread, so I will answer there.
 
Status
Not open for further replies.
Top