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

Turning off CLM

brianpm

Member
Hopefully this is a simple question, but it's been giving me a headache.

I want to run an aqua planet configuration with a data ocean rather than an analytic SST distribution. There is no option for that in sst_data.F90 in the aqua_planet section, so I thought I would invent my own aqua planet.

To do it, I am trying to put eccen=obliq=mvelp=0. in the CAM namelist, to get rid of any seasonal cycle and hemispherically asymmetric insolation. I also edited the input data
/atm/cam2/inic/gaus/cami_0000-09-01_64x128_L26_c030918.nc, making PHIS, SGH, LANDM, SNOWHICE, LANDFRAC, ICEFRAC, SICTHK, and LANDM_COSLAT all equal to zero everywhere. To try to make the CLM dataset agree with these changes, I made similar changes to /lnd/clm2/srfdata/cam/clms_64x128_USGS_c030605.nc. That is, I made LANDMASK, LANDFRAC, and LANDFRAC_PFT all equal to 0 everywhere.

As you might guess, this doesn't seem to work. I get an error that looks like:
...
Attempting to read surface boundary data .....
(GETFIL): attempting to find local file clms_64x128_USGS_c030605.nc
(GETFIL): using /ptmp/brianpm/lnd/clm2/srfdata/cam/clms_64x128_USGS_c030605.nc
Successfully read surface boundary data

initDecomp(): Number of processes exceeds number of land grid cells
ENDRUN: called without a message string

Traceback:
initDecomp(): Number of processes exceeds number of land grid cells
ENDRUN: called without a message string

I'm not sure what to do with this. Is it possible to just turn off CLM, or is there a better way to edit these input files, or do I have to start mucking around in the code? Or have I gone about this problem wrong to begin with?

Any advice is welcome.
 

olson

Member
> I want to run an aqua planet configuration with a data ocean rather than an
> analytic SST distribution. There is no option for that in sst_data.F90 in the
> aqua_planet section, so I thought I would invent my own aqua planet.
>
> To do it, I am trying to put eccen=obliq=mvelp=0. in the CAM namelist, to get
> rid of any seasonal cycle and hemispherically asymmetric insolation. I also
> edited the input data
> /atm/cam2/inic/gaus/cami_0000-09-01_64x128_L26_c030918.nc, making PHIS, SGH,
> LANDM, SNOWHICE, LANDFRAC, ICEFRAC, SICTHK, and LANDM_COSLAT all equal to
> zero everywhere. To try to make the CLM dataset agree with these changes, I
> made similar changes to /lnd/clm2/srfdata/cam/clms_64x128_USGS_c030605.nc.
> That is, I made LANDMASK, LANDFRAC, and LANDFRAC_PFT all equal to 0
> everywhere.
>
> As you might guess, this doesn't seem to work. I get an error that looks like:
> ...
> Attempting to read surface boundary data .....
> (GETFIL): attempting to find local file clms_64x128_USGS_c030605.nc
> (GETFIL): using /ptmp/brianpm/lnd/clm2/srfdata/cam/clms_64x128_USGS_c030605.nc
> Successfully read surface boundary data
>
> initDecomp(): Number of processes exceeds number of land grid cells
> ENDRUN: called without a message string
>
> Traceback:
> initDecomp(): Number of processes exceeds number of land grid cells
> ENDRUN: called without a message string
>


When the land model initializes, it checks for consistency between its
configuration and the atm configuration. The model likely aborted at
the point of finding inconsistencies.


>
> I'm not sure what to do with this. Is it possible to just turn off CLM, or is
> there a better way to edit these input files, or do I have to start mucking
> around in the code? Or have I gone about this problem wrong to begin with?
>

It would be best to do the reverse of what you tried above, namely, run
the model in aqua_planet mode but minimally muck with code to re-enable the
data ocean (and, presumably, the sea-ice if you desire).


So:


1. set "aqua_planet" to .true. in the namelist

2. set eccen=obliq=mvelp=0. as you did before in the namelist

3. To re-enable the data ocean code:

reverse the "aqua_planet" logic for all occurrences in the following 2
files:


- models/atm/cam/src/ocnsice/dom/sst_data.F90
- models/atm/cam/src/ocnsice/dom/camoce.F90

