Changeset 8363 for branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM
- Timestamp:
- 2017-07-24T09:59:20+02:00 (7 years ago)
- Location:
- branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/CONFIG/SHARED/namelist_ref
r8284 r8363 526 526 &nam_tide ! tide parameters 527 527 !----------------------------------------------------------------------- 528 ln_tide = .false. 529 ln_tide_pot = .true. ! use tidal potential forcing 530 ln_tide_ramp= .false. ! 531 rdttideramp = 0. ! 532 clname(1) = 'DUMMY' ! name of constituent - all tidal components must be set in namelist_cfg 528 ln_tide = .false. 529 ln_tide_load = .false. ! read load potential 530 filetide_load = 'tide_LOAD_grid_T.nc' ! filename for load potential 531 ln_tide_pot = .true. ! use tidal potential forcing 532 ln_tide_ramp = .false. ! 533 rdttideramp = 0. ! 534 clname(1) = 'DUMMY' ! name of constituent - all tidal components must be set in namelist_cfg 533 535 / 534 536 !----------------------------------------------------------------------- -
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
r7646 r8363 11 11 USE daymod ! calandar 12 12 USE tideini ! 13 USE wrk_nemo ! Memory allocation 13 14 ! 14 15 USE in_out_manager ! I/O units … … 30 31 31 32 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: amp_pot, phi_pot 32 33 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: amp_load, phi_load 34 33 35 !!---------------------------------------------------------------------- 34 36 !! NEMO/OPA 3.5 , NEMO Consortium (2013) … … 49 51 IF( nsec_day == NINT(0.5_wp * rdt) .OR. kt == nit000 ) THEN ! start a new day 50 52 ! 51 IF( kt == nit000 ) 53 IF( kt == nit000 )THEN 52 54 ALLOCATE( amp_pot(jpi,jpj,nb_harmo), & 53 55 & phi_pot(jpi,jpj,nb_harmo), pot_astro(jpi,jpj) ) 56 IF( ln_tide_load )THEN 57 ALLOCATE( amp_load(jpi,jpj,nb_harmo), phi_load(jpi,jpj,nb_harmo) ) 58 CALL tide_init_load 59 ENDIF 54 60 ENDIF 55 61 ! 56 amp_pot(:,:,:) = 0._wp 57 phi_pot(:,:,:) = 0._wp 62 IF( ln_tide_load )THEN 63 amp_pot(:,:,:) = amp_load(:,:,:) 64 phi_pot(:,:,:) = phi_load(:,:,:) 65 ELSE 66 amp_pot(:,:,:) = 0._wp 67 phi_pot(:,:,:) = 0._wp 68 ENDIF 58 69 pot_astro(:,:) = 0._wp 59 70 ! … … 101 112 DO ji = 1, jpi 102 113 DO jj = 1, jpj 103 ztmp1 = amp_pot(ji,jj,jk) * COS( phi_pot(ji,jj,jk) )104 ztmp2 = - amp_pot(ji,jj,jk) * SIN( phi_pot(ji,jj,jk) )114 ztmp1 = ftide(jk) * amp_pot(ji,jj,jk) * COS( phi_pot(ji,jj,jk) + v0tide(jk) + utide(jk) ) 115 ztmp2 = -ftide(jk) * amp_pot(ji,jj,jk) * SIN( phi_pot(ji,jj,jk) + v0tide(jk) + utide(jk) ) 105 116 zlat = gphit(ji,jj)*rad !! latitude en radian 106 117 zlon = glamt(ji,jj)*rad !! longitude en radian … … 123 134 END SUBROUTINE tide_init_potential 124 135 136 SUBROUTINE tide_init_load 137 !!---------------------------------------------------------------------- 138 !! *** ROUTINE tide_init_load *** 139 !!---------------------------------------------------------------------- 140 INTEGER :: inum ! Logical unit of input file 141 INTEGER :: ji, jj, itide ! dummy loop indices 142 REAL(wp), POINTER, DIMENSION(:,:) :: ztr, zti !: workspace to read in tidal harmonics data 143 !!---------------------------------------------------------------------- 144 IF(lwp) THEN 145 WRITE(numout,*) 146 WRITE(numout,*) 'tide_init_load : Initialization of load potential' 147 WRITE(numout,*) '~~~~~~~~~~~~~~ ' 148 ENDIF 149 ! 150 CALL wrk_alloc( jpi, jpj, zti, ztr ) 151 ! 152 CALL iom_open ( filetide_load , inum ) 153 ! 154 DO itide = 1, nb_harmo 155 CALL iom_get ( inum, jpdom_data,TRIM(Wave(ntide(itide))%cname_tide)//'_z1', ztr(:,:) ) 156 CALL iom_get ( inum, jpdom_data,TRIM(Wave(ntide(itide))%cname_tide)//'_z2', zti(:,:) ) 157 ! 158 DO ji=1,jpi 159 DO jj=1,jpj 160 amp_load(ji,jj,itide) = SQRT( ztr(ji,jj)**2. + zti(ji,jj)**2. ) 161 phi_load(ji,jj,itide) = ATAN2(-zti(ji,jj), ztr(ji,jj) ) 162 END DO 163 END DO 164 ! 165 END DO 166 CALL iom_close( inum ) 167 ! 168 CALL wrk_dealloc( jpi, jpj, zti, ztr ) 169 ! 170 END SUBROUTINE tide_init_load 171 125 172 !!====================================================================== 126 173 END MODULE sbctide -
branches/2017/dev_r8329_ENHANCE14_SAL/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90
r7646 r8363 27 27 LOGICAL , PUBLIC :: ln_tide !: 28 28 LOGICAL , PUBLIC :: ln_tide_pot !: 29 LOGICAL , PUBLIC :: ln_tide_load !: 29 30 LOGICAL , PUBLIC :: ln_tide_ramp !: 30 31 INTEGER , PUBLIC :: nb_harmo !: 31 32 INTEGER , PUBLIC :: kt_tide !: 32 33 REAL(wp), PUBLIC :: rdttideramp !: 33 34 CHARACTER(len=80), PUBLIC :: filetide_load !: filename for input load potential 35 34 36 INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) :: ntide !: 35 37 … … 49 51 INTEGER :: ios ! Local integer output status for namelist read 50 52 ! 51 NAMELIST/nam_tide/ln_tide, ln_tide_ pot, ln_tide_ramp, rdttideramp, clname53 NAMELIST/nam_tide/ln_tide, ln_tide_load, filetide_load, ln_tide_pot, ln_tide_ramp, rdttideramp, clname 52 54 !!---------------------------------------------------------------------- 53 55 ! … … 70 72 WRITE(numout,*) ' Use tidal components : ln_tide = ', ln_tide 71 73 WRITE(numout,*) ' Apply astronomical potential : ln_tide_pot = ', ln_tide_pot 74 WRITE(numout,*) ' Read load potential : ln_tide_load = ', ln_tide_load 72 75 WRITE(numout,*) ' nb_harmo = ', nb_harmo 73 76 WRITE(numout,*) ' ln_tide_ramp = ', ln_tide_ramp … … 93 96 IF( nb_harmo == 0 ) CALL ctl_stop( 'tide_init : No tidal components set in nam_tide' ) 94 97 ! 98 IF( ln_tide_load.AND.(.NOT.ln_tide_pot) ) & 99 & CALL ctl_stop('with load potential, activate astronomical potential') 95 100 IF( ln_tide_ramp.AND.((nitend-nit000+1)*rdt/rday < rdttideramp) ) & 96 101 & CALL ctl_stop('rdttideramp must be lower than run duration')
Note: See TracChangeset
for help on using the changeset viewer.