cjgabriel7@gmail_com
New Member
Modifying albedo in the coupler question I am attempting to modify ocean surface albedo in specific rectangular regions (bound by lat min, lat max, lon min, lon max) using the CESM (cesm1_1_1_ccmi23). I have identified the appropriate subroutine in the coupler where albedo is calculated. Please see attached. I found no other instances in which albedo is calculated in any of the model components. I expect that if I were to correctly prescribe albedo to a desired value here in this loop (see below) in this section of the coupler code, this would then calculate albedo on the ocean grid, create a sparse matrix and then communicate albedo to the other components of the model on the appropriate grid. The data from the albedo calculations would pass from the ocean grid, through the interpolation in the coupler to the appropriate grid,such as 0.9x1.25 for atmosphere and gx1v6 for the ocean. When I attempt to define a region within the code (as shown below) I am unable to build the case and I get error messages indicating that the regulat lat lon coordinates I am providing are invalid. The buildlog shows a number of errors. The errors seem to stem from the fact that I am giving the model regular lat lon coordinates. The error message says basically the model needs to know the weighted ocean values. Initially, I read this literally, meaning that I'd need to provide the lat lon bounds as rlat and rlon bounds - rotated ocean coordinates. However, lats(n) and lons(n) are defined as latitude and longitude earlier in the code. Basically, how do I define where (in terms of latitude and longitude) I want to change the ocean albedo in the coupler? Why can't I just define lats(n) in regular lat lon coordinates? Is there a program available to convert regular lat lon coordinates and rotated ocean coordinates into lats(n)? If anyone has experience modifying albedo in the coupler, would you be able to indicate any other places in the code that may need to be changed. Any comments that suggest that it might be better to go about this differently would also be appreciated. This is the pseudo-code of what I want to do. It would just set albedo in the box that I draw with the code and leave it as is elsewhere. For n=1,nlocIf (lats(n) .lt. x1 .and. lats(n) .gt. x2 .and. lons(n) .lt. y1 .and. lons(n) .gt. y2) anidr = 0,5_R8
avsdr = 0.5_R8
anidf = 0.5_R8
avsdf = 0.5_R8else anidr=anidr avsdr=avsdr anidf=anidf avsdf=avsdfend Information about the coupler http://www.cesm.ucar.edu/models/ccsm3.0/cpl6/users_guide/node20.html
Thanks so much for the help. Please let me know if any clarification is required.
avsdr = 0.5_R8
anidf = 0.5_R8
avsdf = 0.5_R8else anidr=anidr avsdr=avsdr anidf=anidf avsdf=avsdfend Information about the coupler http://www.cesm.ucar.edu/models/ccsm3.0/cpl6/users_guide/node20.html
Thanks so much for the help. Please let me know if any clarification is required.