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 14383 – NEMO

Changeset 14383


Ignore:
Timestamp:
2021-02-03T15:31:16+01:00 (3 years ago)
Author:
dancopsey
Message:

Make net sea ice heat flux be calculated from conductive and melting heat fluxes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_penetrating_solar/src/OCE/SBC/sbccpl.F90

    r14301 r14383  
    16941694      ziceld(:,:) = 1._wp - picefr(:,:) 
    16951695      zcptn (:,:) = rcp * sst_m(:,:) 
     1696 
     1697#if defined key_si3       
     1698      !                                                      ! ========================= ! 
     1699      SELECT CASE( TRIM( sn_rcv_iceflx%cldes ) )             !  ice topmelt and botmelt  ! 
     1700      !                                                      ! ========================= ! 
     1701      CASE ('coupled') 
     1702         IF (ln_scale_ice_flux) THEN 
     1703            WHERE( a_i(:,:,:) > 1.e-10_wp ) 
     1704               qml_ice(:,:,:) = frcv(jpr_topm)%z3(:,:,:) * a_i_last_couple(:,:,:) / a_i(:,:,:) 
     1705               qcn_ice(:,:,:) = frcv(jpr_botm)%z3(:,:,:) * a_i_last_couple(:,:,:) / a_i(:,:,:) 
     1706            ELSEWHERE 
     1707               qml_ice(:,:,:) = 0.0_wp 
     1708               qcn_ice(:,:,:) = 0.0_wp 
     1709            END WHERE 
     1710         ELSE 
     1711            qml_ice(:,:,:) = frcv(jpr_topm)%z3(:,:,:) 
     1712            qcn_ice(:,:,:) = frcv(jpr_botm)%z3(:,:,:) 
     1713         ENDIF 
     1714      END SELECT 
     1715#endif 
     1716 
    16961717      ! 
    16971718      !                                                      ! ========================= ! 
     
    18611882      !                                                      ! ========================= ! 
    18621883      CASE( 'oce only' )         ! the required field is directly provided 
    1863          zqns_tot(:,:) = frcv(jpr_qnsoce)%z3(:,:,1) 
    1864          ! For Met Office sea ice non-solar fluxes are already delt with by JULES so setting to zero 
    1865          ! here so the only flux is the ocean only one. 
    1866          zqns_ice(:,:,:) = 0._wp  
     1884 
     1885         ! Get the sea ice non solar heat flux from conductive and melting 
     1886         IF( TRIM(sn_rcv_iceflx%cldes) == 'coupled' ) THEN 
     1887            zqns_ice(:,:,:) = qml_ice(:,:,:) + qcn_ice(:,:,:) 
     1888         ELSE 
     1889            zqns_ice(:,:,:) = 0._wp 
     1890         ENDIF 
     1891 
     1892         ! Calculate the total non solar heat flux. The ocean only non solar heat flux (zqns_oce) will be recalculated after this CASE 
     1893         ! statement to be consistent with other coupling methods even though .zqns_oce = frcv(jpr_qnsoce)%z3(:,:,1) 
     1894         zqns_tot(:,:) = frcv(jpr_qnsoce)%z3(:,:,1) * ziceld(:,:) + SUM( zqns_ice(:,:,:) * a_i(:,:,:), dim=3 ) 
     1895          
    18671896      CASE( 'conservative' )     ! the required fields are directly provided 
    18681897         zqns_tot(:,:) = frcv(jpr_qnsmix)%z3(:,:,1) 
     
    21052134 
    21062135#if defined key_si3       
    2107       !                                                      ! ========================= ! 
    2108       SELECT CASE( TRIM( sn_rcv_iceflx%cldes ) )             !  ice topmelt and botmelt  ! 
    2109       !                                                      ! ========================= ! 
    2110       CASE ('coupled') 
    2111          IF (ln_scale_ice_flux) THEN 
    2112             WHERE( a_i(:,:,:) > 1.e-10_wp ) 
    2113                qml_ice(:,:,:) = frcv(jpr_topm)%z3(:,:,:) * a_i_last_couple(:,:,:) / a_i(:,:,:) 
    2114                qcn_ice(:,:,:) = frcv(jpr_botm)%z3(:,:,:) * a_i_last_couple(:,:,:) / a_i(:,:,:) 
    2115             ELSEWHERE 
    2116                qml_ice(:,:,:) = 0.0_wp 
    2117                qcn_ice(:,:,:) = 0.0_wp 
    2118             END WHERE 
    2119          ELSE 
    2120             qml_ice(:,:,:) = frcv(jpr_topm)%z3(:,:,:) 
    2121             qcn_ice(:,:,:) = frcv(jpr_botm)%z3(:,:,:) 
    2122          ENDIF 
    2123       END SELECT 
    21242136      !                                                      ! ========================= ! 
    21252137      !                                                      !      Transmitted Qsr      !   [W/m2] 
Note: See TracChangeset for help on using the changeset viewer.