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 implement localized ocean albedo modification?

abhanawat

Abhinav
New Member
Hi everyone!

I am new to CESM2 so pardon me if I sound naive.

I would like to to predict the effect of non-uniform ocean albedo manipulation, i.e. different albedo at different parts of various oceans, on the global climate using the CESM2 climate model. Could someone let me know how to do that? I have geospatially varying ocean albedo data that I want to use as input into the climate model for the simulations. Any help would be greatly appreciated!

Thank you!
 

dbailey

CSEG and Liaisons
Staff member
The ocean albedo is computed in the coupler routine drivers/mct/main/seq_flux_mct.F90 in the subroutine seq_flux_ocnalb_mct assuming you are using MCT. This is where you would have to modify the code.
 

abhanawat

Abhinav
New Member
The ocean albedo is computed in the coupler routine drivers/mct/main/seq_flux_mct.F90 in the subroutine seq_flux_ocnalb_mct assuming you are using MCT. This is where you would have to modify the code.
Thank you so much @dbailey ! I will look further into it and let you know again!
 

abhanawat

Abhinav
New Member
The ocean albedo is computed in the coupler routine drivers/mct/main/seq_flux_mct.F90 in the subroutine seq_flux_ocnalb_mct assuming you are using MCT. This is where you would have to modify the code.
Hi @dbailey Could you also let me know how to find the value of the lats(n) and lons(n) used in the seq_flux_ocnalb_mct subroutine?

In the seq_flux_ocnalb_mct subroutine, I found that

do n = 1,nloc_o
lats(n) = dom_o%data%rAttr(klat,n)
lons(n) = dom_o%data%rAttr(klon,n)
enddo

Also, the dom_o is defined as:

dom_o => component_get_dom_cx(ocn) ! dom_ox

I basically want to modify the albedo in those specific latitudes and longitudes already used in the subroutine. Can you please help me with that?
 

dbailey

CSEG and Liaisons
Staff member
You need to add an if block that checks lats and lons. I believe there is already a latitude dependency in the code you have highlighted.
 

abhanawat

Abhinav
New Member
You need to add an if block that checks lats and lons. I believe there is already a latitude dependency in the code you have highlighted.
Thanks @dbailey ! Actually, what I meant is that I want to know the exact latitude and longitudes values already being used in the subroutine. The data that I want to input most likely has a different map resolution than the one already being used in the subroutine. Therefore, if I can find the values of lats(n) and lons(n), I can change the resolution of my input data.
 

dbailey

CSEG and Liaisons
Staff member
I guess what I was saying is you add code like:

if (lats(n) > 50.) then
...
endif

You let the code figure out what gridcells it is applied to.
 

abhanawat

Abhinav
New Member
I guess what I was saying is you add code like:

if (lats(n) > 50.) then
...
endif

You let the code figure out what gridcells it is applied to.
I see! Thanks!! I will try this way and let you know! Also, I am curious: Do you know what the resolution usually is for CESM simulations? Is there like a default resolution for the gridcells?
 

dbailey

CSEG and Liaisons
Staff member
There is not really a default resolution. We do tend to use an approximately one-degree resolution for our workhorse CMIP simulations.
 
Top