- Timestamp:
- 2016-11-21T11:23:19+01:00 (8 years ago)
- Location:
- branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/CONFIG/SHARED/namelist_ref
r7167 r7279 250 250 ! =1 global mean of e-p-r set to zero at each time step 251 251 ! =2 annual global mean of e-p-r set to zero 252 ln_wave = .false. ! Activate coupling with wave ( either Stokes Drift or Drag coefficient, or both) (T => fill namsbc_wave)253 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => fill namsbc_wave)254 ln_sdw = .false. ! Computation of 3D stokes drift (T => fill namsbc_wave)255 ln_tauoc= .false. ! Activate ocean stress modified by external wave induced stress (T => fill namsbc_wave)256 ln_stcor= .false. ! Activate Stokes Coriolis term (T => fill namsbc_wave)252 ln_wave = .false. ! Activate coupling with wave (T => fill namsbc_wave) 253 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) 254 ln_sdw = .false. ! Read 2D Surf Stokes Drift & Computation of 3D stokes drift (T => ln_wave=.true. & fill namsbc_wave) 255 ln_tauoc= .false. ! Activate ocean stress modified by external wave induced stress (T => ln_wave=.true. & fill namsbc_wave) 256 ln_stcor= .false. ! Activate Stokes Coriolis term (T => ln_wave=.true. & ln_sdw=.true. & fill namsbc_wave) 257 257 nn_lsm = 0 ! =0 land/sea mask for input fields is not applied (keep empty land/sea mask filename field) , 258 258 ! =1:n number of iterations of land/sea mask application for input fields (fill land/sea mask filename field) … … 351 351 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 352 352 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 353 sn_snd_crtw = 'none' , 'no' , '' , '' , 'U,V' 354 sn_snd_ifrac = 'none' , 'no' , '' , '' , '' 355 sn_snd_wlev = 'coupled' , 'no' , '' , '' , '' 353 356 ! receive 354 357 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' … … 362 365 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 363 366 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 367 sn_rcv_hsig = 'none' , 'no' , '' , '' , '' 368 sn_rcv_iceflx = 'none' , 'no' , '' , '' , '' 369 sn_rcv_mslp = 'none' , 'no' , '' , '' , '' 370 sn_rcv_phioc = 'none' , 'no' , '' , '' , '' 371 sn_rcv_sdrfx = 'none' , 'no' , '' , '' , '' 372 sn_rcv_sdrfy = 'none' , 'no' , '' , '' , '' 373 sn_rcv_wper = 'none' , 'no' , '' , '' , '' 374 sn_rcv_wnum = 'none' , 'no' , '' , '' , '' 375 sn_rcv_wstrf = 'none' , 'no' , '' , '' , '' 376 sn_rcv_wdrag = 'none' , 'no' , '' , '' , '' 364 377 ! 365 378 nn_cplmodel = 1 ! Maximum number of models to/from which NEMO is potentialy sending/receiving data … … 917 930 ln_zdfexp = .false. ! time-stepping: split-explicit (T) or implicit (F) time stepping 918 931 nn_zdfexp = 3 ! number of sub-timestep for ln_zdfexp=T 919 ln_zdfqiao = .false. ! Enhanced wave vertical mixing Qiao (2010) 932 ln_zdfqiao = .false. ! Enhanced wave vertical mixing Qiao (2010) (T => ln_wave=.true. & ln_sdw=.true. & fill namsbc_wave) 920 933 / 921 934 !----------------------------------------------------------------------- -
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/DYN/dynstcor.F90
r7167 r7279 77 77 ENDDO 78 78 ! 79 IF( nn_timing == 1 ) CALL timing_stop('dyn st_cor')79 IF( nn_timing == 1 ) CALL timing_stop('dyn_stcor') 80 80 ! 81 81 END SUBROUTINE dyn_stcor -
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/cpl_oasis3.F90
r7166 r7279 66 66 INTEGER :: nsnd ! total number of fields sent 67 67 INTEGER :: ncplmodel ! Maximum number of models to/from which NEMO is potentialy sending/receiving data 68 INTEGER, PUBLIC, PARAMETER :: nmaxfld=5 0! Maximum number of coupling fields68 INTEGER, PUBLIC, PARAMETER :: nmaxfld=55 ! Maximum number of coupling fields 69 69 INTEGER, PUBLIC, PARAMETER :: nmaxcat=5 ! Maximum number of coupling fields 70 70 INTEGER, PUBLIC, PARAMETER :: nmaxcpl=5 ! Maximum number of coupling fields -
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r7166 r7279 737 737 738 738 !! Neutral coefficients at 10m: 739 IF( ln_ cdgw ) THEN ! wave drag case739 IF( ln_wave .AND. ln_cdgw ) THEN ! wave drag case 740 740 cdn_wave(:,:) = cdn_wave(:,:) + rsmall * ( 1._wp - tmask(:,:,1) ) 741 741 ztmp0 (:,:) = cdn_wave(:,:) … … 783 783 END IF 784 784 785 IF( ln_ cdgw ) THEN ! surface wave case785 IF( ln_wave .AND. ln_cdgw ) THEN ! surface wave case 786 786 sqrt_Cd = vkarmn / ( vkarmn / sqrt_Cd_n10 - zpsi_m_u ) 787 787 Cd = sqrt_Cd * sqrt_Cd -
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r7168 r7279 347 347 ! 348 348 ! Vectors: change of sign at north fold ONLY if on the local grid 349 IF( TRIM( sn_rcv_tau%cldes ) == 'oce only' .OR. TRIM(sn_rcv_tau%cldes ) == 'oce and ice') THEN ! avoid working with the atmospheric fields if they are not coupled 349 350 IF( TRIM( sn_rcv_tau%clvor ) == 'local grid' ) srcv(jpr_otx1:jpr_itz2)%nsgn = -1. 350 351 … … 414 415 srcv(jpr_ity1)%clgrid = 'V' ! i.e. it is always at U- & V-points for i- & j-comp. resp. 415 416 ENDIF 417 ENDIF 416 418 417 419 ! ! ------------------------- ! … … 899 901 IF( ln_dm2dc .AND. ln_cpl .AND. ncpl_qsr_freq /= 86400 ) & 900 902 & CALL ctl_stop( 'sbc_cpl_init: diurnal cycle reconstruction (ln_dm2dc) needs daily couping for solar radiation' ) 901 ncpl_qsr_freq = 86400 / ncpl_qsr_freq903 IF( ln_dm2dc .AND. ln_cpl ) ncpl_qsr_freq = 86400 / ncpl_qsr_freq 902 904 903 905 CALL wrk_dealloc( jpi,jpj, zacs, zaos ) -
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r7193 r7279 89 89 & ln_blk_mfs, ln_apr_dyn, nn_ice, nn_ice_embd, ln_dm2dc , ln_rnf , & 90 90 & ln_ssr , nn_isf , nn_fwb, ln_cdgw , ln_wave , ln_sdw , & 91 & ln_tauoc , ln_stcor , nn_lsm, nn_limflx , nn_components, ln_cpl , & 92 & ln_zdfqiao 91 & ln_tauoc , ln_stcor , nn_lsm, nn_limflx , nn_components, ln_cpl 93 92 INTEGER :: ios 94 93 INTEGER :: ierr, ierr0, ierr1, ierr2, ierr3, jpm … … 133 132 WRITE(numout,*) ' ocean-atmosphere coupled formulation ln_cpl = ', ln_cpl 134 133 WRITE(numout,*) ' forced-coupled mixed formulation ln_mixcpl = ', ln_mixcpl 134 WRITE(numout,*) ' wave physics ln_wave = ', ln_wave 135 WRITE(numout,*) ' Stokes drift corr. to vert. velocity ln_sdw = ', ln_sdw 136 WRITE(numout,*) ' wave modified ocean stress ln_tauoc = ', ln_tauoc 137 WRITE(numout,*) ' Stokes coriolis term ln_stcor = ', ln_stcor 138 WRITE(numout,*) ' neutral drag coefficient (CORE, MFS) ln_cdgw = ', ln_cdgw 135 139 WRITE(numout,*) ' OASIS coupling (with atm or sas) lk_oasis = ', lk_oasis 136 140 WRITE(numout,*) ' components of your executable nn_components = ', nn_components … … 218 222 IF ( ln_wave ) THEN 219 223 !Activated wave module but neither drag nor stokes drift activated 220 IF ( .NOT.(ln_cdgw .OR. ln_sdw) ) THEN221 CALL ctl_warn( 'Ask for wave coupling but nor drag coefficient (ln_cdgw=F) neither stokes drift activated (ln_sdw=F)')224 IF ( .NOT.(ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor ) ) THEN 225 CALL ctl_warn( 'Ask for wave coupling but ln_cdgw=F, ln_sdw=F, ln_tauoc=F, ln_stcor=F') 222 226 !drag coefficient read from wave model definable only with mfs bulk formulae and core 223 227 ELSEIF (ln_cdgw .AND. .NOT.(ln_blk_mfs .OR. ln_blk_core) ) THEN 224 228 CALL ctl_stop( 'drag coefficient read from wave model definable only with mfs bulk formulae and core') 229 ELSEIF (ln_stcor .AND. .NOT. ln_sdw) THEN 230 CALL ctl_stop( 'Stokes-Coriolis term calculated only if activated Stokes Drift ln_sdw=T') 225 231 ENDIF 226 232 ELSE 227 IF ( ln_cdgw .OR. ln_sdw )&233 IF ( ln_cdgw .OR. ln_sdw .OR. ln_tauoc .OR. ln_stcor ) & 228 234 & CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but asked coupling ', & 229 & 'with drag coefficient (ln_cdgw =T) or Stokes drift (ln_sdw=T) ') 235 & 'with drag coefficient (ln_cdgw =T) ' , & 236 & 'or Stokes Drift (ln_sdw=T) ' , & 237 & 'or ocean stress modification due to waves (ln_tauoc=T) ', & 238 & 'or Stokes-Coriolis term (ln_stcori=T)' ) 230 239 ENDIF 231 240 ! ! Choice of the Surface Boudary Condition (set nsbc) … … 362 371 CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! OPA-SAS coupling: OPA receiving fields from SAS 363 372 END SELECT 364 IF ( ln_wave .AND. ln_tauoc) THEN373 IF ( ln_wave .AND. ln_tauoc) THEN ! Wave stress subctracted 365 374 utau(:,:) = utau(:,:)*tauoc_wave(:,:) 366 375 vtau(:,:) = vtau(:,:)*tauoc_wave(:,:) … … 369 378 SELECT CASE( nsbc ) 370 379 CASE( 0,1,2,3,5,-1 ) ; 371 IF(lwp ) WRITE(numout,*) 'WARNING: You are subtracting the wave stress to the ocean. &380 IF(lwp .AND. kt == nit000 ) WRITE(numout,*) 'WARNING: You are subtracting the wave stress to the ocean. & 372 381 & If not requested select ln_tauoc=.false' 373 382 END SELECT -
branches/UKMO/r5936_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/step.F90
r7168 r7279 134 134 IF( lk_zdfgls ) CALL zdf_gls( kstp ) ! GLS closure scheme for Kz 135 135 IF( ln_zdfqiao ) THEN 136 CALL zdf_qiao(kstp ) ! Qiao vertical mixing 137 DO jk = 1, jpkm1 138 DO jj = 1, jpj 139 DO ji = 1, jpi 140 avmu(ji,jj,jk) = (avmu(ji,jj,jk) + QBvu(ji,jj,jk)) * umask(ji,jj,jk) 141 avmv(ji,jj,jk) = (avmv(ji,jj,jk) + QBvv(ji,jj,jk)) * vmask(ji,jj,jk) 142 avt( ji,jj,jk) = (avt( ji,jj,jk) + QBv(ji,jj,jk)) * tmask(ji,jj,jk) 136 !Activated Qiao enhanced turbulence but neither ln_wave or ln_sdw are activated 137 IF ( .NOT.( ln_wave .AND. ln_sdw ) ) THEN 138 CALL ctl_stop ( 'Ask for wave Qiao enhanced turbulence but ln_wave and ln_sdw have to be activated') 139 ELSE 140 CALL zdf_qiao(kstp ) ! Qiao vertical mixing 141 DO jk = 1, jpkm1 142 DO jj = 1, jpj 143 DO ji = 1, jpi 144 avmu(ji,jj,jk) = (avmu(ji,jj,jk) + QBvu(ji,jj,jk)) * umask(ji,jj,jk) 145 avmv(ji,jj,jk) = (avmv(ji,jj,jk) + QBvv(ji,jj,jk)) * vmask(ji,jj,jk) 146 avt( ji,jj,jk) = (avt( ji,jj,jk) + QBv(ji,jj,jk)) * tmask(ji,jj,jk) 147 END DO 148 END DO 143 149 END DO 144 END DO 145 END DO 150 ENDIF 146 151 ENDIF 147 152 ! … … 231 236 CALL dyn_adv ( kstp ) ! advection (vector or flux form) 232 237 CALL dyn_vor ( kstp ) ! vorticity term including Coriolis 233 IF( ln_stcor ) CALL dyn_stcor ( kstp ) ! Stokes-Coriolis forcing 238 IF( ln_wave .AND. ln_sdw .AND. ln_stcor ) & 239 & CALL dyn_stcor ( kstp ) ! Stokes-Coriolis forcing 234 240 CALL dyn_ldf ( kstp ) ! lateral mixing 235 241 CALL dyn_hpg ( kstp ) ! horizontal gradient of Hydrostatic pressure
Note: See TracChangeset
for help on using the changeset viewer.