Changeset 4352 for branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC
- Timestamp:
- 2014-01-17T11:35:16+01:00 (10 years ago)
- Location:
- branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r4351 r4352 53 53 LOGICAL , PUBLIC :: ln_sdw !: true if 3d stokes drift from wave model 54 54 ! 55 REAL(wp), PUBLIC :: rn_rrelwind = 1.0 !: relative wind ratio (1.0 means surface currents are subtracted, 0.0 means no current)56 55 LOGICAL , PUBLIC :: ln_wavetke = .FALSE. !: true if wave parameters are read 57 56 LOGICAL , PUBLIC :: ln_stcor = .FALSE. !: true if Stokes-Coriolis forcing is included -
branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r4351 r4352 140 140 TYPE(FLD_N) :: sn_tdif ! " " 141 141 NAMELIST/namsbc_core/ cn_dir , ln_2m , ln_taudif, rn_pfac, rn_efac, rn_vfac, & 142 & sn_wndi, sn_wndj, sn_humi , sn_qsr , & 143 & sn_ccov, ln_cdec, ln_cldcov, rn_rrelwind 144 & sn_qlw , sn_tair, sn_prec , sn_snow, & 142 & sn_wndi, sn_wndj, sn_humi , sn_qsr , ln_cdec, & 143 & sn_qlw , sn_tair, sn_prec , sn_snow, & 145 144 & sn_tdif, rn_zqt , ln_bulk2z, rn_zu 146 145 !!--------------------------------------------------------------------- … … 303 302 zwnd_i(ji,jj) = wspd_wavepar(ji,jj) * SIN(ztheta) 304 303 zwnd_j(ji,jj) = wspd_wavepar(ji,jj) * COS(ztheta) 305 ! Correct for surface current, 0.0 <= rn_ rrelwind<= 1.0306 zwnd_i(ji,jj) = (zwnd_i(ji,jj) - 0.5*rn_ rrelwind*(pu(ji-1,jj ) + pu(ji,jj)))307 zwnd_j(ji,jj) = (zwnd_j(ji,jj) - 0.5*rn_ rrelwind*(pv(ji ,jj-1) + pv(ji,jj)))304 ! Correct for surface current, 0.0 <= rn_vfac <= 1.0 305 zwnd_i(ji,jj) = (zwnd_i(ji,jj) - 0.5*rn_vfac*(pu(ji-1,jj ) + pu(ji,jj))) 306 zwnd_j(ji,jj) = (zwnd_j(ji,jj) - 0.5*rn_vfac*(pv(ji ,jj-1) + pv(ji,jj))) 308 307 END DO 309 308 END DO … … 311 310 DO jj = 2, jpjm1 312 311 DO ji = fs_2, fs_jpim1 ! vect. opt. 313 ! Correct for surface current, 0.0 <= rn_ rrelwind<= 1.0314 zwnd_i(ji,jj) = ( sf(jp_wndi)%fnow(ji,jj,1) - 0.5*rn_ rrelwind*( pu(ji-1,jj ) + pu(ji,jj) ) )315 zwnd_j(ji,jj) = ( sf(jp_wndj)%fnow(ji,jj,1) - 0.5*rn_ rrelwind*( pv(ji ,jj-1) + pv(ji,jj) ) )312 ! Correct for surface current, 0.0 <= rn_vfac <= 1.0 313 zwnd_i(ji,jj) = ( sf(jp_wndi)%fnow(ji,jj,1) - 0.5*rn_vfac*( pu(ji-1,jj ) + pu(ji,jj) ) ) 314 zwnd_j(ji,jj) = ( sf(jp_wndj)%fnow(ji,jj,1) - 0.5*rn_vfac*( pv(ji ,jj-1) + pv(ji,jj) ) ) 316 315 END DO 317 316 END DO -
branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r4351 r4352 51 51 USE sbcwave ! Wave module 52 52 USE sbcwave_ecmwf ! ECMWF wave module 53 USE sbcwavelim ! Wave for LIM module54 53 55 54 IMPLICIT NONE … … 142 141 WRITE(numout,*) ' TKE wave breaking BC from wave model ln_wavetke = ', ln_wavetke 143 142 WRITE(numout,*) ' Wave-modified stress from wave model ln_tauoc = ', ln_tauoc 144 WRITE(numout,*) ' Wave-modified stress min. sea. frac rn_taouc_cimin = ', rn_taouc_cimin145 143 ENDIF 146 144 -
branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r4292 r4352 31 31 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_cd ! structure of input fields (file informations, fields read) Drag Coefficient 32 32 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_sd ! structure of input fields (file informations, fields read) Stokes Drift 33 REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:) :: cdn_wave34 33 REAL(wp),ALLOCATABLE,DIMENSION (:,:) :: usd2d,vsd2d,uwavenum,vwavenum 35 34 REAL(wp),PUBLIC,ALLOCATABLE,DIMENSION (:,:,:) :: usd3d,vsd3d,wsd3d … … 61 60 USE divcur 62 61 USE wrk_nemo 62 USE sbc_oce, ONLY : cdn_wave 63 63 #if defined key_bdy 64 64 USE bdy_oce, ONLY : bdytmask … … 100 100 IF( sn_cdg%ln_tint ) ALLOCATE( sf_cd(1)%fdta(jpi,jpj,1,2) ) 101 101 CALL fld_fill( sf_cd, (/ sn_cdg /), cn_dir, 'sbc_wave', 'Wave module ', 'namsbc_wave' ) 102 ALLOCATE( cdn_wave(jpi,jpj) )103 cdn_wave(:,:) = 0.0104 102 ENDIF 105 103 IF ( ln_sdw ) THEN -
branches/2013/dev_ECMWF_waves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave_ecmwf.F90
r4351 r4352 21 21 PRIVATE 22 22 23 PUBLIC sbc_wavepar ! 23 24 PUBLIC sbc_wave_ecmwf ! routine called in sbc_blk_core or sbc_blk_mfs 24 PUBLIC sbc_wavepar !25 25 26 26 INTEGER , PARAMETER :: jpfld_wavepar = 7 ! maximum number of fields to be read … … 48 48 CONTAINS 49 49 50 SUBROUTINE sbc_wave_ec wmf( kt )50 SUBROUTINE sbc_wave_ecmwf( kt ) 51 51 !!--------------------------------------------------------------------- 52 52 !! *** ROUTINE sbc_apr *** … … 77 77 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 78 78 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 79 sn_cdg = FLD_N( 'cdg_wave' , 1 ,'drag_coeff', .true. , .false. , 'daily' , '' , '')79 sn_cdg = FLD_N( 'cdg_wave' , 1. ,'drag_coeff', .true. , .false. , 'daily' , '' , '' , '' ) 80 80 cn_dir_cdg = './' ! directory in which the Patm data are 81 81 82 82 83 84 83 !!ACC REWIND( numnam ) !* read in namlist namsbc_wave_ecmwf 84 !!ACC READ ( numnam, namsbc_wave_ecmwf ) 85 85 ! 86 86 … … 144 144 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 145 145 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 146 sn_ust = FLD_N( 'ust' , 6 , 'ust' , .true. , .false. , 'monthly' , '' , '' )147 sn_vst = FLD_N( 'vst' , 6 , 'vst' , .true. , .false. , 'monthly' , '' , '' )148 sn_swh = FLD_N( 'swh' , 6 , 'swh' , .true. , .false. , 'monthly' , '' , '' )149 sn_mwp = FLD_N( 'mwp' , 6 , 'mwp' , .true. , .false. , 'monthly' , '' , '' )150 !sn_cdww = FLD_N( 'cdww' , 6 , 'cdww' , .true. , .false. , 'monthly' , '' , '' )151 sn_wspd = FLD_N( 'wspd' , 6 , 'wspd' , .true. , .false. , 'monthly' , '' , '' )152 sn_phioc = FLD_N( 'phioc' , 6 , 'phioc' , .true. , .false. , 'monthly' , '' , '' )153 sn_tauoc = FLD_N( 'tauoc' , 6 , 'tauoc' , .true. , .false. , 'monthly' , '' , '' )146 sn_ust = FLD_N( 'ust' , 6 , 'ust' , .true. , .false. , 'monthly' , '' , '' , '' ) 147 sn_vst = FLD_N( 'vst' , 6 , 'vst' , .true. , .false. , 'monthly' , '' , '' , '' ) 148 sn_swh = FLD_N( 'swh' , 6 , 'swh' , .true. , .false. , 'monthly' , '' , '' , '' ) 149 sn_mwp = FLD_N( 'mwp' , 6 , 'mwp' , .true. , .false. , 'monthly' , '' , '' , '' ) 150 !sn_cdww = FLD_N( 'cdww' , 6 , 'cdww' , .true. , .false. , 'monthly' , '' , '' , '' ) 151 sn_wspd = FLD_N( 'wspd' , 6 , 'wspd' , .true. , .false. , 'monthly' , '' , '' , '' ) 152 sn_phioc = FLD_N( 'phioc' , 6 , 'phioc' , .true. , .false. , 'monthly' , '' , '' , '' ) 153 sn_tauoc = FLD_N( 'tauoc' , 6 , 'tauoc' , .true. , .false. , 'monthly' , '' , '' , '' ) 154 154 cn_dir_wavepar = './' ! directory in which the wave data are found 155 155 156 157 156 !!ACC REWIND( numnam ) !* read in namlist namsbc_wavepar 157 !!ACC READ ( numnam, namsbc_wavepar ) 158 158 ! 159 159 slf_i(jp_ust) = sn_ust … … 201 201 END SUBROUTINE sbc_wavepar 202 202 203 END MODULE sbcwave 203 END MODULE sbcwave_ecmwf
Note: See TracChangeset
for help on using the changeset viewer.