Changeset 1601 for trunk/NEMO/OPA_SRC/DYN/dynhpg.F90
- Timestamp:
- 2009-08-11T12:09:19+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynhpg.F90
r1152 r1601 41 41 PUBLIC dyn_hpg ! routine called by step module 42 42 43 !!* Namelist nam_dynhpg : Choice of horizontal pressure gradient computation 44 LOGICAL :: ln_hpg_zco = .TRUE. ! z-coordinate - full steps 45 LOGICAL :: ln_hpg_zps = .FALSE. ! z-coordinate - partial steps (interpolation) 46 LOGICAL :: ln_hpg_sco = .FALSE. ! s-coordinate (standard jacobian formulation) 47 LOGICAL :: ln_hpg_hel = .FALSE. ! s-coordinate (helsinki modification) 48 LOGICAL :: ln_hpg_wdj = .FALSE. ! s-coordinate (weighted density jacobian) 49 LOGICAL :: ln_hpg_djc = .FALSE. ! s-coordinate (Density Jacobian with Cubic polynomial) 50 LOGICAL :: ln_hpg_rot = .FALSE. ! s-coordinate (ROTated axes scheme) 51 REAL(wp) :: gamm = 0.e0 ! weighting coefficient 52 53 INTEGER :: nhpg = 0 ! = 0 to 6, type of pressure gradient scheme used 54 ! ! (deduced from ln_hpg_... flags) 43 ! !!* Namelist namdyn_hpg : hydrostatic pressure gradient 44 LOGICAL , PUBLIC :: ln_hpg_zco = .TRUE. !: z-coordinate - full steps 45 LOGICAL , PUBLIC :: ln_hpg_zps = .FALSE. !: z-coordinate - partial steps (interpolation) 46 LOGICAL , PUBLIC :: ln_hpg_sco = .FALSE. !: s-coordinate (standard jacobian formulation) 47 LOGICAL , PUBLIC :: ln_hpg_hel = .FALSE. !: s-coordinate (helsinki modification) 48 LOGICAL , PUBLIC :: ln_hpg_wdj = .FALSE. !: s-coordinate (weighted density jacobian) 49 LOGICAL , PUBLIC :: ln_hpg_djc = .FALSE. !: s-coordinate (Density Jacobian with Cubic polynomial) 50 LOGICAL , PUBLIC :: ln_hpg_rot = .FALSE. !: s-coordinate (ROTated axes scheme) 51 REAL(wp), PUBLIC :: rn_gamma = 0.e0 !: weighting coefficient 52 LOGICAL , PUBLIC :: ln_dynhpg_imp = .FALSE. !: semi-implicite hpg flag 53 INTEGER , PUBLIC :: nn_dynhpg_rst = 0 !: add dynhpg implicit variables in restart ot not 54 55 INTEGER :: nhpg = 0 ! = 0 to 6, type of pressure gradient scheme used ! (deduced from ln_hpg_... flags) 55 56 56 57 !! * Substitutions … … 116 117 !! computation and consistency control 117 118 !! 118 !! ** Action : Read the namelist namdyn hpg and check the consistency119 !! ** Action : Read the namelist namdyn_hpg and check the consistency 119 120 !! with the type of vertical coordinate used (zco, zps, sco) 120 121 !!---------------------------------------------------------------------- 121 122 INTEGER :: ioptio = 0 ! temporary integer 122 123 NAMELIST/nam_dynhpg/ ln_hpg_zco, ln_hpg_zps, ln_hpg_sco, ln_hpg_hel, & 124 & ln_hpg_wdj, ln_hpg_djc, ln_hpg_rot, gamm 125 !!---------------------------------------------------------------------- 126 127 REWIND ( numnam ) ! Read Namelist nam_dynhpg : pressure gradient calculation options 128 READ ( numnam, nam_dynhpg ) 123 !! 124 ! NAMELIST/namdyn_hpg/ ln_hpg_zco , ln_hpg_zps , ln_hpg_sco, ln_hpg_hel, & 125 ! & ln_hpg_wdj , ln_hpg_djc , ln_hpg_rot, rn_gamma , & 126 ! & ln_dynhpg_imp, nn_dynhpg_rst 127 !!---------------------------------------------------------------------- 128 129 ! REWIND ( numnam ) ! Namelist namdyn_hpg : already read in opa.F90 module 130 ! READ ( numnam, namdyn_hpg ) 129 131 130 132 IF(lwp) THEN ! Control print 131 133 WRITE(numout,*) 132 WRITE(numout,*) 'dyn:hpg_ctl : hydrostatic pressure gradient control' 133 WRITE(numout,*) '~~~~~~~~~~~' 134 WRITE(numout,*) ' Namelist nam_dynhpg : choice of hpg scheme' 135 WRITE(numout,*) ' z-coord. - full steps ln_hpg_zco = ', ln_hpg_zco 136 WRITE(numout,*) ' z-coord. - partial steps (interpolation) ln_hpg_zps = ', ln_hpg_zps 137 WRITE(numout,*) ' s-coord. (standard jacobian formulation) ln_hpg_sco = ', ln_hpg_sco 138 WRITE(numout,*) ' s-coord. (helsinki modification) ln_hpg_hel = ', ln_hpg_hel 139 WRITE(numout,*) ' s-coord. (weighted density jacobian) ln_hpg_wdj = ', ln_hpg_wdj 140 WRITE(numout,*) ' s-coord. (Density Jacobian: Cubic polynomial) ln_hpg_djc = ', ln_hpg_djc 141 WRITE(numout,*) ' s-coord. (ROTated axes scheme) ln_hpg_rot = ', ln_hpg_rot 142 WRITE(numout,*) ' weighting coeff. (wdj scheme) gamm = ', gamm 134 WRITE(numout,*) 'dyn_hpg : hydrostatic pressure gradient' 135 WRITE(numout,*) '~~~~~~~' 136 WRITE(numout,*) ' Namelist namdyn_hpg : choice of hpg scheme' 137 WRITE(numout,*) ' z-coord. - full steps ln_hpg_zco = ', ln_hpg_zco 138 WRITE(numout,*) ' z-coord. - partial steps (interpolation) ln_hpg_zps = ', ln_hpg_zps 139 WRITE(numout,*) ' s-coord. (standard jacobian formulation) ln_hpg_sco = ', ln_hpg_sco 140 WRITE(numout,*) ' s-coord. (helsinki modification) ln_hpg_hel = ', ln_hpg_hel 141 WRITE(numout,*) ' s-coord. (weighted density jacobian) ln_hpg_wdj = ', ln_hpg_wdj 142 WRITE(numout,*) ' s-coord. (Density Jacobian: Cubic polynomial) ln_hpg_djc = ', ln_hpg_djc 143 WRITE(numout,*) ' s-coord. (ROTated axes scheme) ln_hpg_rot = ', ln_hpg_rot 144 WRITE(numout,*) ' weighting coeff. (wdj scheme) rn_gamma = ', rn_gamma 145 WRITE(numout,*) ' time stepping: centered (F) or semi-implicit (T) ln_dynhpg_imp = ', ln_dynhpg_imp 146 WRITE(numout,*) ' add in restart dynhpg semi-implicit variable nn_dynhpg_rst = ', nn_dynhpg_rst 143 147 ENDIF 148 149 IF( .NOT. ln_dynhpg_imp ) nn_dynhpg_rst = 0 ! force no adding dynhpg implicit variables in restart 144 150 145 151 IF( lk_vvl .AND. .NOT. ln_hpg_sco ) THEN … … 517 523 !! 518 524 !! ** Method : Weighted Density Jacobian (wdj) scheme (song 1998) 519 !! The weighting coefficients from the namelist parameter gamm520 !! (alpha=0.5- gamm ; beta=1-alpha=0.5+gamm)525 !! The weighting coefficients from the namelist parameter rn_gamma 526 !! (alpha=0.5-rn_gamma ; beta=1-alpha=0.5+rn_gamma 521 527 !! 522 528 !! Reference : Song, Mon. Wea. Rev., 126, 3213-3230, 1998. … … 540 546 ! Local constant initialization 541 547 zcoef0 = - grav * 0.5 542 zalph = 0.5 - gamm ! weighting coefficients (alpha=0.5-gamm)543 zbeta = 0.5 + gamm ! (beta =1-alpha=0.5+gamm)548 zalph = 0.5 - rn_gamma ! weighting coefficients (alpha=0.5-rn_gamma 549 zbeta = 0.5 + rn_gamma ! (beta =1-alpha=0.5+rn_gamma 544 550 545 551 ! Surface value (no ponderation)
Note: See TracChangeset
for help on using the changeset viewer.