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 8316 for branches/2017 – NEMO

Changeset 8316 for branches/2017


Ignore:
Timestamp:
2017-07-11T14:05:05+02:00 (7 years ago)
Author:
clem
Message:

STEP2 (3): remove obsolete features

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM
Files:
27 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/namelist_ref

    r8313 r8316  
    198198                           !  = 2  Redistribute a single flux over categories (coupled mode only) 
    199199                     ! Sea-ice : 
    200    nn_ice      = 3         !  =0 no ice boundary condition   , 
     200   nn_ice      = 2         !  =0 no ice boundary condition   , 
    201201                           !  =1 use observed ice-cover      , 
    202                            !  =3 to 4 :  ice-model used (LIM3 or CICE)                         ("key_lim3" or "key_cice") 
     202                           !  =2 & 3 :  ice-model used (LIM3 or CICE)                         ("key_lim3" or "key_cice") 
    203203   ln_ice_embd = .false.   !  =F levitating ice with mass and salt exchange but no presure effect 
    204204                           !  =T embedded sea-ice (full salt and mass exchanges and pressure) 
     
    339339   rn_si0      =   0.35    !  RGB & 2 bands: shortess depth of extinction 
    340340   rn_si1      =   23.0    !  2 bands: longest depth of extinction 
    341    ln_qsr_ice  = .true.    !  light penetration for ice-model LIM3 
    342341/ 
    343342!----------------------------------------------------------------------- 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limadv_umx.F90

    r7753 r8316  
    1515   USE phycst         ! physical constant 
    1616   USE dom_oce        ! ocean domain 
    17    USE sbc_oce        ! ocean surface boundary condition 
     17   USE sbc_oce, ONLY: nn_fsbc   ! ocean surface boundary condition 
    1818   USE ice            ! ice variables 
    1919   ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limdiahsb.F90

    r7646 r8316  
    1515   USE ice             ! LIM-3: sea-ice variable 
    1616   USE dom_oce         ! ocean domain 
    17    USE sbc_oce         ! surface boundary condition: ocean fields 
    18    USE sbc_ice         ! Surface boundary condition: sea-ice fields 
     17   USE sbc_oce, ONLY: sfx         ! surface boundary condition: ocean fields 
    1918   USE daymod          ! model calendar 
    2019   USE phycst          ! physical constant 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90

    r8313 r8316  
    1717   USE phycst           ! physical constants 
    1818   USE dom_oce          ! ocean space and time domain 
    19    USE sbc_ice          ! Surface boundary condition: ice   fields 
    2019   USE ice              ! LIM-3 variables 
    2120   USE limrhg           ! LIM-3 rheology 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90

    r8291 r8316  
    1515   !!   lim_istate_init :  initialization of ice state and namelist read 
    1616   !!---------------------------------------------------------------------- 
    17    USE phycst           ! physical constant 
    18    USE oce              ! dynamics and tracers variables 
    19    USE dom_oce          ! ocean domain 
    20    USE sbc_oce          ! Surface boundary condition: ocean fields 
    21    USE sbc_ice          ! Surface boundary condition: ice fields 
    22    USE eosbn2           ! equation of state 
    23    USE ice              ! sea-ice variables 
    24    USE par_oce          ! ocean parameters 
    25    USE limvar           ! lim_var_salprof 
     17   USE phycst         ! physical constant 
     18   USE oce            ! dynamics and tracers variables 
     19   USE dom_oce        ! ocean domain 
     20   USE sbc_oce , ONLY : sst_m, sss_m  
     21   USE sbc_ice , ONLY : tn_ice 
     22   USE eosbn2         ! equation of state 
     23   USE ice            ! sea-ice variables 
     24   USE par_oce        ! ocean parameters 
     25   USE limvar         ! lim_var_salprof 
    2626   ! 
    27    USE in_out_manager   ! I/O manager 
    28    USE lib_mpp          ! MPP library 
    29    USE lib_fortran      ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    30    USE wrk_nemo         ! work arrays 
    31    USE fldread          ! read input fields 
     27   USE in_out_manager ! I/O manager 
     28   USE lib_mpp        ! MPP library 
     29   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     30   USE wrk_nemo       ! work arrays 
     31   USE fldread        ! read input fields 
    3232   USE iom 
    3333 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r8239 r8316  
    1515   USE dom_oce          ! ocean domain 
    1616   USE phycst           ! physical constants (ocean directory)  
    17    USE sbc_oce          ! surface boundary condition: ocean fields 
     17   USE sbc_oce, ONLY: sss_m, sst_m          ! surface boundary condition: ocean fields 
    1818   USE thd_ice          ! LIM thermodynamics 
    1919   USE ice              ! LIM variables 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r8313 r8316  
    2222   USE par_oce        ! Ocean parameters 
    2323   USE dom_oce        ! Ocean domain 
    24    USE sbc_oce        ! Surface boundary condition: ocean fields 
    25    USE sbc_ice        ! Surface boundary condition: ice fields 
     24   USE sbc_oce , ONLY : ln_ice_embd, nn_fsbc, ssh_m 
     25   USE sbc_ice , ONLY : utau_ice, vtau_ice 
    2626   USE ice            ! ice variables 
    2727   USE limitd_me      ! ice strength 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90

    r8233 r8316  
    1919   USE oce     , ONLY :  snwice_mass, snwice_mass_b 
    2020   USE dom_oce        ! ocean domain 
    21    USE sbc_oce        ! Surface boundary condition: ocean fields 
    22    USE sbc_ice        ! Surface boundary condition: ice fields 
     21   USE sbc_oce , ONLY : nn_fsbc 
    2322   USE in_out_manager ! I/O manager 
    2423   USE iom            ! I/O library 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r8313 r8316  
    2828   USE dom_oce        ! ocean domain 
    2929   USE ice            ! LIM sea-ice variables 
    30    USE sbc_ice        ! Surface boundary condition: sea-ice fields 
    31    USE sbc_oce        ! Surface boundary condition: ocean fields 
     30   USE sbc_ice , ONLY : emp_oce, qns_oce, qsr_oce, qemp_oce, emp_ice, qsr_ice, qemp_ice, qevap_ice, alb_ice, tn_ice, cldf_ice 
     31   USE sbc_oce , ONLY : nn_fsbc, ln_ice_embd, sfx, fr_i, qsr_tot, qns, qsr, fmmflx, emp, taum, utau, vtau 
    3232   USE sbccpl         ! Surface boundary condition: coupled interface 
    3333   USE albedo         ! albedo parameters 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r8313 r8316  
    2323   USE dom_oce        ! ocean space and time domain variables 
    2424   USE ice            ! sea-ice variables 
    25    USE sbc_oce        ! Surface boundary condition: ocean fields 
    26    USE sbc_ice        ! Surface boundary condition: ice fields 
     25   USE sbc_oce , ONLY : sst_m, e3t_m, utau, vtau, ssu_m, ssv_m, frq_m, qns_tot, qsr_tot, sprecip 
     26   USE sbc_ice , ONLY : qsr_oce, qns_oce, qemp_oce, qsr_ice, qns_ice, dqns_ice, evap_ice, qprec_ice, qevap_ice, fr1_i0, fr2_i0 
    2727   USE thd_ice        ! thermodynamic sea-ice variables 
    2828   USE limthd_dif     ! vertical diffusion 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r8313 r8316  
    1818   USE par_oce        ! ocean parameters 
    1919   USE phycst         ! physical constants (OCE directory)  
    20    USE sbc_oce        ! Surface boundary condition: ocean fields 
     20   USE sbc_oce , ONLY : sst_m, sss_m 
    2121   USE ice            ! LIM variables 
    2222   USE thd_ice        ! LIM thermodynamics 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90

    r5134 r8316  
    2323   USE domain         ! 
    2424   USE phycst         ! physical constants 
    25    USE sbc_oce        ! Surface boundary condition: ocean fields 
    2625   USE ice            ! LIM variables 
    2726   USE thd_ice        ! LIM thermodynamics 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90

    r8313 r8316  
    1818   USE dom_oce        ! domain variables 
    1919   USE phycst         ! physical constants 
    20    USE sbc_oce        ! Surface boundary condition: ocean fields 
    21    USE sbc_ice        ! Surface boundary condition: ice fields 
     20   USE sbc_oce , ONLY : sss_m 
     21   USE sbc_ice , ONLY : utau_ice, vtau_ice 
    2222   USE thd_ice        ! LIM thermodynamics 
    2323   USE ice            ! LIM variables 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_sal.F90

    r7646 r8316  
    1616   USE par_oce        ! ocean parameters 
    1717   USE phycst         ! physical constants (ocean directory) 
    18    USE sbc_oce        ! Surface boundary condition: ocean fields 
     18   USE sbc_oce , ONLY : sss_m 
    1919   USE ice            ! LIM variables 
    2020   USE thd_ice        ! LIM thermodynamics 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r8312 r8316  
    1616   USE phycst         ! physical constant 
    1717   USE dom_oce        ! ocean domain 
    18    USE sbc_oce        ! ocean surface boundary condition 
     18   USE sbc_oce , ONLY : nn_fsbc 
    1919   USE ice            ! ice variables 
    2020   USE limvar         !  
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limupdate1.F90

    r8239 r8316  
    1313   !!    lim_update1   : computes update of sea-ice global variables from trend terms 
    1414   !!---------------------------------------------------------------------- 
    15    USE sbc_oce         ! Surface boundary condition: ocean fields 
    16    USE sbc_ice         ! Surface boundary condition: ice fields 
    1715   USE dom_oce 
    1816   USE phycst          ! physical constants 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90

    r8239 r8316  
    1313   !!    lim_update2   : computes update of sea-ice global variables from trend terms 
    1414   !!---------------------------------------------------------------------- 
    15    USE sbc_oce         ! Surface boundary condition: ocean fields 
    16    USE sbc_ice         ! Surface boundary condition: ice fields 
    1715   USE dom_oce 
    1816   USE phycst          ! physical constants 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90

    r8239 r8316  
    3838   USE par_oce        ! ocean parameters 
    3939   USE phycst         ! physical constants (ocean directory)  
    40    USE sbc_oce        ! Surface boundary condition: ocean fields 
     40   USE sbc_oce , ONLY : sss_m 
    4141   USE ice            ! ice variables 
    4242   USE thd_ice        ! ice variables (thermodynamics) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r8313 r8316  
    1515   USE phycst 
    1616   USE dom_oce 
    17    USE sbc_oce         ! Surface boundary condition: ocean fields 
     17   USE sbc_oce 
    1818   USE sbc_ice         ! Surface boundary condition: ice fields 
    1919   USE ice 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90

    r8313 r8316  
    146146            CALL iom_rstput( kt, nitdin_r, inum, 'sshn'   , sshn              ) 
    147147#if defined key_lim3 
    148             IF( nn_ice == 3 ) THEN 
     148            IF( nn_ice == 2 ) THEN 
    149149               IF( ALLOCATED(at_i) ) THEN 
    150150                  CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', at_i(:,:)   ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r8306 r8316  
    996996 
    997997#if defined key_lim3 
    998       IF( nn_ice == 3 ) THEN   ! clem2017: condition in case agrif + lim but no-ice in child grid 
     998      IF( nn_ice == 2 ) THEN   ! clem2017: condition in case agrif + lim but no-ice in child grid 
    999999         CALL lim_wri_state( kt, id_i, nh_i ) 
    10001000      ENDIF 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8313 r8316  
    5454 
    5555   PUBLIC   sbc_cpl_init      ! routine called by sbcmod.F90 
    56    PUBLIC   sbc_cpl_rcv       ! routine called by sbc_ice_lim(_2).F90 
     56   PUBLIC   sbc_cpl_rcv       ! routine called by sbc_ice_lim.F90 
    5757   PUBLIC   sbc_cpl_snd       ! routine called by step.F90 
    58    PUBLIC   sbc_cpl_ice_tau   ! routine called by sbc_ice_lim(_2).F90 
    59    PUBLIC   sbc_cpl_ice_flx   ! routine called by sbc_ice_lim(_2).F90 
     58   PUBLIC   sbc_cpl_ice_tau   ! routine called by sbc_ice_lim.F90 
     59   PUBLIC   sbc_cpl_ice_flx   ! routine called by sbc_ice_lim.F90 
    6060   PUBLIC   sbc_cpl_alloc     ! routine called in sbcice_cice.F90 
    6161 
     
    500500      ! 
    501501      ! non solar sensitivity mandatory for LIM ice model 
    502       IF( TRIM( sn_rcv_dqnsdt%cldes ) == 'none' .AND. k_ice /= 0 .AND. k_ice /= 4 .AND. nn_components /= jp_iam_sas ) & 
     502      IF( TRIM( sn_rcv_dqnsdt%cldes ) == 'none' .AND. k_ice /= 0 .AND. k_ice /= 3 .AND. nn_components /= jp_iam_sas ) & 
    503503         CALL ctl_stop( 'sbc_cpl_init: sn_rcv_dqnsdt%cldes must be coupled in namsbc_cpl namelist' ) 
    504504      ! non solar sensitivity mandatory for mixed oce-ice solar radiation coupling technique 
     
    15241524    
    15251525 
    1526    SUBROUTINE sbc_cpl_ice_flx( p_frld, palbi, psst, pist ) 
     1526   SUBROUTINE sbc_cpl_ice_flx( picefr, palbi, psst, pist ) 
    15271527      !!---------------------------------------------------------------------- 
    15281528      !!             ***  ROUTINE sbc_cpl_ice_flx  *** 
     
    15741574      !!                   sprecip           solid precipitation over the ocean   
    15751575      !!---------------------------------------------------------------------- 
    1576       REAL(wp), INTENT(in   ), DIMENSION(:,:)   ::   p_frld     ! lead fraction                [0 to 1] 
     1576      REAL(wp), INTENT(in), DIMENSION(:,:)             ::   picefr     ! ice fraction                [0 to 1] 
    15771577      ! optional arguments, used only in 'mixed oce-ice' case 
    1578       REAL(wp), INTENT(in   ), DIMENSION(:,:,:), OPTIONAL ::   palbi      ! all skies ice albedo  
    1579       REAL(wp), INTENT(in   ), DIMENSION(:,:  ), OPTIONAL ::   psst       ! sea surface temperature     [Celsius] 
    1580       REAL(wp), INTENT(in   ), DIMENSION(:,:,:), OPTIONAL ::   pist       ! ice surface temperature     [Kelvin] 
     1578      REAL(wp), INTENT(in), DIMENSION(:,:,:), OPTIONAL ::   palbi      ! all skies ice albedo  
     1579      REAL(wp), INTENT(in), DIMENSION(:,:  ), OPTIONAL ::   psst       ! sea surface temperature     [Celsius] 
     1580      REAL(wp), INTENT(in), DIMENSION(:,:,:), OPTIONAL ::   pist       ! ice surface temperature     [Kelvin] 
    15811581      ! 
    15821582      INTEGER ::   jl         ! dummy loop index 
    1583       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zcptn, zcptrain, zcptsnw, zicefr, zmsk, zsnw 
     1583      REAL(wp), POINTER, DIMENSION(:,:  ) ::   zcptn, zcptrain, zcptsnw, ziceld, zmsk, zsnw 
    15841584      REAL(wp), POINTER, DIMENSION(:,:  ) ::   zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice 
    15851585      REAL(wp), POINTER, DIMENSION(:,:  ) ::   zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice 
     
    15891589      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_ice_flx') 
    15901590      ! 
    1591       CALL wrk_alloc( jpi,jpj,     zcptn, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
     1591      CALL wrk_alloc( jpi,jpj,     zcptn, zcptrain, zcptsnw, ziceld, zmsk, zsnw ) 
    15921592      CALL wrk_alloc( jpi,jpj,     zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice ) 
    15931593      CALL wrk_alloc( jpi,jpj,     zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice ) 
     
    15951595 
    15961596      IF( ln_mixcpl )   zmsk(:,:) = 1. - xcplmask(:,:,0) 
    1597       zicefr(:,:) = 1.- p_frld(:,:) 
     1597      ziceld(:,:) = 1. - picefr(:,:) 
    15981598      zcptn(:,:) = rcp * sst_m(:,:) 
    15991599      ! 
     
    16111611         ztprecip(:,:) =   frcv(jpr_rain)%z3(:,:,1) + zsprecip(:,:)  ! May need to ensure positive here 
    16121612         zemp_tot(:,:) =   frcv(jpr_tevp)%z3(:,:,1) - ztprecip(:,:) 
    1613          zemp_ice(:,:) = ( frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_snow)%z3(:,:,1) ) * zicefr(:,:) 
     1613         zemp_ice(:,:) = ( frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_snow)%z3(:,:,1) ) * picefr(:,:) 
    16141614      CASE( 'oce and ice'   )   ! received fields: jpr_sbpr, jpr_semp, jpr_oemp, jpr_ievp 
    1615          zemp_tot(:,:) = p_frld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + zicefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) 
    1616          zemp_ice(:,:) = frcv(jpr_semp)%z3(:,:,1) * zicefr(:,:) 
     1615         zemp_tot(:,:) = ziceld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + picefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) 
     1616         zemp_ice(:,:) = frcv(jpr_semp)%z3(:,:,1) * picefr(:,:) 
    16171617         zsprecip(:,:) = frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_semp)%z3(:,:,1) 
    16181618         ztprecip(:,:) = frcv(jpr_semp)%z3(:,:,1) - frcv(jpr_sbpr)%z3(:,:,1) + zsprecip(:,:) 
     
    16201620 
    16211621#if defined key_lim3 
    1622       ! zsnw = snow fraction over ice after wind blowing (=zicefr if no blowing) 
    1623       zsnw(:,:) = 0._wp  ;  CALL lim_thd_snwblow( p_frld, zsnw ) 
     1622      ! zsnw = snow fraction over ice after wind blowing (=picefr if no blowing) 
     1623      zsnw(:,:) = 0._wp  ;  CALL lim_thd_snwblow( ziceld, zsnw ) 
    16241624       
    16251625      ! --- evaporation minus precipitation corrected (because of wind blowing on snow) --- ! 
    1626       zemp_ice(:,:) = zemp_ice(:,:) + zsprecip(:,:) * ( zicefr(:,:) - zsnw(:,:) )  ! emp_ice = A * sublimation - zsnw * sprecip 
     1626      zemp_ice(:,:) = zemp_ice(:,:) + zsprecip(:,:) * ( picefr(:,:) - zsnw(:,:) )  ! emp_ice = A * sublimation - zsnw * sprecip 
    16271627      zemp_oce(:,:) = zemp_tot(:,:) - zemp_ice(:,:)                                ! emp_oce = emp_tot - emp_ice 
    16281628 
    16291629      ! --- evaporation over ocean (used later for qemp) --- ! 
    1630       zevap_oce(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) 
     1630      zevap_oce(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) 
    16311631 
    16321632      ! --- evaporation over ice (kg/m2/s) --- ! 
     
    16751675 
    16761676#else 
    1677       zsnw(:,:) = zicefr(:,:) 
     1677      zsnw(:,:) = picefr(:,:) 
    16781678      ! --- Continental fluxes --- ! 
    16791679      IF( srcv(jpr_rnf)%laction ) THEN   ! runoffs (included in emp later on) 
     
    17141714      IF( iom_use('snow_ao_cea') )  CALL iom_put( 'snow_ao_cea' , sprecip(:,:) * ( 1._wp - zsnw(:,:) )                  )  ! Snow over ice-free ocean  (cell average) 
    17151715      IF( iom_use('snow_ai_cea') )  CALL iom_put( 'snow_ai_cea' , sprecip(:,:) *           zsnw(:,:)                    )  ! Snow over sea-ice         (cell average) 
    1716       IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea' , frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) * tmask(:,:,1) )  ! Sublimation over sea-ice (cell average) 
     1716      IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea' , frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) * tmask(:,:,1) )  ! Sublimation over sea-ice (cell average) 
    17171717      IF( iom_use('evap_ao_cea') )  CALL iom_put( 'evap_ao_cea' , ( frcv(jpr_tevp)%z3(:,:,1)  & 
    1718          &                                                        - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) ) * tmask(:,:,1) )  ! ice-free oce evap (cell average) 
     1718         &                                                        - frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) ) * tmask(:,:,1) )  ! ice-free oce evap (cell average) 
    17191719      ! note: runoff output is done in sbcrnf (which includes icebergs too) and iceshelf output is done in sbcisf 
    17201720      ! 
     
    17341734         ENDIF 
    17351735      CASE( 'oce and ice' )      ! the total flux is computed from ocean and ice fluxes 
    1736          zqns_tot(:,:) =  p_frld(:,:) * frcv(jpr_qnsoce)%z3(:,:,1) 
     1736         zqns_tot(:,:) =  ziceld(:,:) * frcv(jpr_qnsoce)%z3(:,:,1) 
    17371737         IF ( TRIM(sn_rcv_qns%clcat) == 'yes' ) THEN 
    17381738            DO jl=1,jpl 
     
    17411741            ENDDO 
    17421742         ELSE 
    1743             qns_tot(:,:) = qns_tot(:,:) + zicefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
     1743            qns_tot(:,:) = qns_tot(:,:) + picefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
    17441744            DO jl=1,jpl 
    1745                zqns_tot(:,:   ) = zqns_tot(:,:) + zicefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
     1745               zqns_tot(:,:   ) = zqns_tot(:,:) + picefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
    17461746               zqns_ice(:,:,jl) = frcv(jpr_qnsice)%z3(:,:,1) 
    17471747            ENDDO 
     
    17511751         zqns_tot(:,:  ) = frcv(jpr_qnsmix)%z3(:,:,1) 
    17521752         zqns_ice(:,:,1) = frcv(jpr_qnsmix)%z3(:,:,1)    & 
    1753             &            + frcv(jpr_dqnsdt)%z3(:,:,1) * ( pist(:,:,1) - ( (rt0 + psst(:,:  ) ) * p_frld(:,:)   & 
    1754             &                                           + pist(:,:,1) * zicefr(:,:) ) ) 
     1753            &            + frcv(jpr_dqnsdt)%z3(:,:,1) * ( pist(:,:,1) - ( (rt0 + psst(:,:  ) ) * ziceld(:,:)   & 
     1754            &                                           + pist(:,:,1) * picefr(:,:) ) ) 
    17551755      END SELECT 
    17561756      !                                      
     
    17631763#if defined key_lim3       
    17641764      ! --- non solar flux over ocean --- ! 
    1765       !         note: p_frld cannot be = 0 since we limit the ice concentration to amax 
     1765      !         note: ziceld cannot be = 0 since we limit the ice concentration to amax 
    17661766      zqns_oce = 0._wp 
    1767       WHERE( p_frld /= 0._wp )  zqns_oce(:,:) = ( zqns_tot(:,:) - SUM( a_i * zqns_ice, dim=3 ) ) / p_frld(:,:) 
     1767      WHERE( ziceld /= 0._wp )  zqns_oce(:,:) = ( zqns_tot(:,:) - SUM( a_i * zqns_ice, dim=3 ) ) / ziceld(:,:) 
    17681768 
    17691769      ! Heat content per unit mass of snow (J/kg) 
     
    17721772      ENDWHERE 
    17731773      ! Heat content per unit mass of rain (J/kg) 
    1774       zcptrain(:,:) = rcp * ( SUM( (tn_ice(:,:,:) - rt0) * a_i(:,:,:), dim=3 ) + sst_m(:,:) * p_frld(:,:) )  
     1774      zcptrain(:,:) = rcp * ( SUM( (tn_ice(:,:,:) - rt0) * a_i(:,:,:), dim=3 ) + sst_m(:,:) * ziceld(:,:) )  
    17751775 
    17761776      ! --- enthalpy of snow precip over ice in J/m3 (to be used in 1D-thermo) --- ! 
     
    17871787         &             +   zsprecip(:,:)                   * ( 1._wp - zsnw ) * ( zcptsnw (:,:) - lfus )   ! solid precip over ocean + snow melting 
    17881788      zqemp_ice(:,:) =     zsprecip(:,:)                   * zsnw             * ( zcptsnw (:,:) - lfus )   ! solid precip over ice (qevap_ice=0 since atm. does not take it into account) 
    1789 !!    zqemp_ice(:,:) = -   frcv(jpr_ievp)%z3(:,:,1)        * zicefr(:,:)      *   zcptsnw (:,:)   &        ! ice evap 
     1789!!    zqemp_ice(:,:) = -   frcv(jpr_ievp)%z3(:,:,1)        * picefr(:,:)      *   zcptsnw (:,:)   &        ! ice evap 
    17901790!!       &             +   zsprecip(:,:)                   * zsnw             * zqprec_ice(:,:) * r1_rhosn ! solid precip over ice 
    17911791       
     
    18201820      ! clem: this formulation is certainly wrong... but better than it was... 
    18211821      zqns_tot(:,:) = zqns_tot(:,:)                            &          ! zqns_tot update over free ocean with: 
    1822          &          - (  p_frld(:,:) * zsprecip(:,:) * lfus )  &          ! remove the latent heat flux of solid precip. melting 
     1822         &          - (  ziceld(:,:) * zsprecip(:,:) * lfus )  &          ! remove the latent heat flux of solid precip. melting 
    18231823         &          - (  zemp_tot(:,:)                         &          ! remove the heat content of mass flux (assumed to be at SST) 
    18241824         &             - zemp_ice(:,:) ) * zcptn(:,:)  
    18251825 
    18261826     IF( ln_mixcpl ) THEN 
    1827          qns_tot(:,:) = qns(:,:) * p_frld(:,:) + SUM( qns_ice(:,:,:) * a_i(:,:,:), dim=3 )   ! total flux from blk 
     1827         qns_tot(:,:) = qns(:,:) * ziceld(:,:) + SUM( qns_ice(:,:,:) * a_i(:,:,:), dim=3 )   ! total flux from blk 
    18281828         qns_tot(:,:) = qns_tot(:,:) * xcplmask(:,:,0) +  zqns_tot(:,:)* zmsk(:,:) 
    18291829         DO jl=1,jpl 
     
    18411841      IF( iom_use('hflx_snow_cea') ) CALL iom_put('hflx_snow_cea',  sprecip(:,:) * ( zcptsnw(:,:) - Lfus )                           ) ! heat flux from snow (cell average) 
    18421842      IF( iom_use('hflx_rain_cea') ) CALL iom_put('hflx_rain_cea',( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:)                    ) ! heat flux from rain (cell average) 
    1843       IF( iom_use('hflx_evap_cea') ) CALL iom_put('hflx_evap_cea',(frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) & ! heat flux from from evap (cell average) 
     1843      IF( iom_use('hflx_evap_cea') ) CALL iom_put('hflx_evap_cea',(frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) & ! heat flux from from evap (cell average) 
    18441844         &                                                        ) * zcptn(:,:) * tmask(:,:,1) ) 
    18451845      IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea',sprecip(:,:) * (zcptsnw(:,:) - Lfus) * (1._wp - zsnw(:,:))   ) ! heat flux from snow (over ocean) 
     
    18651865         zqsr_ice(:,:,1) = frcv(jpr_qsrice)%z3(:,:,1) 
    18661866      CASE( 'oce and ice' ) 
    1867          zqsr_tot(:,:  ) =  p_frld(:,:) * frcv(jpr_qsroce)%z3(:,:,1) 
     1867         zqsr_tot(:,:  ) =  ziceld(:,:) * frcv(jpr_qsroce)%z3(:,:,1) 
    18681868         IF ( TRIM(sn_rcv_qsr%clcat) == 'yes' ) THEN 
    18691869            DO jl=1,jpl 
     
    18721872            ENDDO 
    18731873         ELSE 
    1874             qsr_tot(:,:   ) = qsr_tot(:,:) + zicefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
     1874            qsr_tot(:,:   ) = qsr_tot(:,:) + picefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
    18751875            DO jl=1,jpl 
    1876                zqsr_tot(:,:   ) = zqsr_tot(:,:) + zicefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
     1876               zqsr_tot(:,:   ) = zqsr_tot(:,:) + picefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
    18771877               zqsr_ice(:,:,jl) = frcv(jpr_qsrice)%z3(:,:,1) 
    18781878            ENDDO 
     
    18841884!       ( see OASIS3 user guide, 5th edition, p39 ) 
    18851885         zqsr_ice(:,:,1) = frcv(jpr_qsrmix)%z3(:,:,1) * ( 1.- palbi(:,:,1) )   & 
    1886             &            / (  1.- ( albedo_oce_mix(:,:  ) * p_frld(:,:)       & 
    1887             &                     + palbi         (:,:,1) * zicefr(:,:) ) ) 
     1886            &            / (  1.- ( albedo_oce_mix(:,:  ) * ziceld(:,:)       & 
     1887            &                     + palbi         (:,:,1) * picefr(:,:) ) ) 
    18881888      END SELECT 
    18891889      IF( ln_dm2dc .AND. ln_cpl ) THEN   ! modify qsr to include the diurnal cycle 
     
    18961896#if defined key_lim3 
    18971897      ! --- solar flux over ocean --- ! 
    1898       !         note: p_frld cannot be = 0 since we limit the ice concentration to amax 
     1898      !         note: ziceld cannot be = 0 since we limit the ice concentration to amax 
    18991899      zqsr_oce = 0._wp 
    1900       WHERE( p_frld /= 0._wp )  zqsr_oce(:,:) = ( zqsr_tot(:,:) - SUM( a_i * zqsr_ice, dim=3 ) ) / p_frld(:,:) 
     1900      WHERE( ziceld /= 0._wp )  zqsr_oce(:,:) = ( zqsr_tot(:,:) - SUM( a_i * zqsr_ice, dim=3 ) ) / ziceld(:,:) 
    19011901 
    19021902      IF( ln_mixcpl ) THEN   ;   qsr_oce(:,:) = qsr_oce(:,:) * xcplmask(:,:,0) +  zqsr_oce(:,:)* zmsk(:,:) 
     
    19051905 
    19061906      IF( ln_mixcpl ) THEN 
    1907          qsr_tot(:,:) = qsr(:,:) * p_frld(:,:) + SUM( qsr_ice(:,:,:) * a_i(:,:,:), dim=3 )   ! total flux from blk 
     1907         qsr_tot(:,:) = qsr(:,:) * ziceld(:,:) + SUM( qsr_ice(:,:,:) * a_i(:,:,:), dim=3 )   ! total flux from blk 
    19081908         qsr_tot(:,:) = qsr_tot(:,:) * xcplmask(:,:,0) +  zqsr_tot(:,:)* zmsk(:,:) 
    19091909         DO jl=1,jpl 
     
    19521952      fr2_i0(:,:) = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) 
    19531953 
    1954       CALL wrk_dealloc( jpi,jpj,     zcptn, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
     1954      CALL wrk_dealloc( jpi,jpj,     zcptn, zcptrain, zcptsnw, ziceld, zmsk, zsnw ) 
    19551955      CALL wrk_dealloc( jpi,jpj,     zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice ) 
    19561956      CALL wrk_dealloc( jpi,jpj,     zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r8313 r8316  
    137137            CALL cice_sbc_force(kt) 
    138138         ELSE IF ( ksbc == jp_purecpl ) THEN 
    139             CALL sbc_cpl_ice_flx( 1.0-fr_i ) 
     139            CALL sbc_cpl_ice_flx( fr_i ) 
    140140         ENDIF 
    141141 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r8313 r8316  
    218218               alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    219219                                      CALL blk_ice_flx( t_su, alb_ice ) 
    220                IF( ln_mixcpl      )   CALL sbc_cpl_ice_flx( p_frld=(1.-at_i_b), palbi=alb_ice, psst=sst_m, pist=t_su ) 
     220               IF( ln_mixcpl      )   CALL sbc_cpl_ice_flx( picefr=at_i_b, palbi=alb_ice, psst=sst_m, pist=t_su ) 
    221221               IF( nn_limflx /= 2 )   CALL ice_lim_flx( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_limflx ) 
    222222            CASE ( jp_purecpl ) 
    223223               ! albedo depends on cloud fraction because of non-linear spectral effects 
    224224               alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    225                                       CALL sbc_cpl_ice_flx( p_frld=(1.-at_i_b), palbi=alb_ice, psst=sst_m, pist=t_su ) 
     225                                      CALL sbc_cpl_ice_flx( picefr=at_i_b, palbi=alb_ice, psst=sst_m, pist=t_su ) 
    226226               IF( nn_limflx == 2 )   CALL ice_lim_flx( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_limflx ) 
    227227         END SELECT 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r8313 r8316  
    116116#if defined key_agrif 
    117117      IF( Agrif_Root() ) THEN                ! AGRIF zoom (cf r1242: possibility to run without ice in fine grid) 
    118          IF( lk_lim3 )   nn_ice      = 3 
    119          IF( lk_cice )   nn_ice      = 4 
     118         IF( lk_lim3 )   nn_ice      = 2 
     119         IF( lk_cice )   nn_ice      = 3 
    120120      ENDIF 
    121121#else 
    122       IF( lk_lim3 )   nn_ice      = 3 
    123       IF( lk_cice )   nn_ice      = 4 
     122      IF( lk_lim3 )   nn_ice      = 2 
     123      IF( lk_cice )   nn_ice      = 3 
    124124#endif 
    125125      ! 
     
    139139         WRITE(numout,*) '         Multicategory heat flux formulation (LIM3) nn_limflx     = ', nn_limflx 
    140140         WRITE(numout,*) '      Sea-ice : ' 
    141          WRITE(numout,*) '         ice management in the sbc (=0/1/3/4)       nn_ice        = ', nn_ice 
     141         WRITE(numout,*) '         ice management in the sbc (=0/1/2/3)       nn_ice        = ', nn_ice 
    142142         WRITE(numout,*) '         ice embedded into ocean                    ln_ice_embd   = ', ln_ice_embd 
    143143         WRITE(numout,*) '      Misc. options of sbc : ' 
     
    198198      CASE( 0 )                        !- no ice in the domain 
    199199      CASE( 1 )                        !- Ice-cover climatology ("Ice-if" model)   
    200       CASE( 3 )                        !- LIM3 ice model 
    201       CASE( 4 )                        !- CICE ice model 
     200      CASE( 2 )                        !- LIM3 ice model 
     201      CASE( 3 )                        !- CICE ice model 
    202202         IF( .NOT.( ln_blk .OR. ln_cpl ) )   CALL ctl_stop( 'sbc_init : CICE sea-ice model requires ln_blk or ln_cpl = T' ) 
    203203         IF( lk_agrif                    )   CALL ctl_stop( 'sbc_init : CICE sea-ice model not currently available with AGRIF' )  
     
    205205      END SELECT 
    206206      ! 
    207       IF( nn_ice == 3 ) THEN           !- LIM3 case: multi-category flux option 
     207      IF( nn_ice == 2 ) THEN           !- LIM3 case: multi-category flux option 
    208208         IF(lwp) WRITE(numout,*) 
    209209         SELECT CASE( nn_limflx )         ! LIM3 Multi-category heat flux formulation 
     
    327327      IF    ( lk_agrif .AND. nn_ice == 0 ) THEN 
    328328                         IF( sbc_ice_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_ice_alloc : unable to allocate arrays' )  ! clem2017: allocate ice arrays in case agrif + lim + no-ice in child grid               
    329       ELSEIF(                nn_ice == 3 ) THEN   ;   CALL sbc_lim_init            ! LIM3 initialization 
    330       ELSEIF(                nn_ice == 4 ) THEN   ;   CALL cice_sbc_init( nsbc )   ! CICE initialization 
     329      ELSEIF(                nn_ice == 2 ) THEN   ;   CALL sbc_lim_init            ! LIM3 initialization 
     330      ELSEIF(                nn_ice == 3 ) THEN   ;   CALL cice_sbc_init( nsbc )   ! CICE initialization 
    331331      ENDIF 
    332332      ! 
     
    421421      SELECT CASE( nn_ice )                                       ! Update heat and freshwater fluxes over sea-ice areas 
    422422      CASE(  1 )   ;         CALL sbc_ice_if   ( kt )                ! Ice-cover climatology ("Ice-if" model) 
    423       CASE(  3 )   ;         CALL sbc_ice_lim  ( kt, nsbc )          ! LIM-3 ice model 
    424       CASE(  4 )   ;         CALL sbc_ice_cice ( kt, nsbc )          ! CICE ice model 
     423      CASE(  2 )   ;         CALL sbc_ice_lim  ( kt, nsbc )          ! LIM-3 ice model 
     424      CASE(  3 )   ;         CALL sbc_ice_cice ( kt, nsbc )          ! CICE ice model 
    425425      END SELECT 
    426426 
     
    530530      !!--------------------------------------------------------------------- 
    531531      ! 
    532       IF( nn_ice == 4 )   CALL cice_sbc_final 
     532      IF( nn_ice == 3 )   CALL cice_sbc_final 
    533533      ! 
    534534   END SUBROUTINE sbc_final 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r8313 r8316  
    4848   LOGICAL , PUBLIC ::   ln_qsr_2bd   !: 2 band         light absorption flag 
    4949   LOGICAL , PUBLIC ::   ln_qsr_bio   !: bio-model      light absorption flag 
    50    LOGICAL , PUBLIC ::   ln_qsr_ice   !: light penetration for ice-model 
    5150   INTEGER , PUBLIC ::   nn_chldta    !: use Chlorophyll data (=1) or not (=0) 
    5251   REAL(wp), PUBLIC ::   rn_abs       !: fraction absorbed in the very near surface (RGB & 2 bands) 
     
    269268      END DO 
    270269      ! 
    271       IF( ln_qsr_ice ) THEN      ! sea-ice: store the 1st ocean level attenuation coefficient 
    272          DO jj = 2, jpjm1  
    273             DO ji = fs_2, fs_jpim1   ! vector opt. 
    274                IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) 
    275                ELSE                             ;   fraqsr_1lev(ji,jj) = 1._wp 
    276                ENDIF 
    277             END DO 
    278          END DO 
    279          ! Update haloes since lim_thd needs fraqsr_1lev to be defined everywhere 
    280          CALL lbc_lnk( fraqsr_1lev(:,:), 'T', 1._wp ) 
    281       ENDIF 
     270      ! sea-ice: store the 1st ocean level attenuation coefficient 
     271      DO jj = 2, jpjm1  
     272         DO ji = fs_2, fs_jpim1   ! vector opt. 
     273            IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) 
     274            ELSE                             ;   fraqsr_1lev(ji,jj) = 1._wp 
     275            ENDIF 
     276         END DO 
     277      END DO 
     278      CALL lbc_lnk( fraqsr_1lev(:,:), 'T', 1._wp ) 
    282279      ! 
    283280      IF( iom_use('qsr3d') ) THEN      ! output the shortwave Radiation distribution 
     
    336333      TYPE(FLD_N)        ::   sn_chl   ! informations about the chlorofyl field to be read 
    337334      !! 
    338       NAMELIST/namtra_qsr/  sn_chl, cn_dir, ln_qsr_rgb, ln_qsr_2bd, ln_qsr_bio, ln_qsr_ice, & 
     335      NAMELIST/namtra_qsr/  sn_chl, cn_dir, ln_qsr_rgb, ln_qsr_2bd, ln_qsr_bio, & 
    339336         &                  nn_chldta, rn_abs, rn_si0, rn_si1 
    340337      !!---------------------------------------------------------------------- 
     
    359356         WRITE(numout,*) '      2 band               light penetration       ln_qsr_2bd = ', ln_qsr_2bd 
    360357         WRITE(numout,*) '      bio-model            light penetration       ln_qsr_bio = ', ln_qsr_bio 
    361          WRITE(numout,*) '      light penetration for ice-model (LIM3)       ln_qsr_ice = ', ln_qsr_ice 
    362358         WRITE(numout,*) '      RGB : Chl data (=1) or cst value (=0)        nn_chldta  = ', nn_chldta 
    363359         WRITE(numout,*) '      RGB & 2 bands: fraction of light (rn_si1)    rn_abs     = ', rn_abs 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/SAS_SRC/diawri.F90

    r8306 r8316  
    396396 
    397397#if defined key_lim3 
    398       IF( nn_ice == 3 ) THEN   ! clem2017: condition in case agrif + lim but no-ice in child grid 
     398      IF( nn_ice == 2 ) THEN   ! clem2017: condition in case agrif + lim but no-ice in child grid 
    399399         CALL lim_wri_state( kt, id_i, nh_i ) 
    400400      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.