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

Changeset 9076


Ignore:
Timestamp:
2017-12-15T14:59:08+01:00 (6 years ago)
Author:
vancop
Message:

monocat to virtual_itd

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r9019 r9076  
    157157   INTEGER           , PUBLIC ::   nlay_i           !: number of ice  layers  
    158158   INTEGER           , PUBLIC ::   nlay_s           !: number of snow layers  
    159    INTEGER           , PUBLIC ::   nn_monocat       !: virtual ITD mono-category parameterizations (1-4) or not (0) 
     159   INTEGER           , PUBLIC ::   nn_virtual_itd   !: virtual ITD mono-category parameterizations (1-3) or not (0) 
    160160   LOGICAL           , PUBLIC ::   ln_icedyn        !: flag for ice dynamics (T) or not (F) 
    161161   LOGICAL           , PUBLIC ::   ln_icethd        !: flag for ice thermo   (T) or not (F) 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icedyn.F90

    r9019 r9076  
    3838   !                                        ! associated indices: 
    3939   INTEGER, PARAMETER ::   np_dynFULL    = 1   ! full ice dynamics               (rheology + advection + ridging/rafting + correction) 
    40    INTEGER, PARAMETER ::   np_dynRHGADV1 = 2   ! no ridging/rafting              (rheology + advection                   + correction) 
    41    INTEGER, PARAMETER ::   np_dynRHGADV2 = 3   ! pure dynamics                   (rheology + advection)  
    42    INTEGER, PARAMETER ::   np_dynADV     = 4   ! only advection w prescribed vel.(rn_uvice + advection) 
     40   INTEGER, PARAMETER ::   np_dynRHGADV  = 2   ! pure dynamics                   (rheology + advection)  
     41   INTEGER, PARAMETER ::   np_dynADV     = 3   ! only advection w prescribed vel.(rn_uvice + advection) 
    4342   ! 
    4443   ! ** namelist (namdyn) ** 
     
    110109         CALL ice_cor       ( kt , 1 )                        ! -- Corrections 
    111110 
    112       CASE ( np_dynRHGADV1 )       !==  no ridge/raft ==!   (mono cat. case 2) 
    113          CALL ice_dyn_rhg   ( kt )                            ! -- rheology   
    114          CALL ice_dyn_adv   ( kt )                            ! -- advection of ice 
    115          CALL Hpiling                                         ! -- simple pile-up (replaces ridging/rafting) 
    116          CALL ice_cor       ( kt , 1 )                        ! -- Corrections 
    117  
    118       CASE ( np_dynRHGADV2 )       !==  no ridge/raft & no corrections ==! 
     111      CASE ( np_dynRHGADV  )       !==  no ridge/raft & no corrections ==! 
    119112         CALL ice_dyn_rhg   ( kt )                            ! -- rheology   
    120113         CALL ice_dyn_adv   ( kt )                            ! -- advection of ice 
     
    250243      ioptio = 0  
    251244      !      !--- full dynamics                               (rheology + advection + ridging/rafting + correction) 
    252       IF( ln_dynFULL .AND. nn_monocat /= 2 ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynFULL      ;   ENDIF 
    253       !      !--- dynamics without ridging/rafting            (rheology + advection                   + correction) 
    254       IF( ln_dynFULL .AND. nn_monocat == 2 ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynRHGADV1   ;   ENDIF 
     245      IF( ln_dynFULL   ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynFULL      ;   ENDIF 
    255246      !      !--- dynamics without ridging/rafting and corr   (rheology + advection) 
    256       IF( ln_dynRHGADV                     ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynRHGADV2   ;   ENDIF 
     247      IF( ln_dynRHGADV ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynRHGADV    ;   ENDIF 
    257248      !      !--- advection only with prescribed ice velocities (from namelist) 
    258       IF( ln_dynADV                        ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynADV       ;   ENDIF 
     249      IF( ln_dynADV    ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynADV       ;   ENDIF 
    259250      ! 
    260251      IF( ioptio /= 1 )    CALL ctl_stop( 'ice_dyn_init: one and only one ice dynamics option has to be defined ' ) 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/iceforcing.F90

    r9019 r9076  
    146146         SELECT CASE( nice_jules ) 
    147147         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 ) 
     148                                  CALL blk_ice_qcn    ( nn_virtual_itd, t_su, t_bo, h_s, h_i ) 
    149149         END SELECT 
    150150      CASE ( jp_purecpl )         !--- coupled formulation 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90

    r9019 r9076  
    285285      !!------------------------------------------------------------------- 
    286286      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    287       NAMELIST/nampar/ jpl, nlay_i, nlay_s, nn_monocat, ln_icedyn, ln_icethd, rn_amax_n, rn_amax_s,  & 
     287      NAMELIST/nampar/ jpl, nlay_i, nlay_s, nn_virtual_itd, ln_icedyn, ln_icethd, rn_amax_n, rn_amax_s,  & 
    288288         &             cn_icerst_in, cn_icerst_indir, cn_icerst_out, cn_icerst_outdir 
    289289      !!------------------------------------------------------------------- 
     
    306306         WRITE(numout,*) '      number of ice  layers                                  nlay_i = ', nlay_i 
    307307         WRITE(numout,*) '      number of snow layers                                  nlay_s = ', nlay_s 
    308          WRITE(numout,*) '      virtual ITD mono-category param (1-4) or not (0)   nn_monocat = ', nn_monocat 
     308         WRITE(numout,*) '      virtual ITD param for jpl=1 (1-3) or not (0)   nn_virtual_itd = ', nn_virtual_itd 
    309309         WRITE(numout,*) '      Ice dynamics       (T) or not (F)                   ln_icedyn = ', ln_icedyn 
    310310         WRITE(numout,*) '      Ice thermodynamics (T) or not (F)                   ln_icethd = ', ln_icethd 
     
    314314      ! 
    315315      !                                        !--- check consistency 
    316       IF ( jpl > 1 .AND. nn_monocat == 1 ) THEN 
    317          nn_monocat = 0 
     316      IF ( jpl > 1 .AND. nn_virtual_itd == 1 ) THEN 
     317         nn_virtual_itd = 0 
    318318         IF(lwp) WRITE(numout,*) 
    319          IF(lwp) WRITE(numout,*) '   nn_monocat forced to 0 as jpl>1, i.e. multi-category case is chosen' 
     319         IF(lwp) WRITE(numout,*) '   nn_virtual_itd forced to 0 as jpl>1, no need with multiple categories to emulate them' 
    320320      ENDIF 
    321321      ! 
     
    323323        CALL ctl_stop( 'STOP', 'par_init: in coupled mode, nn_cats_cpl should be either 1 or jpl' ) 
    324324     ENDIF 
    325 !     IF ( jpl == 1 .AND. nn_monocat == 0 ) THEN 
    326 !        CALL ctl_stop( 'STOP', 'par_init : if jpl=1 then nn_monocat should be between 1 and 4' ) 
    327 !     ENDIF 
    328325      ! 
    329326      IF( ln_bdy .AND. ln_icediachk )   CALL ctl_warn('par_init: online conservation check does not work with BDY') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icethd.F90

    r9019 r9076  
    8282      !!             - call ice_thd_sal  for ice desalination 
    8383      !!             - call ice_thd_temp to  retrieve temperature from ice enthalpy 
    84       !!             - call ice_thd_lam  for extra lateral ice melt if monocat 
     84      !!             - call ice_thd_lam  for extra lateral ice melt if active virtual thickness distribution 
    8585      !!             - call ice_thd_da   for lateral ice melt 
    8686      !!             - back to the geographic grid 
     
    245245            ! 
    246246!!gm please create a new logical (l_thd_lam or a better explicit name) set one for all in icestp.F90 module 
    247 !!gm        l_thd_lam = ln_icedH .AND. ( ( nn_monocat == 1 .OR. nn_monocat == 4 ) .AND. jpl == 1 ) 
    248 !!gm        by the way, the different options associated with nn_monocat =1 to 4  are quite impossible to identify 
     247!!gm        l_thd_lam = ln_icedH .AND. ( ( nn_virtual_itd == 1 .OR. nn_virtual_itd == 4 ) .AND. jpl == 1 ) 
     248!!gm        by the way, the different options associated with nn_virtual_itd =1 to 4  are quite impossible to identify 
    249249!!gm        more comment to add when ready the namelist, with an explicit print in the ocean.output 
    250250            IF( ln_icedH ) THEN 
    251                IF ( ( nn_monocat == 1 .OR. nn_monocat == 4 ) .AND. jpl == 1 ) THEN 
    252                               CALL ice_thd_lam                      ! --- extra lateral melting if monocat --- ! 
     251               IF ( ( nn_virtual_itd == 1 .OR. nn_virtual_itd == 3 ) .AND. jpl == 1 ) THEN 
     252                              CALL ice_thd_lam                      ! --- extra lateral melting if virtual_itd --- ! 
    253253               END IF 
    254254            END IF 
     
    316316      !!                   ***  ROUTINE ice_thd_lam ***  
    317317      !!                  
    318       !! ** Purpose :   Lateral melting in case monocategory 
     318      !! ** Purpose :   Lateral melting in case virtual_itd 
    319319      !!                          ( dA = A/2h dh ) 
    320320      !!----------------------------------------------------------------------- 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icethd_zdf_bl99.F90

    r9068 r9076  
    252252         zghe(1:npti) = 1._wp 
    253253         ! 
    254          SELECT CASE ( nn_monocat ) 
    255          ! 
    256          CASE ( 1 , 3 ) 
     254         SELECT CASE ( nn_virtual_itd ) 
     255         ! 
     256         CASE ( 1 , 2 ) 
    257257            ! 
    258258            zepsilon = 0.1_wp 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90

    r9033 r9076  
    975975    
    976976 
    977    SUBROUTINE blk_ice_qcn( k_monocat, ptsu, ptb, phs, phi ) 
     977   SUBROUTINE blk_ice_qcn( k_virtual_itd, ptsu, ptb, phs, phi ) 
    978978      !!--------------------------------------------------------------------- 
    979979      !!                     ***  ROUTINE blk_ice_qcn  *** 
     
    990990      !! 
    991991      !!--------------------------------------------------------------------- 
    992       INTEGER                   , INTENT(in   ) ::   k_monocat   ! single-category option 
    993       REAL(wp), DIMENSION(:,:,:), INTENT(inout) ::   ptsu        ! sea ice / snow surface temperature 
    994       REAL(wp), DIMENSION(:,:)  , INTENT(in   ) ::   ptb         ! sea ice base temperature 
    995       REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   phs         ! snow thickness 
    996       REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   phi         ! sea ice thickness 
     992      INTEGER                   , INTENT(in   ) ::   k_virtual_itd   ! single-category option 
     993      REAL(wp), DIMENSION(:,:,:), INTENT(inout) ::   ptsu            ! sea ice / snow surface temperature 
     994      REAL(wp), DIMENSION(:,:)  , INTENT(in   ) ::   ptb             ! sea ice base temperature 
     995      REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   phs             ! snow thickness 
     996      REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   phi             ! sea ice thickness 
    997997      ! 
    998998      INTEGER , PARAMETER ::   nit = 10                  ! number of iterations 
     
    10131013      !      I   Enhanced conduction factor  ! 
    10141014      ! -------------------------------------! 
    1015       ! Emulates the enhancement of conduction by unresolved thin ice (k_monocat = 1/3) 
     1015      ! Emulates the enhancement of conduction by unresolved thin ice (k_virtual_itd = 1/2) 
    10161016      ! Fichefet and Morales Maqueda, JGR 1997 
    10171017      ! 
    10181018      zgfac(:,:,:) = 1._wp 
    10191019       
    1020       SELECT CASE ( k_monocat )  
    1021       ! 
    1022       CASE ( 1 , 3 ) 
     1020      SELECT CASE ( k_virtual_itd ) 
     1021      ! 
     1022      CASE ( 1 , 2 ) 
    10231023         ! 
    10241024         zfac  = 1._wp /  ( rn_cnd_s + rcdic ) 
Note: See TracChangeset for help on using the changeset viewer.