- Timestamp:
- 2016-08-12T15:16:27+02:00 (8 years ago)
- Location:
- branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/CONFIG/AMM12/EXP00/namelist_cfg
r6862 r6864 189 189 / 190 190 !----------------------------------------------------------------------- 191 &nam_tide ! tide parameters (#ifdef key_tide) 192 !----------------------------------------------------------------------- 191 &nam_tide ! tide parameters 192 !----------------------------------------------------------------------- 193 ln_tide = .true. 193 194 clname(1) = 'Q1' ! name of constituent 194 195 clname(2) = 'O1' -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/CONFIG/AMM12/cpp_AMM12.fcm
r6862 r6864 1 bld::tool::fppkeys key_ tide key_zdfgls key_diainstant key_mpp_mpi key_iomput1 bld::tool::fppkeys key_zdfgls key_diainstant key_mpp_mpi key_iomput -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/CONFIG/SHARED/namelist_ref
r6863 r6864 611 611 / 612 612 !----------------------------------------------------------------------- 613 &nam_tide ! tide parameters ("key_tide") 614 !----------------------------------------------------------------------- 613 &nam_tide ! tide parameters 614 !----------------------------------------------------------------------- 615 ln_tide = .false. 615 616 ln_tide_pot = .true. ! use tidal potential forcing 616 617 ln_tide_ramp= .false. ! -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
r6862 r6864 32 32 #endif 33 33 USE sbcapr 34 USE sbctide , ONLY: ln_tide ! Tidal forcing or not 34 35 35 36 IMPLICIT NONE … … 377 378 END DO ! ib_bdy 378 379 379 #if defined key_tide 380 IF (ln_dynspg_ts) THEN ! Fill temporary arrays with slow-varying bdy data 381 DO ib_bdy = 1, nb_bdy ! Tidal component added in ts loop 382 IF ( nn_dyn2d_dta(ib_bdy) .ge. 2 ) THEN 383 nblen => idx_bdy(ib_bdy)%nblen 384 nblenrim => idx_bdy(ib_bdy)%nblenrim 385 IF( cn_dyn2d(ib_bdy) == 'frs' ) THEN; ilen1(:)=nblen(:) ; ELSE ; ilen1(:)=nblenrim(:) ; ENDIF 386 IF ( dta_bdy(ib_bdy)%ll_ssh ) dta_bdy_s(ib_bdy)%ssh(1:ilen1(1)) = dta_bdy(ib_bdy)%ssh(1:ilen1(1)) 387 IF ( dta_bdy(ib_bdy)%ll_u2d ) dta_bdy_s(ib_bdy)%u2d(1:ilen1(2)) = dta_bdy(ib_bdy)%u2d(1:ilen1(2)) 388 IF ( dta_bdy(ib_bdy)%ll_v2d ) dta_bdy_s(ib_bdy)%v2d(1:ilen1(3)) = dta_bdy(ib_bdy)%v2d(1:ilen1(3)) 389 ENDIF 390 END DO 391 ELSE ! Add tides if not split-explicit free surface else this is done in ts loop 392 ! 393 CALL bdy_dta_tides( kt=kt, time_offset=time_offset ) 380 IF ( ln_tide ) THEN 381 IF (ln_dynspg_ts) THEN ! Fill temporary arrays with slow-varying bdy data 382 DO ib_bdy = 1, nb_bdy ! Tidal component added in ts loop 383 IF ( nn_dyn2d_dta(ib_bdy) .ge. 2 ) THEN 384 nblen => idx_bdy(ib_bdy)%nblen 385 nblenrim => idx_bdy(ib_bdy)%nblenrim 386 IF( cn_dyn2d(ib_bdy) == 'frs' ) THEN; ilen1(:)=nblen(:) ; ELSE ; ilen1(:)=nblenrim(:) ; ENDIF 387 IF ( dta_bdy(ib_bdy)%ll_ssh ) dta_bdy_s(ib_bdy)%ssh(1:ilen1(1)) = dta_bdy(ib_bdy)%ssh(1:ilen1(1)) 388 IF ( dta_bdy(ib_bdy)%ll_u2d ) dta_bdy_s(ib_bdy)%u2d(1:ilen1(2)) = dta_bdy(ib_bdy)%u2d(1:ilen1(2)) 389 IF ( dta_bdy(ib_bdy)%ll_v2d ) dta_bdy_s(ib_bdy)%v2d(1:ilen1(3)) = dta_bdy(ib_bdy)%v2d(1:ilen1(3)) 390 ENDIF 391 END DO 392 ELSE ! Add tides if not split-explicit free surface else this is done in ts loop 393 ! 394 CALL bdy_dta_tides( kt=kt, time_offset=time_offset ) 395 ENDIF 394 396 ENDIF 395 #endif396 397 397 398 IF ( ln_apr_obc ) THEN -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r6863 r6864 22 22 USE bdydta ! open boundary cond. setting (bdy_dta_init routine) 23 23 USE bdytides ! open boundary cond. setting (bdytide_init routine) 24 USE sbctide , ONLY: l k_tide ! Tidal forcing or not24 USE sbctide , ONLY: ln_tide ! Tidal forcing or not 25 25 USE phycst , ONLY: rday 26 26 ! … … 105 105 ! 106 106 ! Open boundaries initialisation of tidal harmonic forcing 107 IF( l k_tide ) CALL bdytide_init107 IF( ln_tide ) CALL bdytide_init 108 108 ! 109 109 ELSE … … 224 224 CASE DEFAULT ; CALL ctl_stop( 'nn_dyn2d_dta must be between 0 and 3' ) 225 225 END SELECT 226 IF (( nn_dyn2d_dta(ib_bdy) .ge. 2 ).AND.(.NOT.l k_tide)) THEN227 CALL ctl_stop( 'You must activate key_tide to add tidal forcing at open boundaries' )226 IF (( nn_dyn2d_dta(ib_bdy) .ge. 2 ).AND.(.NOT.ln_tide)) THEN 227 CALL ctl_stop( 'You must activate with ln_tide to add tidal forcing at open boundaries' ) 228 228 ENDIF 229 229 ENDIF -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90
r6140 r6864 6 6 !! History : 3.1 ! 2007 (O. Le Galloudec, J. Chanut) Original code 7 7 !!---------------------------------------------------------------------- 8 #if defined key_diaharm && defined key_tide8 #if defined key_diaharm 9 9 !!---------------------------------------------------------------------- 10 10 !! 'key_diaharm' 11 !! 'key_tide'12 11 !!---------------------------------------------------------------------- 13 12 USE oce ! ocean dynamics and tracers variables … … 16 15 USE daymod 17 16 USE tide_mod 17 USE sbctide , ONLY: ln_tide ! Tidal forcing or not 18 18 ! 19 19 USE in_out_manager ! I/O units … … 82 82 WRITE(numout,*) '~~~~~~~ ' 83 83 ENDIF 84 ! 85 IF( .NOT. ln_tyde ) CALL ctl_stop( 'dia_harm_init : ln_tyde must be true for harmonic analysis') 84 86 ! 85 87 CALL tide_init_Wave -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r6140 r6864 88 88 ! 89 89 IF( ln_apr_dyn & ! atmos. pressure 90 .OR. ( .NOT.ln_dynspg_ts .AND. (ln_tide_pot .AND. l k_tide) ) & ! tide potential (no time slitting)90 .OR. ( .NOT.ln_dynspg_ts .AND. (ln_tide_pot .AND. ln_tide) ) & ! tide potential (no time slitting) 91 91 .OR. nn_ice_embd == 2 ) THEN ! embedded sea-ice 92 92 ! … … 111 111 ! 112 112 ! !== tide potential forcing term ==! 113 IF( .NOT.ln_dynspg_ts .AND. ( ln_tide_pot .AND. l k_tide ) ) THEN ! N.B. added directly at sub-time-step in ts-case113 IF( .NOT.ln_dynspg_ts .AND. ( ln_tide_pot .AND. ln_tide ) ) THEN ! N.B. added directly at sub-time-step in ts-case 114 114 ! 115 115 CALL upd_tide( kt ) ! update tide potential -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r6862 r6864 607 607 ! ! ------------------ 608 608 ! Update only tidal forcing at open boundaries 609 #if defined key_tide 610 IF( ln_bdy .AND. lk_tide ) CALL bdy_dta_tides( kt, kit=jn, time_offset= noffset+1 ) 611 IF( ln_tide_pot .AND. lk_tide ) CALL upd_tide ( kt, kit=jn, time_offset= noffset ) 612 #endif 609 IF( ln_bdy .AND. ln_tide ) CALL bdy_dta_tides( kt, kit=jn, time_offset= noffset+1 ) 610 IF( ln_tide_pot .AND. ln_tide ) CALL upd_tide ( kt, kit=jn, time_offset= noffset ) 613 611 ! 614 612 ! Set extrapolation coefficients for predictor step: … … 860 858 ! 861 859 ! Add tidal astronomical forcing if defined 862 IF ( l k_tide.AND.ln_tide_pot ) THEN860 IF ( ln_tide.AND.ln_tide_pot ) THEN 863 861 DO jj = 2, jpjm1 864 862 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
r6140 r6864 22 22 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: pot_astro ! 23 23 24 #if defined key_tide25 24 !!---------------------------------------------------------------------- 26 !! 'key_tide' :tidal potential25 !! tidal potential 27 26 !!---------------------------------------------------------------------- 28 27 !! sbc_tide : … … 30 29 !!---------------------------------------------------------------------- 31 30 32 LOGICAL, PUBLIC, PARAMETER :: lk_tide = .TRUE.33 31 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: amp_pot, phi_pot 34 32 … … 125 123 END SUBROUTINE tide_init_potential 126 124 127 #else128 !!----------------------------------------------------------------------129 !! Default case : Empty module130 !!----------------------------------------------------------------------131 LOGICAL, PUBLIC, PARAMETER :: lk_tide = .FALSE.132 CONTAINS133 SUBROUTINE sbc_tide( kt ) ! Empty routine134 INTEGER , INTENT(in) :: kt ! ocean time-step135 WRITE(*,*) 'sbc_tide: You should not have seen this print! error?', kt136 END SUBROUTINE sbc_tide137 #endif138 139 125 !!====================================================================== 140 126 END MODULE sbctide -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90
r6140 r6864 25 25 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) :: ftide !: 26 26 27 LOGICAL , PUBLIC :: ln_tide !: 27 28 LOGICAL , PUBLIC :: ln_tide_pot !: 28 29 LOGICAL , PUBLIC :: ln_tide_ramp !: … … 48 49 INTEGER :: ios ! Local integer output status for namelist read 49 50 ! 50 NAMELIST/nam_tide/ln_tide _pot, ln_tide_ramp, rdttideramp, clname51 NAMELIST/nam_tide/ln_tide, ln_tide_pot, ln_tide_ramp, rdttideramp, clname 51 52 !!---------------------------------------------------------------------- 52 !53 IF(lwp) THEN54 WRITE(numout,*)55 WRITE(numout,*) 'tide_init : Initialization of the tidal components'56 WRITE(numout,*) '~~~~~~~~~ '57 ENDIF58 !59 CALL tide_init_Wave60 53 ! 61 54 ! Read Namelist nam_tide … … 69 62 IF(lwm) WRITE ( numond, nam_tide ) 70 63 ! 64 IF (ln_tide) THEN 65 IF (lwp) THEN 66 WRITE(numout,*) 67 WRITE(numout,*) 'tide_init : Initialization of the tidal components' 68 WRITE(numout,*) '~~~~~~~~~ ' 69 WRITE(numout,*) ' Namelist nam_tide' 70 WRITE(numout,*) ' Use tidal components : ln_tide = ', ln_tide 71 WRITE(numout,*) ' Apply astronomical potential : ln_tide_pot = ', ln_tide_pot 72 WRITE(numout,*) ' nb_harmo = ', nb_harmo 73 WRITE(numout,*) ' ln_tide_ramp = ', ln_tide_ramp 74 WRITE(numout,*) ' rdttideramp = ', rdttideramp 75 ENDIF 76 ELSE 77 IF(lwp) WRITE(numout,*) 78 IF(lwp) WRITE(numout,*) 'tide_init : tidal components not used (ln_tide = F)' 79 IF(lwp) WRITE(numout,*) '~~~~~~~~~ ' 80 RETURN 81 ENDIF 82 ! 83 CALL tide_init_Wave 84 ! 71 85 nb_harmo=0 72 86 DO jk = 1, jpmax_harmo … … 79 93 IF( nb_harmo == 0 ) CALL ctl_stop( 'tide_init : No tidal components set in nam_tide' ) 80 94 ! 81 IF(lwp) THEN82 WRITE(numout,*) ' Namelist nam_tide'83 WRITE(numout,*) ' Apply astronomical potential : ln_tide_pot =', ln_tide_pot84 WRITE(numout,*) ' nb_harmo = ', nb_harmo85 WRITE(numout,*) ' ln_tide_ramp = ', ln_tide_ramp86 WRITE(numout,*) ' rdttideramp = ', rdttideramp87 ENDIF88 95 IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rdttideramp) ) & 89 96 & CALL ctl_stop('rdttideramp must be lower than run duration') -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/SBC/updtide.F90
r5913 r6864 5 5 !!====================================================================== 6 6 !! History : 9.0 ! 07 (O. Le Galloudec) Original code 7 !!----------------------------------------------------------------------8 #if defined key_tide9 !!----------------------------------------------------------------------10 !! 'key_tide' : tidal potential11 7 !!---------------------------------------------------------------------- 12 8 !! upd_tide : update tidal potential … … 81 77 END SUBROUTINE upd_tide 82 78 83 #else84 !!----------------------------------------------------------------------85 !! Dummy module : NO TIDE86 !!----------------------------------------------------------------------87 CONTAINS88 SUBROUTINE upd_tide( kt, kit, time_offset ) ! Empty routine89 INTEGER, INTENT(in) :: kt ! integer arg, dummy routine90 INTEGER, INTENT(in), OPTIONAL :: kit ! optional arg, dummy routine91 INTEGER, INTENT(in), OPTIONAL :: time_offset ! optional arg, dummy routine92 WRITE(*,*) 'upd_tide: You should not have seen this print! error?', kt93 END SUBROUTINE upd_tide94 95 #endif96 97 79 !!====================================================================== 98 80 -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r6862 r6864 52 52 #endif 53 53 USE tideini ! tidal components initialization (tide_ini routine) 54 USE bdy_oce ,ONLY: ln_bdy54 USE bdy_oce, ONLY: ln_bdy 55 55 USE bdyini ! open boundary cond. setting (bdy_init routine) 56 USE sbctide, ONLY : lk_tide57 56 USE istate ! initial state setting (istate_init routine) 58 57 USE ldfdyn ! lateral viscosity setting (ldfdyn_init routine) … … 432 431 ! ! external forcing 433 432 !!gm to be added : creation and call of sbc_apr_init 434 IF( lk_tide )CALL tide_init ! tidal harmonics433 CALL tide_init ! tidal harmonics 435 434 CALL sbc_init ! surface boundary conditions (including sea-ice) 436 435 CALL bdy_init ! Open boundaries initialisation -
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/OPA_SRC/step.F90
r6862 r6864 104 104 ! Update external forcing (tides, open boundaries, and surface boundary condition (including sea-ice) 105 105 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 106 IF( l k_tide ) CALL sbc_tide( kstp ) ! update tide potential106 IF( ln_tide ) CALL sbc_tide( kstp ) ! update tide potential 107 107 IF( ln_apr_dyn ) CALL sbc_apr ( kstp ) ! atmospheric pressure (NB: call before bdy_dta which needs ssh_ib) 108 108 IF( ln_bdy ) CALL bdy_dta ( kstp, time_offset=+1 ) ! update dynamic & tracer data at open boundaries
Note: See TracChangeset
for help on using the changeset viewer.