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/LIM_SRC_3/iceforcing.F90 – 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/LIM_SRC_3/iceforcing.F90

    r8906 r8920  
    7272      SELECT CASE( ksbc ) 
    7373         CASE( jp_usr     )   ;    CALL usrdef_sbc_ice_tau( kt )                 ! user defined formulation 
    74          CASE( jp_blk     )   ;    CALL blk_ice_tau                              ! Bulk formulation 
    75          CASE( jp_purecpl )   ;    CALL sbc_cpl_ice_tau( utau_ice , vtau_ice )   ! Coupled   formulation 
     74         CASE( jp_blk     )   ;    CALL blk_ice_tau                              ! Bulk         formulation 
     75         CASE( jp_purecpl )   ;    CALL sbc_cpl_ice_tau( utau_ice , vtau_ice )   ! Coupled      formulation 
    7676      END SELECT 
    7777 
     
    134134!!gm cldf_ice is a real, DOCTOR naming rule: start with cd means CHARACTER passed in argument ! 
    135135      alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    136        
    137       SELECT CASE( ksbc )      !==  fluxes over sea ice  ==! 
    138       ! 
    139       CASE( jp_usr )                !--- user defined formulation 
     136      ! 
     137      ! 
     138      SELECT CASE( ksbc )   !== fluxes over sea ice ==! 
     139      ! 
     140      CASE( jp_usr )              !--- user defined formulation 
    140141                                  CALL usrdef_sbc_ice_flx( kt ) 
    141          ! 
    142       CASE( jp_blk )                !--- bulk formulation 
    143                                   CALL blk_ice_flx( t_su, h_s, h_i, alb_ice )    !  
     142      CASE( jp_blk )              !--- bulk formulation 
     143                                  CALL blk_ice_flx    ( t_su, h_s, h_i, alb_ice )    !  
    144144         IF( ln_mixcpl        )   CALL sbc_cpl_ice_flx( picefr=at_i_b, palbi=alb_ice, psst=sst_m, pist=t_su, phs=h_s, phi=h_i ) 
    145          IF( nn_flxdist /= -1 )   CALL ice_flx_dist( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_flxdist ) 
    146          ! 
    147       CASE ( jp_purecpl )           !--- coupled formulation 
     145         IF( nn_flxdist /= -1 )   CALL ice_flx_dist   ( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_flxdist ) 
     146         SELECT CASE( nice_jules ) 
     147         CASE( np_jules_ACTIVE )  !    compute conduction flux and surface temperature (as in Jules surface module) 
     148                                  CALL blk_ice_qcn    ( nn_monocat, t_su, t_bo, h_s, h_i ) 
     149         END SELECT 
     150      CASE ( jp_purecpl )         !--- coupled formulation 
    148151                                  CALL sbc_cpl_ice_flx( picefr=at_i_b, palbi=alb_ice, psst=sst_m, pist=t_su, phs=h_s, phi=h_i ) 
    149          IF( nn_flxdist /= -1 )   CALL ice_flx_dist( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_flxdist ) 
    150          ! 
    151       END SELECT 
    152  
    153       IF( iom_use('icealb') ) THEN    !--- output ice albedo 
     152         IF( nn_flxdist /= -1 )   CALL ice_flx_dist   ( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_flxdist ) 
     153      END SELECT 
     154 
     155      !--- output ice albedo and surface albedo ---! 
     156      IF( iom_use('icealb') ) THEN 
    154157         WHERE( at_i_b <= epsi06 )   ;   zalb(:,:) = rn_alb_oce 
    155158         ELSEWHERE                   ;   zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b 
     
    157160         CALL iom_put( "icealb" , zalb(:,:) ) 
    158161      ENDIF 
    159  
    160       IF( iom_use('albedo') ) THEN    !--- output surface albedo 
     162      IF( iom_use('albedo') ) THEN 
    161163         zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + rn_alb_oce * ( 1._wp - at_i_b ) 
    162164         CALL iom_put( "albedo" , zalb(:,:) ) 
Note: See TracChangeset for help on using the changeset viewer.