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 9490 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90 – NEMO

Ignore:
Timestamp:
2018-04-23T10:44:07+02:00 (6 years ago)
Author:
gm
Message:

#2075 - dev_merge_2017: scale-aware setting of lateral viscous and diffusive coefficient

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r9168 r9490  
    5353   PUBLIC   dyn_hpg_init   ! routine called by opa module 
    5454 
    55    !                                 !!* Namelist namdyn_hpg : hydrostatic pressure gradient 
    56    LOGICAL , PUBLIC ::   ln_hpg_zco   !: z-coordinate - full steps 
    57    LOGICAL , PUBLIC ::   ln_hpg_zps   !: z-coordinate - partial steps (interpolation) 
    58    LOGICAL , PUBLIC ::   ln_hpg_sco   !: s-coordinate (standard jacobian formulation) 
    59    LOGICAL , PUBLIC ::   ln_hpg_djc   !: s-coordinate (Density Jacobian with Cubic polynomial) 
    60    LOGICAL , PUBLIC ::   ln_hpg_prj   !: s-coordinate (Pressure Jacobian scheme) 
    61    LOGICAL , PUBLIC ::   ln_hpg_isf   !: s-coordinate similar to sco modify for isf 
    62  
    63    INTEGER , PUBLIC ::   nhpg  =  0   ! = 0 to 7, type of pressure gradient scheme used ! (deduced from ln_hpg_... flags) (PUBLIC for TAM) 
     55   !                                !!* Namelist namdyn_hpg : hydrostatic pressure gradient 
     56   LOGICAL, PUBLIC ::   ln_hpg_zco   !: z-coordinate - full steps 
     57   LOGICAL, PUBLIC ::   ln_hpg_zps   !: z-coordinate - partial steps (interpolation) 
     58   LOGICAL, PUBLIC ::   ln_hpg_sco   !: s-coordinate (standard jacobian formulation) 
     59   LOGICAL, PUBLIC ::   ln_hpg_djc   !: s-coordinate (Density Jacobian with Cubic polynomial) 
     60   LOGICAL, PUBLIC ::   ln_hpg_prj   !: s-coordinate (Pressure Jacobian scheme) 
     61   LOGICAL, PUBLIC ::   ln_hpg_isf   !: s-coordinate similar to sco modify for isf 
     62 
     63   !                                !! Flag to control the type of hydrostatic pressure gradient 
     64   INTEGER, PARAMETER ::   np_ERROR  =-10   ! error in specification of lateral diffusion 
     65   INTEGER, PARAMETER ::   np_zco    =  0   ! z-coordinate - full steps 
     66   INTEGER, PARAMETER ::   np_zps    =  1   ! z-coordinate - partial steps (interpolation) 
     67   INTEGER, PARAMETER ::   np_sco    =  2   ! s-coordinate (standard jacobian formulation) 
     68   INTEGER, PARAMETER ::   np_djc    =  3   ! s-coordinate (Density Jacobian with Cubic polynomial) 
     69   INTEGER, PARAMETER ::   np_prj    =  4   ! s-coordinate (Pressure Jacobian scheme) 
     70   INTEGER, PARAMETER ::   np_isf    =  5   ! s-coordinate similar to sco modify for isf 
     71   ! 
     72   INTEGER, PUBLIC ::   nhpg         !: type of pressure gradient scheme used ! (deduced from ln_hpg_... flags) (PUBLIC for TAM) 
    6473 
    6574   !! * Substitutions 
     
    95104      ! 
    96105      SELECT CASE ( nhpg )      ! Hydrostatic pressure gradient computation 
    97       CASE (  0 )   ;   CALL hpg_zco    ( kt )      ! z-coordinate 
    98       CASE (  1 )   ;   CALL hpg_zps    ( kt )      ! z-coordinate plus partial steps (interpolation) 
    99       CASE (  2 )   ;   CALL hpg_sco    ( kt )      ! s-coordinate (standard jacobian formulation) 
    100       CASE (  3 )   ;   CALL hpg_djc    ( kt )      ! s-coordinate (Density Jacobian with Cubic polynomial) 
    101       CASE (  4 )   ;   CALL hpg_prj    ( kt )      ! s-coordinate (Pressure Jacobian scheme) 
    102       CASE (  5 )   ;   CALL hpg_isf    ( kt )      ! s-coordinate similar to sco modify for ice shelf 
     106      CASE ( np_zco )   ;   CALL hpg_zco    ( kt )      ! z-coordinate 
     107      CASE ( np_zps )   ;   CALL hpg_zps    ( kt )      ! z-coordinate plus partial steps (interpolation) 
     108      CASE ( np_sco )   ;   CALL hpg_sco    ( kt )      ! s-coordinate (standard jacobian formulation) 
     109      CASE ( np_djc )   ;   CALL hpg_djc    ( kt )      ! s-coordinate (Density Jacobian with Cubic polynomial) 
     110      CASE ( np_prj )   ;   CALL hpg_prj    ( kt )      ! s-coordinate (Pressure Jacobian scheme) 
     111      CASE ( np_isf )   ;   CALL hpg_isf    ( kt )      ! s-coordinate similar to sco modify for ice shelf 
    103112      END SELECT 
    104113      ! 
     
    179188      ENDIF 
    180189      ! 
    181       !                               ! Set nhpg from ln_hpg_... flags 
    182       IF( ln_hpg_zco )   nhpg = 0 
    183       IF( ln_hpg_zps )   nhpg = 1 
    184       IF( ln_hpg_sco )   nhpg = 2 
    185       IF( ln_hpg_djc )   nhpg = 3 
    186       IF( ln_hpg_prj )   nhpg = 4 
    187       IF( ln_hpg_isf )   nhpg = 5 
    188       ! 
    189       !                               ! Consistency check 
     190      !                               ! Set nhpg from ln_hpg_... flags & consistency check 
     191      nhpg   = np_ERROR 
    190192      ioptio = 0 
    191       IF( ln_hpg_zco )   ioptio = ioptio + 1 
    192       IF( ln_hpg_zps )   ioptio = ioptio + 1 
    193       IF( ln_hpg_sco )   ioptio = ioptio + 1 
    194       IF( ln_hpg_djc )   ioptio = ioptio + 1 
    195       IF( ln_hpg_prj )   ioptio = ioptio + 1 
    196       IF( ln_hpg_isf )   ioptio = ioptio + 1 
     193      IF( ln_hpg_zco ) THEN   ;   nhpg = np_zco   ;   ioptio = ioptio +1   ;   ENDIF 
     194      IF( ln_hpg_zps ) THEN   ;   nhpg = np_zps   ;   ioptio = ioptio +1   ;   ENDIF 
     195      IF( ln_hpg_sco ) THEN   ;   nhpg = np_sco   ;   ioptio = ioptio +1   ;   ENDIF 
     196      IF( ln_hpg_djc ) THEN   ;   nhpg = np_djc   ;   ioptio = ioptio +1   ;   ENDIF 
     197      IF( ln_hpg_prj ) THEN   ;   nhpg = np_prj   ;   ioptio = ioptio +1   ;   ENDIF 
     198      IF( ln_hpg_isf ) THEN   ;   nhpg = np_isf   ;   ioptio = ioptio +1   ;   ENDIF 
     199      ! 
    197200      IF( ioptio /= 1 )   CALL ctl_stop( 'NO or several hydrostatic pressure gradient options used' ) 
    198201      !  
     202      IF(lwp) THEN 
     203         WRITE(numout,*) 
     204         SELECT CASE( nhpg ) 
     205         CASE( np_zco )   ;   WRITE(numout,*) '   ==>>>   z-coord. - full steps ' 
     206         CASE( np_zps )   ;   WRITE(numout,*) '   ==>>>   z-coord. - partial steps (interpolation)' 
     207         CASE( np_sco )   ;   WRITE(numout,*) '   ==>>>   s-coord. (standard jacobian formulation)' 
     208         CASE( np_djc )   ;   WRITE(numout,*) '   ==>>>   s-coord. (Density Jacobian: Cubic polynomial)' 
     209         CASE( np_prj )   ;   WRITE(numout,*) '   ==>>>   s-coord. (Pressure Jacobian: Cubic polynomial)' 
     210         CASE( np_isf )   ;   WRITE(numout,*) '   ==>>>   s-coord. (standard jacobian formulation) for isf' 
     211         END SELECT 
     212         WRITE(numout,*) 
     213      ENDIF 
    199214      !                           
    200215      IF ( .NOT. ln_isfcav ) THEN     !--- no ice shelf load 
Note: See TracChangeset for help on using the changeset viewer.