ilit_shlezak@weizmann_ac_il
New Member
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
!
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
!