- Timestamp:
- 2015-12-02T18:00:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r5985 r5987 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) … … 38 36 PUBLIC trc_trp ! called by trc_stp 39 37 40 !! * Substitutions41 # include "top_substitute.h90"42 38 !!---------------------------------------------------------------------- 43 39 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 48 44 CONTAINS 49 45 50 SUBROUTINE trc_trp( k stp)46 SUBROUTINE trc_trp( kt ) 51 47 !!---------------------------------------------------------------------- 52 48 !! *** ROUTINE trc_trp *** … … 57 53 !! - Update the passive tracers 58 54 !!---------------------------------------------------------------------- 59 INTEGER, INTENT( in ) :: k stp! ocean time-step index55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 60 56 !! --------------------------------------------------------------------- 61 57 ! … … 64 60 IF( .NOT. lk_c1d ) THEN 65 61 ! 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 62 CALL trc_sbc ( kt ) ! surface boundary condition 63 IF( lk_trabbl ) CALL trc_bbl ( kt ) ! advective (and/or diffusive) bottom boundary layer scheme 64 IF( ln_trcdmp ) CALL trc_dmp ( kt ) ! internal damping trends 65 IF( ln_trcdmp_clo ) CALL trc_dmp_clo( kt ) ! internal damping trends on closed seas only 66 CALL trc_adv ( kt ) ! horizontal & vertical advection 67 ! ! Partial top/bottom cell: GRADh( trb ) 68 IF( ln_zps ) THEN 69 IF( ln_isfcav ) THEN ; CALL zps_hde_isf( kt, jptra, trb, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! both top & bottom 70 ELSE ; CALL zps_hde ( kt, jptra, trb, gtru, gtrv ) ! only bottom 71 ENDIF 72 ENDIF 73 ! 74 CALL trc_ldf ( kt ) ! lateral mixing 74 75 #if defined key_agrif 75 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc 76 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc ! tracers sponge 76 77 #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 concentrations78 CALL trc_zdf ( kt ) ! vertical mixing and after tracer fields 79 CALL trc_nxt ( kt ) ! tracer fields at next time step 80 IF( ln_trcrad ) CALL trc_rad ( kt ) ! Correct artificial negative concentrations 80 81 81 82 #if defined key_agrif 82 IF( .NOT. Agrif_Root()) CALL Agrif_Update_Trc( kstp )! Update tracer at AGRIF zoom boundaries : children only83 IF( .NOT.Agrif_Root()) CALL Agrif_Update_Trc( kt ) ! Update tracer at AGRIF zoom boundaries : children only 83 84 #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 85 ! 91 86 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 87 CALL trc_sbc( kt ) ! surface boundary condition 88 IF( ln_trcdmp ) CALL trc_dmp( kt ) ! internal damping trends 89 CALL trc_zdf( kt ) ! vertical mixing and after tracer fields 90 CALL trc_nxt( kt ) ! tracer fields at next time step 91 IF( ln_trcrad ) CALL trc_rad( kt ) ! Correct artificial negative concentrations 98 92 ! 99 93 END IF … … 108 102 !!---------------------------------------------------------------------- 109 103 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 stp104 SUBROUTINE trc_trp( kt ) ! Empty routine 105 INTEGER, INTENT(in) :: kt 106 WRITE(*,*) 'trc_trp: You should not have seen this print! error?', kt 113 107 END SUBROUTINE trc_trp 114 108 #endif
Note: See TracChangeset
for help on using the changeset viewer.