- Timestamp:
- 2018-04-23T10:44:07+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r9168 r9490 53 53 PUBLIC dyn_hpg_init ! routine called by opa module 54 54 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) 64 73 65 74 !! * Substitutions … … 95 104 ! 96 105 SELECT CASE ( nhpg ) ! Hydrostatic pressure gradient computation 97 CASE ( 0) ; CALL hpg_zco ( kt ) ! z-coordinate98 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 shelf106 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 103 112 END SELECT 104 113 ! … … 179 188 ENDIF 180 189 ! 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 190 192 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 ! 197 200 IF( ioptio /= 1 ) CALL ctl_stop( 'NO or several hydrostatic pressure gradient options used' ) 198 201 ! 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 199 214 ! 200 215 IF ( .NOT. ln_isfcav ) THEN !--- no ice shelf load
Note: See TracChangeset
for help on using the changeset viewer.