Changeset 9033 for branches/2017/dev_merge_2017/NEMOGCM/NEMO
- Timestamp:
- 2017-12-14T11:29:10+01:00 (6 years ago)
- Location:
- branches/2017/dev_merge_2017/NEMOGCM/NEMO
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r9023 r9033 58 58 LOGICAL , PUBLIC :: ln_cdgw !: true if neutral drag coefficient from wave model 59 59 LOGICAL , PUBLIC :: ln_sdw !: true if 3d stokes drift from wave model 60 LOGICAL , PUBLIC :: ln_tau oc !: true if normalized stress from wave is used60 LOGICAL , PUBLIC :: ln_tauwoc !: true if normalized stress from wave is used 61 61 LOGICAL , PUBLIC :: ln_tauw !: true if ocean stress components from wave is used 62 62 LOGICAL , PUBLIC :: ln_stcor !: true if Stokes-Coriolis term is used -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90
r9019 r9033 236 236 IF ( ln_wave ) THEN 237 237 !Activated wave module but neither drag nor stokes drift activated 238 IF ( .NOT.(ln_cdgw .OR. ln_sdw .OR. ln_tau oc .OR. ln_stcor ) ) THEN239 CALL ctl_warn( 'Ask for wave coupling but ln_cdgw=F, ln_sdw=F, ln_tau oc=F, ln_stcor=F')238 IF ( .NOT.(ln_cdgw .OR. ln_sdw .OR. ln_tauwoc .OR. ln_stcor ) ) THEN 239 CALL ctl_warn( 'Ask for wave coupling but ln_cdgw=F, ln_sdw=F, ln_tauwoc=F, ln_stcor=F') 240 240 !drag coefficient read from wave model definable only with mfs bulk formulae and core 241 241 ELSEIF (ln_cdgw .AND. .NOT. ln_NCAR ) THEN … … 245 245 ENDIF 246 246 ELSE 247 IF ( ln_cdgw .OR. ln_sdw .OR. ln_tau oc .OR. ln_stcor ) &247 IF ( ln_cdgw .OR. ln_sdw .OR. ln_tauwoc .OR. ln_stcor ) & 248 248 & CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but asked coupling ', & 249 249 & 'with drag coefficient (ln_cdgw =T) ' , & 250 250 & 'or Stokes Drift (ln_sdw=T) ' , & 251 & 'or ocean stress modification due to waves (ln_tau oc=T) ', &251 & 'or ocean stress modification due to waves (ln_tauwoc=T) ', & 252 252 & 'or Stokes-Coriolis term (ln_stcori=T)' ) 253 253 ENDIF -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r9023 r9033 109 109 INTEGER, PARAMETER :: jpr_wper = 48 ! Mean wave period 110 110 INTEGER, PARAMETER :: jpr_wnum = 49 ! Mean wavenumber 111 INTEGER, PARAMETER :: jpr_tau oc = 50 ! Stress fraction adsorbed by waves111 INTEGER, PARAMETER :: jpr_tauwoc = 50 ! Stress fraction adsorbed by waves 112 112 INTEGER, PARAMETER :: jpr_wdrag = 51 ! Neutral surface drag coefficient 113 113 INTEGER, PARAMETER :: jpr_isf = 52 … … 179 179 TYPE(FLD_C) :: sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev 180 180 ! Received from waves 181 TYPE(FLD_C) :: sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_tau oc, &181 TYPE(FLD_C) :: sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_tauwoc, & 182 182 sn_rcv_wdrag, sn_rcv_wfreq 183 183 ! ! Other namelist parameters … … 252 252 & sn_rcv_w10m , sn_rcv_taumod, sn_rcv_tau , sn_rcv_dqnsdt, sn_rcv_qsr , & 253 253 & sn_snd_ifrac , sn_snd_crtw , sn_snd_wlev , sn_rcv_hsig , sn_rcv_phioc, & 254 & sn_rcv_sdrfx , sn_rcv_sdrfy , sn_rcv_wper , sn_rcv_wnum , sn_rcv_ wstrf, &254 & sn_rcv_sdrfx , sn_rcv_sdrfy , sn_rcv_wper , sn_rcv_wnum , sn_rcv_tauwoc, & 255 255 & sn_rcv_wdrag , sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf , sn_rcv_cal , & 256 256 & sn_rcv_iceflx, sn_rcv_co2 , nn_cplmodel , ln_usecplmask, sn_rcv_mslp , & … … 304 304 WRITE(numout,*)' Mean wave number = ', TRIM(sn_rcv_wnum%cldes ), ' (', TRIM(sn_rcv_wnum%clcat ), ')' 305 305 WRITE(numout,*)' Wave peak frequency = ', TRIM(sn_rcv_wfreq%cldes ), ' (', TRIM(sn_rcv_wfreq%clcat ), ')' 306 WRITE(numout,*)' Stress frac adsorbed by waves = ', TRIM(sn_rcv_tau oc%cldes ), ' (', TRIM(sn_rcv_tauoc%clcat ), ')'306 WRITE(numout,*)' Stress frac adsorbed by waves = ', TRIM(sn_rcv_tauwoc%cldes ), ' (', TRIM(sn_rcv_tauwoc%clcat ), ')' 307 307 WRITE(numout,*)' Stress components by waves = ', TRIM(sn_rcv_tauw%cldes ), ' (', TRIM(sn_rcv_tauw%clcat ), ')' 308 308 WRITE(numout,*)' Neutral surf drag coefficient = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')' … … 612 612 cpl_wnum = .TRUE. 613 613 ENDIF 614 srcv(jpr_tau oc)%clname = 'O_TauOce' ! stress fraction adsorbed by the wave615 IF( TRIM(sn_rcv_tau oc%cldes ) == 'coupled' ) THEN616 srcv(jpr_tau oc)%laction = .TRUE.617 cpl_tau oc = .TRUE.614 srcv(jpr_tauwoc)%clname = 'O_TauOce' ! stress fraction adsorbed by the wave 615 IF( TRIM(sn_rcv_tauwoc%cldes ) == 'coupled' ) THEN 616 srcv(jpr_tauwoc)%laction = .TRUE. 617 cpl_tauwoc = .TRUE. 618 618 ENDIF 619 619 srcv(jpr_tauwx)%clname = 'O_Tauwx' ! ocean stress from wave in the x direction … … 629 629 cpl_wdrag = .TRUE. 630 630 ENDIF 631 IF( srcv(jpr_tau oc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) &631 IF( srcv(jpr_tauwoc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) & 632 632 CALL ctl_stop( 'More than one method for modifying the ocean stress has been selected ', & 633 '(sn_rcv_tau oc=coupled and sn_rcv_tauw=coupled)' )633 '(sn_rcv_tauwoc=coupled and sn_rcv_tauw=coupled)' ) 634 634 ! 635 635 ! ! ------------------------------- ! … … 1303 1303 ! ! Vertical mixing Qiao ! 1304 1304 ! ! ========================= ! 1305 IF( srcv(jpr_wnum)%laction .AND. ln_zdf qiao) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1)1305 IF( srcv(jpr_wnum)%laction .AND. ln_zdfswm ) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 1306 1306 1307 1307 ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode … … 1314 1314 ! ! Stress adsorbed by waves ! 1315 1315 ! ! ========================= ! 1316 IF( srcv(jpr_tau oc)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_tauoc)%z3(:,:,1)1316 IF( srcv(jpr_tauwoc)%laction .AND. ln_tauwoc ) tauwoc_wave(:,:) = frcv(jpr_tauwoc)%z3(:,:,1) 1317 1317 1318 1318 ! ! ========================= ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r9023 r9033 96 96 & ln_traqsr, ln_dm2dc , & 97 97 & ln_rnf , nn_fwb , ln_ssr , ln_isf , ln_apr_dyn , & 98 & ln_wave , ln_cdgw , ln_sdw , ln_tau oc , ln_stcor , &98 & ln_wave , ln_cdgw , ln_sdw , ln_tauwoc , ln_stcor , & 99 99 & ln_tauw , nn_lsm, nn_sdrift 100 100 !!---------------------------------------------------------------------- … … 156 156 WRITE(numout,*) ' Stokes drift corr. to vert. velocity ln_sdw = ', ln_sdw 157 157 WRITE(numout,*) ' vertical parametrization nn_sdrift = ', nn_sdrift 158 WRITE(numout,*) ' wave modified ocean stress ln_tau oc = ', ln_tauoc158 WRITE(numout,*) ' wave modified ocean stress ln_tauwoc = ', ln_tauwoc 159 159 WRITE(numout,*) ' wave modified ocean stress component ln_tauw = ', ln_tauw 160 160 WRITE(numout,*) ' Stokes coriolis term ln_stcor = ', ln_stcor … … 166 166 CALL ctl_stop( 'The chosen nn_sdrift for Stokes drift vertical velocity must be 0, 1, or 2' ) 167 167 ENDIF 168 IF( ln_tau oc .AND. ln_tauw ) &168 IF( ln_tauwoc .AND. ln_tauw ) & 169 169 CALL ctl_stop( 'More than one method for modifying the ocean stress has been selected ', & 170 '(ln_tau oc=.true. and ln_tauw=.true.)' )171 IF( ln_tau oc ) &172 CALL ctl_warn( 'You are subtracting the wave stress to the ocean (ln_tau oc=.true.)' )170 '(ln_tauwoc=.true. and ln_tauw=.true.)' ) 171 IF( ln_tauwoc ) & 172 CALL ctl_warn( 'You are subtracting the wave stress to the ocean (ln_tauwoc=.true.)' ) 173 173 IF( ln_tauw ) & 174 174 CALL ctl_warn( 'The wave modified ocean stress components are used (ln_tauw=.true.) ', & … … 409 409 IF( ln_mixcpl ) CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! forced-coupled mixed formulation after forcing 410 410 ! 411 IF ( ln_wave .AND. (ln_tau oc .OR. ln_tauw) ) CALL sbc_wstress( ) ! Wind stress provided by waves411 IF ( ln_wave .AND. (ln_tauwoc .OR. ln_tauw) ) CALL sbc_wstress( ) ! Wind stress provided by waves 412 412 ! 413 413 ! !== Misc. Options ==! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r9029 r9033 45 45 LOGICAL, PUBLIC :: cpl_wfreq = .FALSE. 46 46 LOGICAL, PUBLIC :: cpl_wnum = .FALSE. 47 LOGICAL, PUBLIC :: cpl_tau oc = .FALSE.47 LOGICAL, PUBLIC :: cpl_tauwoc = .FALSE. 48 48 LOGICAL, PUBLIC :: cpl_tauw = .FALSE. 49 49 LOGICAL, PUBLIC :: cpl_wdrag = .FALSE. … … 59 59 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_sd ! structure of input fields (file informations, fields read) Stokes Drift 60 60 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_wn ! structure of input fields (file informations, fields read) wave number for Qiao 61 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_tau oc ! structure of input fields (file informations, fields read) normalized wave stress into the ocean61 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_tauwoc ! structure of input fields (file informations, fields read) normalized wave stress into the ocean 62 62 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_tauw ! structure of input fields (file informations, fields read) ocean stress components from wave model 63 63 … … 255 255 INTEGER :: jj, ji ! dummy loop argument 256 256 ! 257 IF( ln_tau oc ) THEN257 IF( ln_tauwoc ) THEN 258 258 utau(:,:) = utau(:,:)*tauoc_wave(:,:) 259 259 vtau(:,:) = vtau(:,:)*tauoc_wave(:,:) … … 300 300 ENDIF 301 301 302 IF( ln_tau oc .AND. .NOT. cpl_tauoc ) THEN !== Wave induced stress ==!303 CALL fld_read( kt, nn_fsbc, sf_tau oc ) ! read wave norm stress from external forcing304 tauoc_wave(:,:) = sf_tau oc(1)%fnow(:,:,1)302 IF( ln_tauwoc .AND. .NOT. cpl_tauwoc ) THEN !== Wave induced stress ==! 303 CALL fld_read( kt, nn_fsbc, sf_tauwoc ) ! read wave norm stress from external forcing 304 tauoc_wave(:,:) = sf_tauwoc(1)%fnow(:,:,1) 305 305 ENDIF 306 306 … … 362 362 TYPE(FLD_N) :: sn_cdg, sn_usd, sn_vsd, & 363 363 & sn_hsw, sn_wmp, sn_wfr, sn_wnum, & 364 & sn_tau oc, sn_tauwx, sn_tauwy ! informations about the fields to be read364 & sn_tauwoc, sn_tauwx, sn_tauwy ! informations about the fields to be read 365 365 ! 366 366 NAMELIST/namsbc_wave/ sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wfr, & 367 sn_wnum, sn_tau oc, sn_tauwx, sn_tauwy367 sn_wnum, sn_tauwoc, sn_tauwx, sn_tauwy 368 368 !!--------------------------------------------------------------------- 369 369 ! … … 389 389 ENDIF 390 390 391 IF( ln_tau oc ) THEN392 IF( .NOT. cpl_tau oc ) THEN393 ALLOCATE( sf_tau oc(1), STAT=ierror ) !* allocate and fill sf_wave with sn_tauoc391 IF( ln_tauwoc ) THEN 392 IF( .NOT. cpl_tauwoc ) THEN 393 ALLOCATE( sf_tauwoc(1), STAT=ierror ) !* allocate and fill sf_wave with sn_tauwoc 394 394 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wave structure' ) 395 395 ! 396 ALLOCATE( sf_tau oc(1)%fnow(jpi,jpj,1) )397 IF( sn_tau oc%ln_tint ) ALLOCATE( sf_tauoc(1)%fdta(jpi,jpj,1,2) )398 CALL fld_fill( sf_tau oc, (/ sn_tauoc /), cn_dir, 'sbc_wave_init', 'Wave module', 'namsbc_wave' )396 ALLOCATE( sf_tauwoc(1)%fnow(jpi,jpj,1) ) 397 IF( sn_tauwoc%ln_tint ) ALLOCATE( sf_tauwoc(1)%fdta(jpi,jpj,1,2) ) 398 CALL fld_fill( sf_tauwoc, (/ sn_tauwoc /), cn_dir, 'sbc_wave_init', 'Wave module', 'namsbc_wave' ) 399 399 ENDIF 400 400 ALLOCATE( tauoc_wave(jpi,jpj) ) -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r9019 r9033 29 29 #if defined key_agrif 30 30 USE agrif_top_sponge ! tracers sponges 31 USE agrif_top_update ! tracers updates32 31 #endif 33 32 … … 82 81 IF( ln_trcdmp_clo ) CALL trc_dmp_clo( kt ) ! internal damping trends on closed seas only 83 82 84 #if defined key_agrif85 IF( .NOT.Agrif_Root()) CALL Agrif_Update_Trc( kt ) ! Update tracer at AGRIF zoom boundaries : children only86 #endif87 83 ! 88 84 ELSE ! 1D vertical configuration
Note: See TracChangeset
for help on using the changeset viewer.