Changeset 2915 for branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM
- Timestamp:
- 2011-10-13T17:25:00+02:00 (13 years ago)
- Location:
- branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r2825 r2915 864 864 / 865 865 !----------------------------------------------------------------------- 866 &nam _dynnept ! Neptune effect (simplified: lateral and vertical diffusions removed)867 !----------------------------------------------------------------------- 868 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model869 ln_neptsimp = .false. ! yes/no use simplified neptune870 871 ln_smooth topo = .false. ! yes/no smooth tsu, tsv872 rn_tslse = 1.2e4 ! value of lengthscale L at the equator873 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole874 ! Specify whether to ramp down the Neptune velocity in shallow875 ! water, and if so the depth range controlling such ramping down876 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water877 rn_htrmin = 100.0 ! min. depth of transition range878 rn_htrmax = 200.0 ! max. depth of transition range879 / 866 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed) 867 !----------------------------------------------------------------------- 868 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model 869 ln_neptsimp = .false. ! yes/no use simplified neptune 870 871 ln_smooth_neptvel = .false. ! yes/no smooth zunep, zvnep 872 rn_tslse = 1.2e4 ! value of lengthscale L at the equator 873 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole 874 ! Specify whether to ramp down the Neptune velocity in shallow 875 ! water, and if so the depth range controlling such ramping down 876 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water 877 rn_htrmin = 100.0 ! min. depth of transition range 878 rn_htrmax = 200.0 ! max. depth of transition range 879 / -
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r2825 r2915 864 864 / 865 865 !----------------------------------------------------------------------- 866 &nam _dynnept ! Neptune effect (simplified: lateral and vertical diffusions removed)867 !----------------------------------------------------------------------- 868 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model869 ln_neptsimp = .false.! yes/no use simplified neptune870 871 ln_smooth topo = .false. ! yes/no smooth tsu, tsv872 rn_tslse = 1.2e4 ! value of lengthscale L at the equator873 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole874 ! Specify whether to ramp down the Neptune velocity in shallow875 ! water, and if so the depth range controlling such ramping down876 ln_neptramp = .false.! ramp down Neptune velocity in shallow water877 rn_htrmin = 100.0 ! min. depth of transition range878 rn_htrmax = 200.0 ! max. depth of transition range879 / 866 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed) 867 !----------------------------------------------------------------------- 868 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model 869 ln_neptsimp = .true. ! yes/no use simplified neptune 870 871 ln_smooth_neptvel = .false. ! yes/no smooth zunep, zvnep 872 rn_tslse = 1.2e4 ! value of lengthscale L at the equator 873 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole 874 ! Specify whether to ramp down the Neptune velocity in shallow 875 ! water, and if so the depth range controlling such ramping down 876 ln_neptramp = .true. ! ramp down Neptune velocity in shallow water 877 rn_htrmin = 100.0 ! min. depth of transition range 878 rn_htrmax = 200.0 ! max. depth of transition range 879 / -
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r2795 r2915 879 879 / 880 880 !----------------------------------------------------------------------- 881 &nam_dynnept ! Neptune effect (simplified: lateral and vertical diffusions removed) 882 !----------------------------------------------------------------------- 883 ln_neptsimp = .false. ! yes/no use simplified neptune 884 885 ln_smoothtopo = .false. ! yes/no smooth tsu, tsv 886 rn_tslse = 1.2e4 ! value of L at the equator 887 rn_tslsp = 3.0e3 ! value of L at the pole 888 / 881 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed) 882 !----------------------------------------------------------------------- 883 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model 884 ln_neptsimp = .false. ! yes/no use simplified neptune 885 886 ln_smooth_neptvel = .false. ! yes/no smooth zunep, zvnep 887 rn_tslse = 1.2e4 ! value of lengthscale L at the equator 888 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole 889 ! Specify whether to ramp down the Neptune velocity in shallow 890 ! water, and if so the depth range controlling such ramping down 891 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water 892 rn_htrmin = 100.0 ! min. depth of transition range 893 rn_htrmax = 200.0 ! max. depth of transition range 894 / -
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/CONFIG/POMME/EXP00/namelist
r2825 r2915 869 869 / 870 870 !----------------------------------------------------------------------- 871 &nam _dynnept ! Neptune effect (simplified: lateral and vertical diffusions removed)872 !----------------------------------------------------------------------- 873 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model874 ln_neptsimp = .false. ! yes/no use simplified neptune875 876 ln_smooth topo = .false. ! yes/no smooth tsu, tsv877 rn_tslse = 1.2e4 ! value of lengthscale L at the equator878 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole879 ! Specify whether to ramp down the Neptune velocity in shallow880 ! water, and if so the depth range controlling such ramping down881 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water882 rn_htrmin = 100.0 ! min. depth of transition range883 rn_htrmax = 200.0 ! max. depth of transition range884 / 871 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed) 872 !----------------------------------------------------------------------- 873 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model 874 ln_neptsimp = .false. ! yes/no use simplified neptune 875 876 ln_smooth_neptvel = .false. ! yes/no smooth zunep, zvnep 877 rn_tslse = 1.2e4 ! value of lengthscale L at the equator 878 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole 879 ! Specify whether to ramp down the Neptune velocity in shallow 880 ! water, and if so the depth range controlling such ramping down 881 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water 882 rn_htrmin = 100.0 ! min. depth of transition range 883 rn_htrmax = 200.0 ! max. depth of transition range 884 / -
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/NEMO/OPA_SRC/DYN/dynnept.F90
r2825 r2915 15 15 !! to zero added in shallow depths added 16 16 !!---------------------------------------------------------------------- 17 !! dynnept_alloc : 17 18 !! dyn_nept_init : 18 !! d iv_cur_nept_init:19 !! dyn_ cor_topo:20 !! dyn_ topo_neptunevel:21 !! smooth_topo2:19 !! dyn_nept_div_cur_init: 20 !! dyn_nept_cor : 21 !! dyn_nept_vel : 22 !! dyn_nept_smooth_vel : 22 23 !!---------------------------------------------------------------------- 23 24 USE oce ! ocean dynamics and tracers … … 35 36 !! * Routine accessibility 36 37 PUBLIC dyn_nept_init ! routine called by nemogcm.F90 37 PUBLIC dyn_ cor_topo! routine called by step.F9038 !! dynnept_alloc() is called only by dyn_nept_init, within this module39 !! d iv_cur_nept_init is called only by dyn_nept_init, within this module40 !! dyn_ topo_neptunevel is called only by dyn_cor_topo, within this module38 PUBLIC dyn_nept_cor ! routine called by step.F90 39 !! dynnept_alloc() is called only by dyn_nept_init, within this module 40 !! dyn_nept_div_cur_init is called only by dyn_nept_init, within this module 41 !! dyn_nept_vel is called only by dyn_nept_cor, within this module 41 42 42 43 !! * Shared module variables … … 46 47 47 48 48 !! * Namelist nam _dynnept variables49 LOGICAL, PUBLIC :: ln_neptsimp = .FALSE. ! yes/no simplified neptune50 51 LOGICAL :: ln_smooth topo= .FALSE. ! yes/no smooth zunep, zvnep52 REAL(wp) :: rn_tslse = 1.2e4 ! value of lengthscale L at the equator53 REAL(wp) :: rn_tslsp = 3.0e3 ! value of lengthscale L at the pole49 !! * Namelist namdyn_nept variables 50 LOGICAL, PUBLIC :: ln_neptsimp = .FALSE. ! yes/no simplified neptune 51 52 LOGICAL :: ln_smooth_neptvel = .FALSE. ! yes/no smooth zunep, zvnep 53 REAL(wp) :: rn_tslse = 1.2e4 ! value of lengthscale L at the equator 54 REAL(wp) :: rn_tslsp = 3.0e3 ! value of lengthscale L at the pole 54 55 !! Specify whether to ramp down the Neptune velocity in shallow 55 56 !! water, and the depth range controlling such ramping down 56 LOGICAL :: ln_neptramp = .FALSE. ! ramp down Neptune velocity in shallow water57 REAL(wp) :: rn_htrmin = 100.0 ! min. depth of transition range58 REAL(wp) :: rn_htrmax = 200.0 ! max. depth of transition range57 LOGICAL :: ln_neptramp = .FALSE. ! ramp down Neptune velocity in shallow water 58 REAL(wp) :: rn_htrmin = 100.0 ! min. depth of transition range 59 REAL(wp) :: rn_htrmax = 200.0 ! max. depth of transition range 59 60 60 61 !! * Module variables … … 117 118 REAL(wp) :: hramp ! depth over which Neptune vel. is ramped down 118 119 !! 119 NAMELIST/nam _dynnept/ ln_neptsimp, &120 ln_smooth topo,&120 NAMELIST/namdyn_nept/ ln_neptsimp, & 121 ln_smooth_neptvel,& 121 122 rn_tslse, & 122 123 rn_tslsp, & … … 131 132 !! WRITE(numout,*) ' start dynnept namelist' 132 133 !! CALL FLUSH(numout) 133 REWIND( numnam ) ! Read Namelist nam _dynnept: Simplified Neptune134 READ ( numnam, nam _dynnept )134 REWIND( numnam ) ! Read Namelist namdyn_nept: Simplified Neptune 135 READ ( numnam, namdyn_nept ) 135 136 !! WRITE(numout,*) ' dynnept namelist done' 136 137 !! CALL FLUSH(numout) … … 140 141 WRITE(numout,*) 'dyn_nept_init : Simplified Neptune module enabled' 141 142 WRITE(numout,*) '~~~~~~~~~~~~~' 142 WRITE(numout,*) ' --> Reading namelist nam _dynnept parameters:'143 WRITE(numout,*) ' --> Reading namelist namdyn_nept parameters:' 143 144 WRITE(numout,*) ' ln_neptsimp = ', ln_neptsimp 144 145 WRITE(numout,*) 145 WRITE(numout,*) ' ln_smooth topo = ', ln_smoothtopo146 WRITE(numout,*) ' ln_smooth_neptvel = ', ln_smooth_neptvel 146 147 WRITE(numout,*) ' rn_tslse = ', rn_tslse 147 148 WRITE(numout,*) ' rn_tslsp = ', rn_tslsp … … 154 155 ENDIF 155 156 156 IF( ln_smooth topo) THEN157 IF( ln_smooth_neptvel ) THEN 157 158 IF(lwp) WRITE(numout,*) ' --> neptune velocities will be smoothed' 158 159 ELSE … … 213 214 END DO 214 215 215 IF( ln_smooth topo) THEN216 CALL smooth_topo2( htn, ht, .TRUE. )216 IF( ln_smooth_neptvel ) THEN 217 CALL dyn_nept_smooth_vel( htn, ht, .TRUE. ) 217 218 !! overwrites ht with a smoothed version of htn 218 219 ELSE … … 224 225 !! Compute tsp, a stream function for the Neptune velocity, 225 226 !! with the usual geophysical sign convention 226 !! Then zunep = -latitudinal derivative "- d(tsp)/dy"227 !! zvnep = longitudinal derivative " d(tsp)/dx"227 !! Then zunep = -latitudinal derivative "-(1/H)*d(tsp)/dy" 228 !! zvnep = longitudinal derivative " (1/H)*d(tsp)/dx" 228 229 229 230 tsp(:,:) = 0.0_wp … … 235 236 236 237 237 IF( ln_smooth topo) THEN238 CALL smooth_topo2( hu, hu_n, .TRUE. )238 IF( ln_smooth_neptvel ) THEN 239 CALL dyn_nept_smooth_vel( hu, hu_n, .TRUE. ) 239 240 !! overwrites hu_n with a smoothed version of hu 240 241 ELSE … … 252 253 253 254 254 IF( ln_smooth topo) THEN255 CALL smooth_topo2( hv, hv_n, .TRUE. )255 IF( ln_smooth_neptvel ) THEN 256 CALL dyn_nept_smooth_vel( hv, hv_n, .TRUE. ) 256 257 !! overwrites hv_n with a smoothed version of hv 257 258 ELSE … … 324 325 !! Compute, once and for all, the horizontal divergence (zhdivnep) 325 326 !! and the curl (zmrotnep) of the Neptune velocity field (zunep, zvnep) 326 CALL d iv_cur_nept_init327 CALL dyn_nept_div_cur_init 327 328 328 329 !! Check the ranges of the computed divergence & vorticity … … 353 354 354 355 355 SUBROUTINE d iv_cur_nept_init356 !!---------------------------------------------------------------------- 357 !! *** ROUTINE d iv_cur_nept_init ***356 SUBROUTINE dyn_nept_div_cur_init 357 !!---------------------------------------------------------------------- 358 !! *** ROUTINE dyn_nept_div_cur_init *** 358 359 !! 359 360 !! ** Purpose : compute the horizontal divergence and the relative … … 394 395 395 396 IF(lwp) WRITE(numout,*) 396 IF(lwp) WRITE(numout,*) 'd iv_cur_nept_init :'397 IF(lwp) WRITE(numout,*) 'dyn_nept_div_cur_init :' 397 398 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~' 398 399 IF(lwp) WRITE(numout,*) 'horizontal velocity divergence and' … … 471 472 CALL lbc_lnk( zhdivnep, 'T', 1. ) ; CALL lbc_lnk( zmrotnep , 'F', 1. ) ! lateral boundary cond. (no sign change) 472 473 ! 473 END SUBROUTINE d iv_cur_nept_init474 475 476 SUBROUTINE dyn_ cor_topo( kt )477 !!---------------------------------------------------------------------- 478 !! *** ROUTINE dyn_ cor_topo***474 END SUBROUTINE dyn_nept_div_cur_init 475 476 477 SUBROUTINE dyn_nept_cor( kt ) 478 !!---------------------------------------------------------------------- 479 !! *** ROUTINE dyn_nept_cor *** 479 480 !! 480 481 !! ** Purpose : Add or subtract the Neptune velocity from the now velocities … … 492 493 ! 493 494 IF( lastkt /= kt ) THEN ! 1st call for this kt: subtract the Neptune velocities zunep, zvnep from un, vn 494 CALL dyn_ topo_neptunevel( -1 ) ! -1 = subtract495 CALL dyn_nept_vel( -1 ) ! -1 = subtract 495 496 ! 496 497 ELSE ! 2nd call for this kt: add the Neptune velocities zunep, zvnep to un, vn 497 CALL dyn_ topo_neptunevel( 1 ) ! 1 = add498 CALL dyn_nept_vel( 1 ) ! 1 = add 498 499 ! 499 500 ENDIF … … 503 504 ENDIF 504 505 ! 505 END SUBROUTINE dyn_ cor_topo506 507 508 SUBROUTINE dyn_ topo_neptunevel( ksign )509 !!---------------------------------------------------------------------- 510 !! *** ROUTINE dyn_ topo_neptunevel ***506 END SUBROUTINE dyn_nept_cor 507 508 509 SUBROUTINE dyn_nept_vel( ksign ) 510 !!---------------------------------------------------------------------- 511 !! *** ROUTINE dyn_nept_vel *** 511 512 !! 512 513 !! ** Purpose : Add or subtract the Neptune velocity from the now … … 525 526 END DO 526 527 ! 527 END SUBROUTINE dyn_ topo_neptunevel528 529 530 SUBROUTINE smooth_topo2( htold, htnew, option )531 532 !!---------------------------------------------------------------------- 533 !! *** ROUTINE smooth_topo2***528 END SUBROUTINE dyn_nept_vel 529 530 531 SUBROUTINE dyn_nept_smooth_vel( htold, htnew, option ) 532 533 !!---------------------------------------------------------------------- 534 !! *** ROUTINE dyn_nept_smooth_vel *** 534 535 !! 535 536 !! ** Purpose : Compute smoothed topography field. … … 616 617 DEALLOCATE( work, nb, iwork ) 617 618 618 END SUBROUTINE smooth_topo2619 END SUBROUTINE dyn_nept_smooth_vel 619 620 620 621 END MODULE dynnept -
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/NEMO/OPA_SRC/step.F90
r2795 r2915 221 221 IF( ln_asmiau .AND. & 222 222 & ln_dyninc ) CALL dyn_asm_inc( kstp ) ! apply dynamics assimilation increment 223 IF( ln_neptsimp ) CALL dyn_ cor_topo( kstp ) ! subtract Neptune velocities (simplified)223 IF( ln_neptsimp ) CALL dyn_nept_cor( kstp ) ! subtract Neptune velocities (simplified) 224 224 CALL dyn_adv( kstp ) ! advection (vector or flux form) 225 225 CALL dyn_vor( kstp ) ! vorticity term including Coriolis 226 226 CALL dyn_ldf( kstp ) ! lateral mixing 227 IF( ln_neptsimp ) CALL dyn_ cor_topo( kstp ) ! add Neptune velocities (simplified)227 IF( ln_neptsimp ) CALL dyn_nept_cor( kstp ) ! add Neptune velocities (simplified) 228 228 #if defined key_agrif 229 229 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_dyn ! momemtum sponge
Note: See TracChangeset
for help on using the changeset viewer.