Changeset 10800 for NEMO/branches
- Timestamp:
- 2019-03-25T18:19:23+01:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/BDY/bdytides.F90
r10772 r10800 332 332 ! Linear ramp on tidal component at open boundaries 333 333 zramp = 1._wp 334 IF (ln_tide_ramp) zramp = MIN(MAX( (z_arg + (kt_tide-nit000)*rdt)/(r dttideramp*rday),0._wp),1._wp)334 IF (ln_tide_ramp) zramp = MIN(MAX( (z_arg + (kt_tide-nit000)*rdt)/(rn_tide_ramp_dt*rday),0._wp),1._wp) 335 335 336 336 DO itide = 1, nb_harmo … … 399 399 ! Linear ramp on tidal component at open boundaries 400 400 zramp = 1. 401 IF (ln_tide_ramp) zramp = MIN(MAX( (z_arg - nit000*rdt)/(r dttideramp*rday),0.),1.)401 IF (ln_tide_ramp) zramp = MIN(MAX( (z_arg - nit000*rdt)/(rn_tide_ramp_dt*rday),0.),1.) 402 402 403 403 DO ib_bdy = 1,nb_bdy -
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/TDE/tide_mod.F90
r10793 r10800 51 51 INTEGER , PUBLIC :: nb_harmo !: 52 52 INTEGER , PUBLIC :: kt_tide !: 53 REAL(wp), PUBLIC :: r dttideramp!:53 REAL(wp), PUBLIC :: rn_tide_ramp_dt !: 54 54 REAL(wp), PUBLIC :: rn_scal_load !: 55 55 CHARACTER(lc), PUBLIC :: cn_tide_load !: … … 79 79 !!---------------------------------------------------------------------- 80 80 INTEGER :: ji, jk 81 CHARACTER(LEN=4), DIMENSION(jpmax_harmo) :: clname81 CHARACTER(LEN=4), DIMENSION(jpmax_harmo) :: sn_tide_cnames 82 82 INTEGER :: ios ! Local integer output status for namelist read 83 83 ! 84 84 NAMELIST/nam_tide/ln_tide, ln_tide_pot, rn_tide_gamma, ln_scal_load, ln_read_load, cn_tide_load, & 85 & ln_tide_ramp, rn_scal_load, r dttideramp, clname85 & ln_tide_ramp, rn_scal_load, rn_tide_ramp_dt, sn_tide_cnames 86 86 !!---------------------------------------------------------------------- 87 87 ! … … 102 102 WRITE(numout,*) '~~~~~~~~~ ' 103 103 WRITE(numout,*) ' Namelist nam_tide' 104 WRITE(numout,*) ' Use tidal components ln_tide = ', ln_tide105 WRITE(numout,*) ' Apply astronomical potential ln_tide_pot = ', ln_tide_pot106 WRITE(numout,*) ' Tidal tilt factor rn_tide_gamma = ', rn_tide_gamma107 WRITE(numout,*) ' Use scalar approx. for load potential ln_scal_load = ', ln_scal_load108 WRITE(numout,*) ' Read load potential from file ln_read_load = ', ln_read_load109 WRITE(numout,*) ' Apply ramp on tides at startup ln_tide_ramp = ', ln_tide_ramp110 WRITE(numout,*) ' Fraction of SSH used in scal. approx. rn_scal_load = ', rn_scal_load111 WRITE(numout,*) ' Duration (days) of ramp r dttideramp = ', rdttideramp104 WRITE(numout,*) ' Use tidal components ln_tide = ', ln_tide 105 WRITE(numout,*) ' Apply astronomical potential ln_tide_pot = ', ln_tide_pot 106 WRITE(numout,*) ' Tidal tilt factor rn_tide_gamma = ', rn_tide_gamma 107 WRITE(numout,*) ' Use scalar approx. for load potential ln_scal_load = ', ln_scal_load 108 WRITE(numout,*) ' Read load potential from file ln_read_load = ', ln_read_load 109 WRITE(numout,*) ' Apply ramp on tides at startup ln_tide_ramp = ', ln_tide_ramp 110 WRITE(numout,*) ' Fraction of SSH used in scal. approx. rn_scal_load = ', rn_scal_load 111 WRITE(numout,*) ' Duration (days) of ramp rn_tide_ramp_dt = ', rn_tide_ramp_dt 112 112 ENDIF 113 113 ELSE … … 125 125 DO jk = 1, jpmax_harmo 126 126 DO ji = 1,jpmax_harmo 127 IF( TRIM( clname(jk)) == Wave(ji)%cname_tide ) nb_harmo = nb_harmo + 1127 IF( TRIM(sn_tide_cnames(jk)) == Wave(ji)%cname_tide ) nb_harmo = nb_harmo + 1 128 128 END DO 129 129 END DO … … 138 138 IF( ln_scal_load.AND.ln_read_load ) & 139 139 & CALL ctl_stop('Choose between ln_scal_load and ln_read_load') 140 IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < r dttideramp) ) &141 & CALL ctl_stop('r dttiderampmust be lower than run duration')142 IF( ln_tide_ramp.AND.(r dttideramp<0.) ) &143 & CALL ctl_stop('r dttiderampmust be positive')140 IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rn_tide_ramp_dt) ) & 141 & CALL ctl_stop('rn_tide_ramp_dt must be lower than run duration') 142 IF( ln_tide_ramp.AND.(rn_tide_ramp_dt<0.) ) & 143 & CALL ctl_stop('rn_tide_ramp_dt must be positive') 144 144 ! 145 145 ALLOCATE( ntide(nb_harmo) ) 146 146 DO jk = 1, nb_harmo 147 147 DO ji = 1, jpmax_harmo 148 IF( TRIM( clname(jk)) == Wave(ji)%cname_tide ) THEN148 IF( TRIM(sn_tide_cnames(jk)) == Wave(ji)%cname_tide ) THEN 149 149 ntide(jk) = ji 150 150 EXIT … … 649 649 zt = ( kt - nit000 ) * rdt 650 650 IF( PRESENT( kit ) ) zt = zt + ( kit + joffset -1) * rdt / REAL( nn_baro, wp ) 651 zramp = MIN( MAX( zt / (r dttideramp*rday) , 0._wp ) , 1._wp )651 zramp = MIN( MAX( zt / (rn_tide_ramp_dt*rday) , 0._wp ) , 1._wp ) 652 652 pot_astro(:,:) = zramp * pot_astro(:,:) 653 653 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.