- Timestamp:
- 2019-10-22T19:57:44+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/TDE/tide_mod.F90
r11737 r11764 50 50 LOGICAL , PUBLIC :: ln_tide_pot !: 51 51 INTEGER :: nn_tide_var ! Variant of tidal parameter set and tide-potential computation 52 LOGICAL :: ln_tide_dia ! Enable tidal diagnostic output 52 53 LOGICAL :: ln_read_load !: 53 54 LOGICAL , PUBLIC :: ln_scal_load !: … … 60 61 61 62 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: pot_astro !: tidal potential 63 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: pot_astro_comp ! tidal-potential component 62 64 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: amp_pot, phi_pot 63 65 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: amp_load, phi_load … … 84 86 INTEGER :: ios ! Local integer output status for namelist read 85 87 ! 86 NAMELIST/nam_tide/ln_tide, nn_tide_var, ln_tide_ pot, rn_tide_gamma, &88 NAMELIST/nam_tide/ln_tide, nn_tide_var, ln_tide_dia, ln_tide_pot, rn_tide_gamma, & 87 89 & ln_scal_load, ln_read_load, cn_tide_load, & 88 90 & ln_tide_ramp, rn_scal_load, rn_tide_ramp_dt, & … … 111 113 WRITE(numout,*) ' Use tidal components ln_tide = ', ln_tide 112 114 WRITE(numout,*) ' Variant (1: default; 0: legacy option) nn_tide_var = ', nn_tide_var 115 WRITE(numout,*) ' Tidal diagnostic output ln_tide_dia = ', ln_tide_dia 113 116 WRITE(numout,*) ' Apply astronomical potential ln_tide_pot = ', ln_tide_pot 114 117 WRITE(numout,*) ' Tidal tilt factor rn_tide_gamma = ', rn_tide_gamma … … 154 157 ALLOCATE( amp_pot(jpi,jpj,nb_harmo), & 155 158 & phi_pot(jpi,jpj,nb_harmo), pot_astro(jpi,jpj) ) 159 IF( ln_tide_dia ) ALLOCATE( pot_astro_comp(jpi,jpj) ) 156 160 IF( ln_read_load ) THEN 157 161 ALLOCATE( amp_load(jpi,jpj,nb_harmo), phi_load(jpi,jpj,nb_harmo) ) … … 762 766 zwt(:) = tide_harmonics(:)%omega * pdelta 763 767 ! 764 pot_astro(:,:) = 0._wp ! update tidal potential (sum of all harmonics)765 DO jk = 1, nb_harmo766 pot_astro(:,:) = pot_astro(:,:) + amp_pot(:,:,jk) * COS( zwt(jk) + phi_pot(:,:,jk) )767 END DO768 !769 768 IF( ln_tide_ramp ) THEN ! linear increase if asked 770 769 zt = rn_tide_ramp_t + pdelta 771 770 zramp = MIN( MAX( zt / (rn_tide_ramp_dt*rday) , 0._wp ) , 1._wp ) 772 pot_astro(:,:) = zramp * pot_astro(:,:)773 771 ENDIF 772 ! 773 pot_astro(:,:) = 0._wp ! update tidal potential (sum of all harmonics) 774 DO jk = 1, nb_harmo 775 IF ( .NOT. ln_tide_dia ) THEN 776 pot_astro(:,:) = pot_astro(:,:) + amp_pot(:,:,jk) * COS( zwt(jk) + phi_pot(:,:,jk) ) 777 ELSE 778 pot_astro_comp(:,:) = amp_pot(:,:,jk) * COS( zwt(jk) + phi_pot(:,:,jk) ) 779 pot_astro(:,:) = pot_astro(:,:) + pot_astro_comp(:,:) 780 IF ( iom_use( "tide_pot_" // TRIM( tide_harmonics(jk)%cname_tide ) ) ) THEN ! Output tidal potential (incl. load potential) 781 IF ( ln_tide_ramp ) pot_astro_comp(:,:) = zramp * pot_astro_comp(:,:) 782 CALL iom_put( "tide_pot_" // TRIM( tide_harmonics(jk)%cname_tide ), pot_astro_comp(:,:) ) 783 END IF 784 END IF 785 END DO 786 ! 787 IF ( ln_tide_ramp ) pot_astro(:,:) = zramp * pot_astro(:,:) 788 ! 789 IF( ln_tide_dia ) THEN ! Output total tidal potential (incl. load potential) 790 IF ( iom_use( "tide_pot" ) ) CALL iom_put( "tide_pot", pot_astro(:,:) + rn_scal_load * sshn(:,:) ) 791 END IF 774 792 ! 775 793 END SUBROUTINE upd_tide
Note: See TracChangeset
for help on using the changeset viewer.