Changeset 10772
- Timestamp:
- 2019-03-16T11:17:25+01:00 (6 years ago)
- Location:
- NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE
- Files:
-
- 1 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/BDY/bdytides.F90
r10068 r10772 18 18 USE phycst ! physical constants 19 19 USE bdy_oce ! ocean open boundary conditions 20 USE tide ini!20 USE tide_mod ! 21 21 USE daymod ! calendar 22 22 ! -
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/SBC/sbctide.F90
r10068 r10772 10 10 USE phycst ! physical constant 11 11 USE daymod ! calandar 12 USE tide ini!12 USE tide_mod ! 13 13 ! 14 14 USE in_out_manager ! I/O units -
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/SBC/updtide.F90
r10068 r10772 13 13 USE phycst ! physical constant 14 14 USE sbctide ! tide potential variable 15 USE tide ini, ONLY: ln_tide_ramp, rdttideramp15 USE tide_mod, ONLY: ln_tide_ramp, rdttideramp 16 16 17 17 IMPLICIT NONE -
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/TDE/tide_mod.F90
r10752 r10772 6 6 !! History : 1.0 ! 2007 (O. Le Galloudec) Original code 7 7 !!---------------------------------------------------------------------- 8 USE oce ! ocean dynamics and tracers variables 8 9 USE dom_oce ! ocean space and time domain 9 10 USE phycst ! physical constant 10 11 USE daymod ! calendar 12 ! 13 USE in_out_manager ! I/O units 14 USE iom ! xIOs server 15 USE ioipsl ! NetCDF IPSL library 16 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 11 17 12 18 IMPLICIT NONE 13 19 PRIVATE 14 20 21 PUBLIC tide_init 15 22 PUBLIC tide_harmo ! called by tideini and diaharm modules 16 23 PUBLIC tide_init_Wave ! called by tideini and diaharm modules … … 29 36 TYPE(tide), PUBLIC, DIMENSION(jpmax_harmo) :: Wave !: 30 37 38 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) :: omega_tide !: 39 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) :: v0tide !: 40 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) :: utide !: 41 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) :: ftide !: 42 43 LOGICAL , PUBLIC :: ln_tide !: 44 LOGICAL , PUBLIC :: ln_tide_pot !: 45 LOGICAL , PUBLIC :: ln_read_load !: 46 LOGICAL , PUBLIC :: ln_scal_load !: 47 LOGICAL , PUBLIC :: ln_tide_ramp !: 48 INTEGER , PUBLIC :: nb_harmo !: 49 INTEGER , PUBLIC :: kt_tide !: 50 REAL(wp), PUBLIC :: rdttideramp !: 51 REAL(wp), PUBLIC :: rn_scal_load !: 52 CHARACTER(lc), PUBLIC :: cn_tide_load !: 53 54 INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) :: ntide !: 55 31 56 REAL(wp) :: sh_T, sh_s, sh_h, sh_p, sh_p1 ! astronomic angles 32 57 REAL(wp) :: sh_xi, sh_nu, sh_nuprim, sh_nusec, sh_R ! … … 39 64 !!---------------------------------------------------------------------- 40 65 CONTAINS 66 67 SUBROUTINE tide_init 68 !!---------------------------------------------------------------------- 69 !! *** ROUTINE tide_init *** 70 !!---------------------------------------------------------------------- 71 INTEGER :: ji, jk 72 CHARACTER(LEN=4), DIMENSION(jpmax_harmo) :: clname 73 INTEGER :: ios ! Local integer output status for namelist read 74 ! 75 NAMELIST/nam_tide/ln_tide, ln_tide_pot, ln_scal_load, ln_read_load, cn_tide_load, & 76 & ln_tide_ramp, rn_scal_load, rdttideramp, clname 77 !!---------------------------------------------------------------------- 78 ! 79 ! Read Namelist nam_tide 80 REWIND( numnam_ref ) ! Namelist nam_tide in reference namelist : Tides 81 READ ( numnam_ref, nam_tide, IOSTAT = ios, ERR = 901) 82 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_tide in reference namelist', lwp ) 83 ! 84 REWIND( numnam_cfg ) ! Namelist nam_tide in configuration namelist : Tides 85 READ ( numnam_cfg, nam_tide, IOSTAT = ios, ERR = 902 ) 86 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_tide in configuration namelist', lwp ) 87 IF(lwm) WRITE ( numond, nam_tide ) 88 ! 89 IF( ln_tide ) THEN 90 IF (lwp) THEN 91 WRITE(numout,*) 92 WRITE(numout,*) 'tide_init : Initialization of the tidal components' 93 WRITE(numout,*) '~~~~~~~~~ ' 94 WRITE(numout,*) ' Namelist nam_tide' 95 WRITE(numout,*) ' Use tidal components ln_tide = ', ln_tide 96 WRITE(numout,*) ' Apply astronomical potential ln_tide_pot = ', ln_tide_pot 97 WRITE(numout,*) ' Use scalar approx. for load potential ln_scal_load = ', ln_scal_load 98 WRITE(numout,*) ' Read load potential from file ln_read_load = ', ln_read_load 99 WRITE(numout,*) ' Apply ramp on tides at startup ln_tide_ramp = ', ln_tide_ramp 100 WRITE(numout,*) ' Fraction of SSH used in scal. approx. rn_scal_load = ', rn_scal_load 101 WRITE(numout,*) ' Duration (days) of ramp rdttideramp = ', rdttideramp 102 ENDIF 103 ELSE 104 rn_scal_load = 0._wp 105 106 IF(lwp) WRITE(numout,*) 107 IF(lwp) WRITE(numout,*) 'tide_init : tidal components not used (ln_tide = F)' 108 IF(lwp) WRITE(numout,*) '~~~~~~~~~ ' 109 RETURN 110 ENDIF 111 ! 112 CALL tide_init_Wave 113 ! 114 nb_harmo=0 115 DO jk = 1, jpmax_harmo 116 DO ji = 1,jpmax_harmo 117 IF( TRIM(clname(jk)) == Wave(ji)%cname_tide ) nb_harmo = nb_harmo + 1 118 END DO 119 END DO 120 ! 121 ! Ensure that tidal components have been set in namelist_cfg 122 IF( nb_harmo == 0 ) CALL ctl_stop( 'tide_init : No tidal components set in nam_tide' ) 123 ! 124 IF( ln_read_load.AND.(.NOT.ln_tide_pot) ) & 125 & CALL ctl_stop('ln_read_load requires ln_tide_pot') 126 IF( ln_scal_load.AND.(.NOT.ln_tide_pot) ) & 127 & CALL ctl_stop('ln_scal_load requires ln_tide_pot') 128 IF( ln_scal_load.AND.ln_read_load ) & 129 & CALL ctl_stop('Choose between ln_scal_load and ln_read_load') 130 IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rdttideramp) ) & 131 & CALL ctl_stop('rdttideramp must be lower than run duration') 132 IF( ln_tide_ramp.AND.(rdttideramp<0.) ) & 133 & CALL ctl_stop('rdttideramp must be positive') 134 ! 135 ALLOCATE( ntide(nb_harmo) ) 136 DO jk = 1, nb_harmo 137 DO ji = 1, jpmax_harmo 138 IF( TRIM(clname(jk)) == Wave(ji)%cname_tide ) THEN 139 ntide(jk) = ji 140 EXIT 141 ENDIF 142 END DO 143 END DO 144 ! 145 ALLOCATE( omega_tide(nb_harmo), v0tide (nb_harmo), & 146 & utide (nb_harmo), ftide (nb_harmo) ) 147 kt_tide = nit000 148 ! 149 IF (.NOT.ln_scal_load ) rn_scal_load = 0._wp 150 ! 151 END SUBROUTINE tide_init 152 41 153 42 154 SUBROUTINE tide_init_Wave -
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/nemogcm.F90
r10588 r10772 46 46 USE closea ! treatment of closed seas (for ln_closea) 47 47 USE usrdef_nam ! user defined configuration 48 USE tide ini ! tidal components initialization (tide_iniroutine)48 USE tide_mod, ONLY : tide_init ! tidal components initialization (tide_init routine) 49 49 USE bdy_oce, ONLY : ln_bdy 50 50 USE bdyini ! open boundary cond. setting (bdy_init routine)
Note: See TracChangeset
for help on using the changeset viewer.