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 8920 for branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC – NEMO

Ignore:
Timestamp:
2017-12-06T15:33:57+01:00 (6 years ago)
Author:
clem
Message:

debug ice option in which conductivity is calculated from bulk formulae and used in ice thermodynamics (np_jules_active in forced mode)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90

    r8885 r8920  
    6868   PUBLIC   sbc_blk       ! called in sbcmod 
    6969#if defined key_lim3 
    70    PUBLIC   blk_ice_tau   ! routine called in icestp module 
    71    PUBLIC   blk_ice_flx   ! routine called in icestp module 
    72    PUBLIC   blk_ice_qcn   ! routine called in icestp module 
     70   PUBLIC   blk_ice_tau   ! routine called in iceforcing 
     71   PUBLIC   blk_ice_flx   ! routine called in iceforcing 
     72   PUBLIC   blk_ice_qcn   ! routine called in iceforcing 
    7373#endif  
    7474 
     
    10411041      CASE ( 1 , 3 ) 
    10421042         ! 
    1043          zfac    =  1._wp /  ( rn_cnd_s + rcdic ) 
    1044          zfac2   =  EXP(1._wp) * 0.5_wp * zepsilon 
    1045          zfac3   =  2._wp / zepsilon 
     1043         zfac  = 1._wp /  ( rn_cnd_s + rcdic ) 
     1044         zfac2 = EXP(1._wp) * 0.5_wp * zepsilon 
     1045         zfac3 = 2._wp / zepsilon 
    10461046         !    
    10471047         DO jl = 1, jpl                 
    10481048            DO jj = 1 , jpj 
    10491049               DO ji = 1, jpi 
    1050                   !                                ! Effective thickness 
    1051                   zhe               =   ( rn_cnd_s * phi(ji,jj,jl) + rcdic * phs(ji,jj,jl) ) * zfac 
    1052                   !                                ! Enhanced conduction factor 
    1053                   IF( zhe >=  zfac2 )  & 
    1054                      zgfac(ji,jj,jl)   =   MIN( 2._wp, ( 0.5_wp + 0.5 * LOG( zhe * zfac3 ) ) ) 
     1050                  zhe = ( rn_cnd_s * phi(ji,jj,jl) + rcdic * phs(ji,jj,jl) ) * zfac                             ! Effective thickness 
     1051                  IF( zhe >=  zfac2 )   zgfac(ji,jj,jl) = MIN( 2._wp, 0.5_wp * ( 1._wp + LOG( zhe * zfac3 ) ) ) ! Enhanced conduction factor 
    10551052               END DO 
    10561053            END DO 
     
    10631060      ! -------------------------------------------------------------! 
    10641061      ! 
    1065       zfac   =   rcdic * rn_cnd_s  
    1066       !                             ! ========================== ! 
    1067       DO jl = 1, jpl                !  Loop over ice categories  ! 
    1068          !                          ! ========================== ! 
     1062      zfac = rcdic * rn_cnd_s 
     1063      ! 
     1064      DO jl = 1, jpl 
    10691065         DO jj = 1 , jpj 
    10701066            DO ji = 1, jpi 
    1071                !                    ! Effective conductivity of the snow-ice system divided by thickness 
    1072                zkeff_h =   zfac * zgfac(ji,jj,jl) / ( rcdic * phs(ji,jj,jl) + rn_cnd_s * phi(ji,jj,jl) ) 
    1073                !                    ! Store initial surface temperature 
    1074                ztsu    =   ptsu(ji,jj,jl) 
    1075                !                    ! Net initial atmospheric heat flux 
    1076                zqa0    =   qsr_ice(ji,jj,jl) - qsr_ice_tr(ji,jj,jl) + qns_ice(ji,jj,jl) 
     1067               !                     
     1068               zkeff_h = zfac * zgfac(ji,jj,jl) / &                                    ! Effective conductivity of the snow-ice system divided by thickness 
     1069                  &      ( rcdic * phs(ji,jj,jl) + rn_cnd_s * MAX( 0.01, phi(ji,jj,jl) ) ) 
     1070               ztsu    = ptsu(ji,jj,jl)                                                ! Store initial surface temperature 
     1071               zqa0    = qsr_ice(ji,jj,jl) - qsr_ice_tr(ji,jj,jl) + qns_ice(ji,jj,jl)  ! Net initial atmospheric heat flux 
    10771072               ! 
    1078                DO iter = 1, nit     ! --- Iteration loop 
    1079                    !                      ! Conduction heat flux through snow-ice system (>0 downwards) 
    1080                    zqc   =   zkeff_h * ( ztsu - ptb(ji,jj) ) 
    1081                    !                      ! Surface energy budget 
    1082                    zqnet =   zqa0 + dqns_ice(ji,jj,jl) * ( ztsu - ptsu(ji,jj,jl) ) - zqc 
    1083                    !                      ! Temperature update 
    1084                    ztsu  =   ztsu - zqnet / ( dqns_ice(ji,jj,jl) - zkeff_h ) 
     1073               DO iter = 1, nit     ! --- Iterative loop 
     1074                  zqc   = zkeff_h * ( ztsu - ptb(ji,jj) )                              ! Conduction heat flux through snow-ice system (>0 downwards) 
     1075                  zqnet = zqa0 + dqns_ice(ji,jj,jl) * ( ztsu - ptsu(ji,jj,jl) ) - zqc  ! Surface energy budget 
     1076                  ztsu  = ztsu - zqnet / ( dqns_ice(ji,jj,jl) - zkeff_h )              ! Temperature update 
    10851077               END DO 
    10861078               ! 
Note: See TracChangeset for help on using the changeset viewer.