Changeset 2052 for branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP
- Timestamp:
- 2010-08-13T11:15:17+02:00 (14 years ago)
- Location:
- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trcsbc.F90
r2030 r2052 66 66 INTEGER :: ji, jj, jn ! dummy loop indices 67 67 REAL(wp) :: ztra, zsrau, zse3t ! temporary scalars 68 REAL(wp), DIMENSION(jpi,jpj) :: zemps ! surface freshwater flux 68 69 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrtrd 69 70 CHARACTER (len=22) :: charout … … 76 77 ENDIF 77 78 79 78 80 IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 79 81 82 #if ! defined key_offline 83 ! Concentration dilution effect on tracer due to evaporation, precipitation, and river runoff 84 IF( lk_vvl ) THEN ; zemps(:,:) = emps(:,:) - emp(:,:) ! volume variable 85 ELSE ; zemps(:,:) = emps(:,:) - rnf(:,:) ! linear free surface 86 ENDIF 87 #else 88 ! emps in dynamical files contains emps - rnf 89 IF( lk_vvl ) THEN ; zemps(:,:) = 0. ! No concentration/dilution effect 90 ELSE ; zemps(:,:) = emps(:,:) ! emps -rnf 91 ENDIF 92 #endif 80 93 ! 0. initialization 81 94 zsrau = 1. / rau0 … … 85 98 86 99 DO jn = 1, jptra 87 ! 1. Concentration dillution effect on tra100 ! 88 101 IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn) ! save trends 89 102 90 103 DO jj = 2, jpj 91 104 DO ji = fs_2, fs_jpim1 ! vector opt. 92 #if ! defined key_zco 105 #if ! defined key_zco 93 106 zse3t = 1. / fse3t(ji,jj,1) 94 107 #endif 95 IF( lk_vvl ) THEN ; ztra = 0.e0 ! No concent./dilut. effect 96 ELSE ; ztra = emps(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t * tmask(ji,jj,1) 97 ENDIF 108 ! add the trend to the general tracer trend 109 ztra = zemps(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 98 110 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + ztra 99 111 END DO … … 107 119 END DO ! tracer loop 108 120 ! ! =========== 121 IF( l_trdtrc ) DEALLOCATE( ztrtrd ) 109 122 110 IF( l_trdtrc ) DEALLOCATE( ztrtrd )111 123 IF( ln_ctl ) THEN 112 124 WRITE(charout, FMT="('sbc ')") ; CALL prt_ctl_trc_info(charout) -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trctrp.F90
r2030 r2052 62 62 IF( .NOT. lk_trc_c1d ) THEN 63 63 ! 64 65 66 67 68 64 CALL trc_sbc( kstp ) ! surface boundary condition 65 IF( lk_trabbl ) CALL trc_bbl( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme 66 IF( lk_trcdmp ) CALL trc_dmp( kstp ) ! internal damping trends 67 CALL trc_adv( kstp ) ! horizontal & vertical advection 68 CALL trc_ldf( kstp ) ! lateral mixing 69 69 #if ! defined key_offline 70 70 IF( lk_zdfkpp ) CALL trc_kpp( kstp ) ! KPP non-local tracer fluxes 71 71 #endif 72 72 #if defined key_agrif 73 73 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc ! tracers sponge 74 74 #endif 75 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 76 CALL trc_nxt( kstp ) ! tracer fields at next time step 77 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 78 IF( ln_zps ) CALL zps_hde_trc( kstp, jptra, trb, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 79 ! tracers at the bottom ocean level 80 ELSE 81 CALL trc_sbc( kstp ) ! surface boundary condition 75 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 76 IF( ln_zps ) CALL zps_hde_trc( kstp, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 77 ! tracers at the bottom ocean level 78 CALL trc_nxt( kstp ) ! tracer fields at next time step 79 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 80 ! 81 ELSE ! 1D vertical configuration 82 CALL trc_sbc( kstp ) ! surface boundary condition 82 83 #if ! defined key_offline 83 IF( lk_zdfkpp ) 84 IF( lk_zdfkpp ) CALL trc_kpp( kstp ) ! KPP non-local tracer fluxes 84 85 #endif 85 86 87 IF( ln_trcrad ) 86 CALL trc_zdf( kstp ) ! vertical mixing and after tracer fields 87 CALL trc_nxt( kstp ) ! tracer fields at next time step 88 IF( ln_trcrad ) CALL trc_rad( kstp ) ! Correct artificial negative concentrations 88 89 ! 89 90 END IF -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trczdf.F90
r2034 r2052 63 63 IF( kt == nittrc000 ) CALL zdf_ctl ! initialisation & control of options 64 64 65 #if ! defined key_pisces 65 66 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nit000 66 67 r2dt(:) = rdttra(:) * FLOAT(nn_dttrc) ! = rdtra (restarting with Euler time stepping) … … 68 69 r2dt(:) = 2. * rdttra(:) * FLOAT(nn_dttrc) ! = 2 rdttra (leapfrog) 69 70 ENDIF 71 #else 72 r2dt(:) = rdttra(:) * FLOAT(nn_dttrc) ! = rdtra (restarting with Euler time stepping) 73 #endif 70 74 71 75 IF( l_trdtrc ) THEN -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r2030 r2052 382 382 DO ji = 1,jpi 383 383 ik = nmld_trc(ji,jj) 384 zavt = fs travs(ji,jj,ik)384 zavt = fsavs(ji,jj,ik) 385 385 DO jn = 1, jptra 386 386 IF( ln_trdtrc(jn) ) & -
branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90
r2030 r2052 9 9 #if defined key_top && defined key_trdmld_trc 10 10 !!---------------------------------------------------------------------- 11 USE oce_trc12 11 USE in_out_manager ! I/O manager 13 12 USE iom ! I/O module
Note: See TracChangeset
for help on using the changeset viewer.