- Timestamp:
- 2020-07-03T20:46:53+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OFF
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OFF/dtadyn.F90
r12960 r13248 23 23 USE c1d ! 1D configuration: lk_c1d 24 24 USE dom_oce ! ocean domain: variables 25 #if ! defined key_qco 25 26 USE domvvl ! variable volume 27 #else 28 USE domqco 29 #endif 26 30 USE zdf_oce ! ocean vertical physics: variables 27 31 USE sbc_oce ! surface module: variables … … 52 56 PUBLIC dta_dyn_sed ! called by nemo_gcm 53 57 PUBLIC dta_dyn_atf ! called by nemo_gcm 58 #if ! defined key_qco 54 59 PUBLIC dta_dyn_sf_interp ! called by nemo_gcm 60 #endif 55 61 56 62 CHARACTER(len=100) :: cn_dir !: Root directory for location of ssr files … … 149 155 emp_b (:,:) = sf_dyn(jf_empb)%fnow(:,:,1) * tmask(:,:,1) ! E-P 150 156 zemp (:,:) = ( 0.5_wp * ( emp(:,:) + emp_b(:,:) ) + rnf(:,:) + fwbcorr ) * tmask(:,:,1) 151 CALL dta_dyn_ssh( kt, zhdivtr, ssh(:,:,Kbb), zemp, ssh(:,:,Kaa), e3t(:,:,:,Kaa) ) != ssh, vertical scale factor & vertical transport 157 #if defined key_qco 158 CALL dta_dyn_ssh( kt, zhdivtr, ssh(:,:,Kbb), zemp, ssh(:,:,Kaa) ) 159 CALL dom_qco_r3c( ssh(:,:,Kaa), r3t(:,:,Kaa), r3u(:,:,Kaa), r3v(:,:,Kaa) ) 160 #else 161 CALL dta_dyn_ssh( kt, zhdivtr, ssh(:,:,Kbb), zemp, ssh(:,:,Kaa), e3t(:,:,:,Kaa) ) != ssh, vertical scale factor 162 #endif 152 163 DEALLOCATE( zemp , zhdivtr ) 153 164 ! Write in the tracer restart file … … 333 344 ENDIF 334 345 ! 346 #if defined key_qco 347 CALL dom_qco_r3c( ssh(:,:,Kbb), r3t(:,:,Kbb), r3u(:,:,Kbb), r3v(:,:,Kbb) ) 348 CALL dom_qco_r3c( ssh(:,:,Kmm), r3t(:,:,Kmm), r3u(:,:,Kmm), r3v(:,:,Kmm) ) 349 #else 335 350 DO jk = 1, jpkm1 336 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * ( 1._wp + ssh(:,:,Kmm) * tmask(:,:,1) / ( ht_0(:,:) + 1.0 - tmask(:,:,1)) )351 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * ( 1._wp + ssh(:,:,Kmm) * r1_ht_0(:,:) * tmask(:,:,jk) ) 337 352 ENDDO 338 353 e3t(:,:,jpk,Kaa) = e3t_0(:,:,jpk) … … 346 361 ! ------------------------------------ 347 362 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w(:,:,:,Kmm), 'W' ) 348 363 !!gm this should be computed from ssh(Kbb) 349 364 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 350 365 e3u(:,:,:,Kbb) = e3u(:,:,:,Kmm) … … 371 386 ! 372 387 ENDIF 388 #endif 373 389 ! 374 390 IF( ln_dynrnf .AND. ln_dynrnf_depth ) THEN ! read depht over which runoffs are distributed … … 393 409 ENDIF 394 410 END_2D 411 !!st pourquoi on n'utilise pas le gde3w ici plutôt que de faire une boucle ? 395 412 DO_2D_11_11 396 413 h_rnf(ji,jj) = 0._wp … … 417 434 END SUBROUTINE dta_dyn_init 418 435 436 419 437 SUBROUTINE dta_dyn_sed( kt, Kmm ) 420 438 !!---------------------------------------------------------------------- … … 533 551 END SUBROUTINE dta_dyn_sed_init 534 552 553 535 554 SUBROUTINE dta_dyn_atf( kt, Kbb, Kmm, Kaa ) 536 555 !!--------------------------------------------------------------------- … … 556 575 END SUBROUTINE dta_dyn_atf 557 576 577 578 #if ! defined key_qco 558 579 SUBROUTINE dta_dyn_sf_interp( kt, Kmm ) 559 580 !!--------------------------------------------------------------------- … … 592 613 ! 593 614 END SUBROUTINE dta_dyn_sf_interp 615 #endif 616 594 617 595 618 SUBROUTINE dta_dyn_ssh( kt, phdivtr, psshb, pemp, pssha, pe3ta ) … … 610 633 !! The boundary conditions are w=0 at the bottom (no flux) 611 634 !! 612 !! ** action : ssh(:,:,Kaa) / e3t(:,:, :,Kaa) / ww635 !! ** action : ssh(:,:,Kaa) / e3t(:,:,k,Kaa) / ww 613 636 !! 614 637 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. … … 634 657 ! ! Sea surface elevation time-stepping 635 658 pssha(:,:) = ( psshb(:,:) - z2dt * ( r1_rho0 * pemp(:,:) + zhdiv(:,:) ) ) * ssmask(:,:) 636 ! !637 !! After acale factors at t-points ( z_star coordinate )659 ! 660 IF( PRESENT( pe3ta ) ) THEN ! After acale factors at t-points ( z_star coordinate ) 638 661 DO jk = 1, jpkm1 639 pe3ta(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + pssha(:,:) * tmask(:,:,1) / ( ht_0(:,:) + 1.0 - tmask(:,:,1)) )662 pe3ta(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + pssha(:,:) * r1_ht_0(:,:) * tmask(:,:,jk) ) 640 663 END DO 664 ENDIF 641 665 ! 642 666 END SUBROUTINE dta_dyn_ssh … … 661 685 !!---------------------------------------------------------------------- 662 686 ! 687 !!st code dupliqué même remarque que plus haut pourquoi ne pas utiliser gdepw ? 663 688 DO_2D_11_11 664 689 h_rnf(ji,jj) = 0._wp -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OFF/nemogcm.F90
r13176 r13248 28 28 USE usrdef_nam ! user defined configuration 29 29 USE eosbn2 ! equation of state (eos bn2 routine) 30 #if defined key_qco 31 USE domqco ! tools for scale factor (dom_qco_r3c routine) 32 #endif 30 33 USE bdy_oce, ONLY : ln_bdy 31 34 USE bdyini ! open boundary cond. setting (bdy_init routine) … … 120 123 CALL dta_dyn ( istp, Nbb, Nnn, Naa ) ! Interpolation of the dynamical fields 121 124 #endif 125 #if ! defined key_sed_off 126 IF( .NOT.ln_linssh ) THEN 127 CALL dta_dyn_atf( istp, Nbb, Nnn, Naa ) ! time filter of sea surface height and vertical scale factors 128 # if defined key_qco 129 CALL dom_qco_r3c( ssh(:,:,Kmm), r3t_f, r3u_f, r3v_f ) 130 # endif 131 ENDIF 122 132 CALL trc_stp ( istp, Nbb, Nnn, Nrhs, Naa ) ! time-stepping 123 #if ! defined key_sed_off 124 IF( .NOT.ln_linssh ) CALL dta_dyn_atf( istp, Nbb, Nnn, Naa ) ! time filter of sea surface height and vertical scale factors 133 # if defined key_qco 134 !r3t(:,:,Kmm) = r3t_f(:,:) ! update ssh to h0 ratio 135 !r3u(:,:,Kmm) = r3u_f(:,:) 136 !r3v(:,:,Kmm) = r3v_f(:,:) 137 # endif 125 138 #endif 126 139 ! Swap time levels … … 130 143 Naa = Nrhs 131 144 ! 145 #if ! defined key_qco 132 146 #if ! defined key_sed_off 133 147 IF( .NOT.ln_linssh ) CALL dta_dyn_sf_interp( istp, Nnn ) ! calculate now grid parameters 134 148 #endif 149 #endif 135 150 CALL stp_ctl ( istp ) ! Time loop: control and print 136 151 istp = istp + 1
Note: See TracChangeset
for help on using the changeset viewer.