- Timestamp:
- 2017-12-12T16:42:29+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_METO_MERCATOR_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
r7646 r8993 16 16 USE ioipsl ! NetCDF IPSL library 17 17 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 18 USE wrk_nemo ! 18 19 19 20 IMPLICIT NONE … … 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_read_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_read_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 from file' 147 WRITE(numout,*) '~~~~~~~~~~~~~~ ' 148 ENDIF 149 ! 150 CALL wrk_alloc( jpi, jpj, zti, ztr ) 151 ! 152 CALL iom_open ( cn_tide_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
Note: See TracChangeset
for help on using the changeset viewer.