New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12894 for NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2020-05-08T15:40:58+02:00 (4 years ago)
Author:
clem
Message:

add parameterization of radiation from Marion Lebrun (2019)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/SBC/sbccpl.F90

    r12890 r12894  
    21112111      IF( .NOT.ln_cndflx ) THEN                              !==  No conduction flux as surface forcing  ==! 
    21122112         ! 
    2113          !                    ! ===> used prescribed cloud fraction representative for polar oceans in summer (0.81) 
    2114          !                    !      should be real cloud fraction instead (as in the bulk) but needs to be read from atm. 
    2115          ztri(:,:) = 0.18 * ( 1.0 - zcloud_fra(:,:) ) + 0.35 * zcloud_fra(:,:)  ! surface transmission when hi>10cm (Grenfell Maykut 77) 
    2116          ! 
    2117          DO jl = 1, jpl 
    2118             WHERE    ( phs(:,:,jl) <= 0._wp .AND. phi(:,:,jl) <  0.1_wp )     ! linear decrease from hi=0 to 10cm   
    2119                zqtr_ice_top(:,:,jl) = qsr_ice(:,:,jl) * ( ztri(:,:) + ( 1._wp - ztri(:,:) ) * ( 1._wp - phi(:,:,jl) * 10._wp ) ) 
    2120             ELSEWHERE( phs(:,:,jl) <= 0._wp .AND. phi(:,:,jl) >= 0.1_wp )     ! constant (ztri) when hi>10cm 
    2121                zqtr_ice_top(:,:,jl) = qsr_ice(:,:,jl) * ztri(:,:) 
    2122             ELSEWHERE                                                         ! zero when hs>0 
    2123                zqtr_ice_top(:,:,jl) = 0._wp 
    2124             END WHERE 
    2125          ENDDO 
     2113         IF( nn_qtrice == 0 ) THEN 
     2114            ! formulation derived from Grenfell and Maykut (1977), where transmission rate 
     2115            !    1) depends on cloudiness 
     2116            !       ! ===> used prescribed cloud fraction representative for polar oceans in summer (0.81) 
     2117            !       !      should be real cloud fraction instead (as in the bulk) but needs to be read from atm. 
     2118            !    2) is 0 when there is any snow 
     2119            !    3) tends to 1 for thin ice 
     2120            ztri(:,:) = 0.18 * ( 1.0 - zcloud_fra(:,:) ) + 0.35 * zcloud_fra(:,:)  ! surface transmission when hi>10cm 
     2121            DO jl = 1, jpl 
     2122               WHERE    ( phs(:,:,jl) <= 0._wp .AND. phi(:,:,jl) <  0.1_wp )       ! linear decrease from hi=0 to 10cm   
     2123                  zqtr_ice_top(:,:,jl) = zqsr_ice(:,:,jl) * ( ztri(:,:) + ( 1._wp - ztri(:,:) ) * ( 1._wp - phi(:,:,jl) * 10._wp ) ) 
     2124               ELSEWHERE( phs(:,:,jl) <= 0._wp .AND. phi(:,:,jl) >= 0.1_wp )       ! constant (ztri) when hi>10cm 
     2125                  zqtr_ice_top(:,:,jl) = zqsr_ice(:,:,jl) * ztri(:,:) 
     2126               ELSEWHERE                                                           ! zero when hs>0 
     2127                  zqtr_ice_top(:,:,jl) = 0._wp  
     2128               END WHERE 
     2129            ENDDO 
     2130         ELSEIF( nn_qtrice == 1 ) THEN 
     2131            ! formulation is derived from the thesis of M. Lebrun (2019). 
     2132            !    It represents the best fit using several sets of observations 
     2133            !    It comes with snow conductivities adapted to freezing/melting conditions (see icethd_zdf_bl99.F90) 
     2134            zqtr_ice_top(:,:,:) = 0.3_wp * zqsr_ice(:,:,:) 
     2135         ENDIF 
    21262136         !      
    21272137      ELSEIF( ln_cndflx .AND. .NOT.ln_cndemulate ) THEN      !==  conduction flux as surface forcing  ==! 
    21282138         ! 
    2129          !                    ! ===> here we must receive the qtr_ice_top array from the coupler 
    2130          !                           for now just assume zero (fully opaque ice) 
     2139         !          ! ===> here we must receive the qtr_ice_top array from the coupler 
     2140         !                 for now just assume zero (fully opaque ice) 
    21312141         zqtr_ice_top(:,:,:) = 0._wp 
    21322142         ! 
Note: See TracChangeset for help on using the changeset viewer.