- Timestamp:
- 2016-07-19T10:38:35+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5549_BDY_ZEROGRAD/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r5120 r6808 15 15 USE oce_trc ! ocean dynamics and active tracers variables 16 16 USE trc ! ocean passive tracers variables 17 USE trcnam_trp ! passive tracers transport namelist variables18 17 USE trabbl ! bottom boundary layer (trc_bbl routine) 19 18 USE trcbbl ! bottom boundary layer (trc_bbl routine) 20 USE zdfkpp ! KPP non-local tracer fluxes (trc_kpp routine)21 19 USE trcdmp ! internal damping (trc_dmp routine) 22 20 USE trcldf ! lateral mixing (trc_ldf routine) … … 27 25 USE trcsbc ! surface boundary condition (trc_sbc routine) 28 26 USE zpshde ! partial step: hor. derivative (zps_hde routine) 27 USE trcbdy ! BDY open boundaries 28 USE bdy_par, only: lk_bdy 29 29 30 30 #if defined key_agrif … … 38 38 PUBLIC trc_trp ! called by trc_stp 39 39 40 !! * Substitutions41 # include "top_substitute.h90"42 40 !!---------------------------------------------------------------------- 43 41 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 48 46 CONTAINS 49 47 50 SUBROUTINE trc_trp( k stp)48 SUBROUTINE trc_trp( kt ) 51 49 !!---------------------------------------------------------------------- 52 50 !! *** ROUTINE trc_trp *** … … 57 55 !! - Update the passive tracers 58 56 !!---------------------------------------------------------------------- 59 INTEGER, INTENT( in ) :: k stp! ocean time-step index57 INTEGER, INTENT( in ) :: kt ! ocean time-step index 60 58 !! --------------------------------------------------------------------- 61 59 ! … … 64 62 IF( .NOT. lk_c1d ) THEN 65 63 ! 66 CALL trc_sbc( kstp ) ! surface boundary condition 67 IF( lk_trabbl ) CALL trc_bbl( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme 68 IF( ln_trcdmp ) CALL trc_dmp( kstp ) ! internal damping trends 69 IF( ln_trcdmp_clo ) CALL trc_dmp_clo( kstp ) ! internal damping trends on closed seas only 70 CALL trc_adv( kstp ) ! horizontal & vertical advection 71 CALL trc_ldf( kstp ) ! lateral mixing 72 IF( .NOT. lk_offline .AND. lk_zdfkpp ) & 73 & CALL trc_kpp( kstp ) ! KPP non-local tracer fluxes 64 CALL trc_sbc ( kt ) ! surface boundary condition 65 IF( lk_trabbl ) CALL trc_bbl ( kt ) ! advective (and/or diffusive) bottom boundary layer scheme 66 IF( ln_trcdmp ) CALL trc_dmp ( kt ) ! internal damping trends 67 IF( ln_trcdmp_clo ) CALL trc_dmp_clo( kt ) ! internal damping trends on closed seas only 68 IF( lk_bdy ) CALL trc_bdy_dmp( kt ) ! BDY damping trends 69 CALL trc_adv ( kt ) ! horizontal & vertical advection 70 ! ! Partial top/bottom cell: GRADh( trb ) 71 IF( ln_zps ) THEN 72 IF( ln_isfcav ) THEN ; CALL zps_hde_isf( kt, jptra, trb, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! both top & bottom 73 ELSE ; CALL zps_hde ( kt, jptra, trb, gtru, gtrv ) ! only bottom 74 ENDIF 75 ENDIF 76 ! 77 CALL trc_ldf ( kt ) ! lateral mixing 74 78 #if defined key_agrif 75 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc 79 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc ! tracers sponge 76 80 #endif 77 CALL trc_zdf ( kstp )! vertical mixing and after tracer fields78 CALL trc_nxt ( kstp )! tracer fields at next time step79 IF( ln_trcrad ) CALL trc_rad ( kstp )! Correct artificial negative concentrations81 CALL trc_zdf ( kt ) ! vertical mixing and after tracer fields 82 CALL trc_nxt ( kt ) ! tracer fields at next time step 83 IF( ln_trcrad ) CALL trc_rad ( kt ) ! Correct artificial negative concentrations 80 84 81 85 #if defined key_agrif 82 IF( .NOT. Agrif_Root()) CALL Agrif_Update_Trc( kstp )! Update tracer at AGRIF zoom boundaries : children only86 IF( .NOT.Agrif_Root()) CALL Agrif_Update_Trc( kt ) ! Update tracer at AGRIF zoom boundaries : children only 83 87 #endif 84 85 IF( ln_zps .AND. .NOT. ln_isfcav) &86 & CALL zps_hde ( kstp, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive87 IF( ln_zps .AND. ln_isfcav) &88 & CALL zps_hde_isf( kstp, jptra, trn, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! Partial steps: now horizontal gradient of passive89 ! tracers at the bottom ocean level90 88 ! 91 89 ELSE ! 1D vertical configuration 92 CALL trc_sbc( kstp ) ! surface boundary condition 93 IF( .NOT. lk_offline .AND. lk_zdfkpp ) & 94 & CALL trc_kpp( kstp ) ! KPP non-local tracer fluxes 95 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 96 CALL trc_nxt( kstp ) ! tracer fields at next time step 97 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 90 CALL trc_sbc( kt ) ! surface boundary condition 91 IF( ln_trcdmp ) CALL trc_dmp( kt ) ! internal damping trends 92 CALL trc_zdf( kt ) ! vertical mixing and after tracer fields 93 CALL trc_nxt( kt ) ! tracer fields at next time step 94 IF( ln_trcrad ) CALL trc_rad( kt ) ! Correct artificial negative concentrations 98 95 ! 99 96 END IF … … 108 105 !!---------------------------------------------------------------------- 109 106 CONTAINS 110 SUBROUTINE trc_trp( k stp) ! Empty routine111 INTEGER, INTENT(in) :: k stp112 WRITE(*,*) 'trc_trp: You should not have seen this print! error?', k stp107 SUBROUTINE trc_trp( kt ) ! Empty routine 108 INTEGER, INTENT(in) :: kt 109 WRITE(*,*) 'trc_trp: You should not have seen this print! error?', kt 113 110 END SUBROUTINE trc_trp 114 111 #endif
Note: See TracChangeset
for help on using the changeset viewer.