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

CAM heat flux (from sea ice) calculation

Hello,
I want to conduct a sensitivity run to sea ice thickness, using CAM, taking into account the effect of sea-ice thickness on the air-sea heat flux.

I am using DOM (data ocean model), in which I can specify the SST (sst file and inic file - initial conditions file, for example: inic_gaus_cami_0000-09-01_64x128_L26_c030918.nc) and define the sea-ice fraction (sst file and inic file) and thickness (inic file only).
I noticed that the sea-ice thickness doesn't affect any calculations (/CAM/cam1/models/atm/cam/src/physics/cam1/physpkg: lines 234-280 see below [1]), and specifically, seems that the flux subroutine (CAM/cam1/models/atm/cam/src/ocnsice/dom/srfoce: lines 96-104 see [2] below) sets any ocean-atmosphere flux which is not from open ocean into zero.
In that case, this kind of sensitivity test is not possible.

Do you know about someone who did it before or have any suggestions how to modify the code accordingly, i.e. to take into account the effect of ice thickness on the air-sea heat flux?

Thanks, Ilit.


[1] #if (defined COUP_SOM)
!
! Set ocean surface quantities - ocn model internal to atm
!
if (is_end_curr_day ()) then
call print_coverage ('icefrac', ' million km2', icefrac, 1.d-12)
do c=begchunk,endchunk
ncol = get_ncols_p(c)
do i=1,ncol
tmp(i,c) = icefrac(i,c)*sicthk(i,c)
end do
end do
call print_coverage ('icevol ', ' 10^13m3', tmp, 1.d-13)

do c=begchunk,endchunk
ncol = get_ncols_p(c)
do i=1,ncol
tmp(i,c) = icefrac(i,c)*snowhice(i,c)
end do
end do
call print_coverage ('snowvol', ' 10^13m3', tmp, 1.d-13)
end if

call t_startf ('somint')
call somint ()
call t_stopf ('somint')

call t_startf ('somoce')
call somoce (surface_state2d, srfflx_parm2d_ocn)
call t_stopf ('somoce')

#else

call t_startf ('sstint')
call sstint ()
call t_stopf ('sstint')
!
! iceint may change ocean fraction, so call it before camoce
!
call t_startf ('iceint')
call iceint ()
call t_stopf ('iceint')

call t_startf ('camoce')
call camoce (surface_state2d, srfflx_parm2d_ocn)
call t_stopf ('camoce')
#endif

[2] ! Set non-water constituent fluxes to zero
!
do m=2,pcnst+pnats
do ii=1,npts
i = indx(ii)
qflx(i,m) = 0.
end do
end do
!
 
Top