4. To additionally re-enable the sea ice code:

reverse the "aqua_planet" logic for all occurrences in the following 3
files:


- models/ice/csim4/camice.F90
- models/ice/csim4/ice_data.F90
- models/atm/cam/src/physics/cam1/tphysac.F90


5. Finally, to ensure a more hemispherically symmetric radiative
forcing, it is recommended to use a hemispherically symmetric ozone
dataset which can be found on the NCAR MSS in ready-to-use format at:

/OLSON/datasets/T42/apeozone.nc

Or build a dataset yourself using the Aqua-planet Experiment Project:

http://www.met.reading.ac.uk/~mike/APE/ape_ozone.html

(using the CAM default ozone netCDF dataset as a template)
 

brianpm

Member
I had some trouble with the ozone data at first, so I reverted to the original for now and I'll make my own once it is running. I'm also just leaving sea-ice off for right now, which will also change in the future.

However, I've done steps 1, 2, and 3 from the original reply and I'm having trouble. (Also I didn't notice any aqua_planet logic in models/atm/cam/src/ocnsice/dom/camoce.F90, or am I missing something?)

Here's what is spit out:
...
INITEXT: attribute from_hires is true.
Will use tssub values to guess sea ice
(shr_orb_params) Calculate characteristics of the orbit:
(shr_orb_params) CVS revision: $Revision: 1.2.4.1 $
(shr_orb_params) CVS Tag : $Name: cam3_0_brnchT_p1 $
(shr_orb_params) Use input orbital parameters:
(shr_orb_params) ------ Computed Orbital Parameters ------
(shr_orb_params) Eccentricity = 0.000000E+00
(shr_orb_params) Obliquity (deg) = 0.000000E+00
(shr_orb_params) Obliquity (rad) = 0.000000E+00
(shr_orb_params) Long of perh(deg) = 0.000000E+00
(shr_orb_params) Long of perh(rad) = 3.141593E+00
(shr_orb_params) Long at v.e.(rad) = 0.000000E+00
(shr_orb_params) -----------------------------------------
Not a netCDF id
ENDRUN:HANDLE_ERROR

Traceback:
Offset 0x000001ac in procedure __abortutils_MOD_endrun, near line 45 in file /home/bluesky/brianpm/ca
m1/models/atm/cam/src/control/abortutils.F90
Offset 0x000000ac in procedure handle_error, near line 735 in file /home/bluesky/brianpm/cam1/models/
atm/cam/src/control/wrap_nf.F90
Offset 0x00000034 in procedure wrap_inq_dimid, near line 80 in file /home/bluesky/brianpm/cam1/models
/atm/cam/src/control/wrap_nf.F90
Offset 0x0000068c in procedure __sst_data_MOD_sstini, near line 277 in file /home/bluesky/brianpm/usr
_src/sst_data.F90
Offset 0x00000fa0 in procedure initext, near line 273 in file /home/bluesky/brianpm/cam1/models/atm/c
am/src/control/initext.F90
Offset 0x0000103c in procedure cam, near line 207 in file /home/bluesky/brianpm/cam1/models/atm/cam/s
rc/control/cam.F90

So it seems like something isn't sitting right with the SST data, but I even reverted back to the original SSTs. It looks like it is just looking for the dimensions of the data, which are in the file, so it must be a problem with reading the dataset or assigning it an ID or something....

Any suggestions?
 

brianpm

Member
It looks like I might have found my problem. I need to reverse the aqua_planet logic in initext.F90 at the line that says "if (.not. aqua_planet) then". Otherwise the SST data won't be assigned an ID, I guess.
 

olson

Member
> I had some trouble with the ozone data at first, so I reverted to the original for now
> and I'll make my own once it is running. I'm also just leaving sea-ice off for right >now, which will also change in the future.

> However, I've done steps 1, 2, and 3 from the original reply and I'm having trouble.
> (Also I didn't notice any aqua_planet logic in >models/atm/cam/src/ocnsice/dom/camoce.F90, or am I missing something?)

... no, I was missing something - I was looking at a different version of CAM. In
CAM3.0 you are correct that the aqua-planet code that I was seeing in camoce
actually resides in initext as you found.

Likewise, for ice, no aqua_planet logic lives in "camice" but rather in "ice_data"
 
Top