*IF DEF,A11_1A,OR,DEF,A03_5A,OR,DEF,A03_5B,OR,DEF,A03_7A,OR,DEF,A03_6A ARN1F404.17 C ******************************COPYRIGHT****************************** GTS2F400.10693 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.10694 C GTS2F400.10695 C Use, duplication or disclosure of this code is subject to the GTS2F400.10696 C restrictions as set forth in the contract. GTS2F400.10697 C GTS2F400.10698 C Meteorological Office GTS2F400.10699 C London Road GTS2F400.10700 C BRACKNELL GTS2F400.10701 C Berkshire UK GTS2F400.10702 C RG12 2SZ GTS2F400.10703 C GTS2F400.10704 C If no contract has been raised with this copy of the code, the use, GTS2F400.10705 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.10706 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.10707 C Modelling at the above address. GTS2F400.10708 C ******************************COPYRIGHT****************************** GTS2F400.10709 C GTS2F400.10710 C*LL SUBROUTINE TRSRCE ---------------------------------------------- TRSRCE1A.3 CLL TRSRCE1A.4 CLL Purpose: Adds source increments to a single level of the aerosol TRSRCE1A.5 CLL field. TRSRCE1A.6 CLL TRSRCE1A.7 CLL Suitable for single-column use. TRSRCE1A.8 CLL TRSRCE1A.9 CLL Pete Clark <- programmer of some or all of previous code or changes TRSRCE1A.10 CLL TRSRCE1A.11 CLL Model Modification history from model version 3.4: TRSRCE1A.12 CLL version Date TRSRCE1A.13 CLL 4.0 05/09/95 Model hour and minute added to call to TRSRCE. APC3F400.5 CLL Diurnal variation of emissions, hard wired to APC3F400.6 CLL peak at midday, with 10% amplitude, assumed. APC3F400.7 CLL Programmer Pete Clark. APC3F400.8 CLL 4.1 02/05/96 Amplitude of diurnal variation added to input AJS1F401.1487 CLL argument list. M.Woodage AJS1F401.1488 CLL TRSRCE1A.14 CLL Programming standard: Unified Model Documentation Paper No 3, TRSRCE1A.15 CLL Version 7, dated 11/3/93. TRSRCE1A.16 CLL TRSRCE1A.17 CLL TRSRCE1A.18 C*L Arguments:--------------------------------------------------------- TRSRCE1A.19SUBROUTINE TRSRCE( 4TRSRCE1A.20 & DAKH,DBKH, TRSRCE1A.21 & POINTS,PFIELD, TRSRCE1A.22 & PSTAR,TR,TRSCE,TIMESTEP,I_HOUR,I_MINUTE,AMP,ERROR AJS1F401.1489 &) TRSRCE1A.24 C AJS1F401.1490 IMPLICIT NONE TRSRCE1A.25 INTEGER TRSRCE1A.26 & POINTS ! IN No. of gridpoints being processed. TRSRCE1A.27 &,PFIELD ! IN No. of points in global field (at one TRSRCE1A.28 C ! vertical level). TRSRCE1A.29 &,I_HOUR ! IN Local time hour APC3F400.10 &,I_MINUTE ! IN Local time minute APC3F400.11 C AJS1F401.1491 REAL TRSRCE1A.30 & DAKH,DBKH ! IN Layer thickness in terms of ak and bk TRSRCE1A.31 &,PSTAR(PFIELD) TRSRCE1A.32 &,TR(PFIELD) ! INOUT Tracer field TRSRCE1A.33 C ! (kg per kg air). TRSRCE1A.34 &,TRSCE(PFIELD) ! IN Tracer source field TRSRCE1A.35 C ! (kg per kg air per s). TRSRCE1A.36 &,TIMESTEP ! IN Timestep in seconds TRSRCE1A.37 &,AMP ! IN Amplitude of diurnal variation of emission AJS1F401.1492 C AJS1F401.1493 INTEGER ERROR ! OUT Error return code. TRSRCE1A.38 *CALL C_G
TRSRCE1A.39 *CALL C_PI
APC3F400.12 C TRSRCE1A.40 C*L Workspace usage---------------------------------------------------- TRSRCE1A.41 C*L External subroutine called ---------------------------------------- TRSRCE1A.42 C None TRSRCE1A.43 C EXTERNAL TRSRCE1A.44 C* Local, including SAVE'd, storage------------------------------------ TRSRCE1A.45 C TRSRCE1A.46 C (a) Scalars effectively expanded to workspace by the Cray (using TRSRCE1A.47 C vector registers). TRSRCE1A.48 REAL TRSRCE1A.49 & DM,FACTOR,TS TRSRCE1A.50 PARAMETER (FACTOR=1.0) ! Factor to multiply source term. TRSRCE1A.51 REAL TIME, TZERO AJS1F401.1494 PARAMETER (TZERO=12.0) ! Time of maximum emissions APC3F400.14 C TRSRCE1A.52 C (b) Others. TRSRCE1A.53 INTEGER I ! Loop counters: K - vertical level index. TRSRCE1A.54 C----------------------------------------------------------------------- TRSRCE1A.55 C Check input arguments for potential over-writing problems. TRSRCE1A.56 C----------------------------------------------------------------------- TRSRCE1A.57 ERROR=0 TRSRCE1A.58 IF(POINTS.GT.PFIELD)THEN TRSRCE1A.59 ERROR=1 TRSRCE1A.60 GOTO 9999 TRSRCE1A.61 ENDIF TRSRCE1A.62 C TRSRCE1A.63 C----------------------------------------------------------------------- TRSRCE1A.64 CL Subroutine structure : TRSRCE1A.65 CL Loop over field adding source term*timestep/level mass/unit area. TRSRCE1A.66 C----------------------------------------------------------------------- TRSRCE1A.67 C TRSRCE1A.68 C TRSRCE1A.69 C APC3F400.16 C Allow for source varying with time of day APC3F400.17 C APC3F400.18 TS=1.0 APC3F400.19 IF (AMP .GT. 0.0) THEN APC3F400.20 TS = 1.0 + APC3F400.21 & AMP*COS( (REAL(I_HOUR) + REAL(I_MINUTE)/60.0-TZERO) * PI/12.0) APC3F400.22 ENDIF APC3F400.23 TS = TS * TIMESTEP * FACTOR APC3F400.24 DO I=1,POINTS TRSRCE1A.71 DM = ABS((DAKH + PSTAR(I) * DBKH ) / G) ! DAKH,DBKH -ve TRSRCE1A.72 TR(I) = TR(I) + TRSCE(I)*TS/DM TRSRCE1A.73 ENDDO ! Loop over points TRSRCE1A.74 C TRSRCE1A.75 9999 CONTINUE ! Error exit TRSRCE1A.76 RETURN TRSRCE1A.77 END TRSRCE1A.78 *ENDIF TRSRCE1A.79